日本語のエラーメッセージを取得出来るようになりました(Accept-Languageをサポートしました)

WebPayのAPIでAccept-LanguageのHTTPヘッダをサポートし、jaを指定することで日本語によるメッセージの出力に対応しました。

特にcard_errormessageプロパティに関しては、出来る限りレスポンスの内容をそのまま購入者に返却出来るようにしています。 これまで、英語でのメッセージであったため、 codeプロパティなどから必要に応じて分岐処理等を行い、購入者の方へ知らせるメッセージを決定する必要があった手間を出来る限り解消したいと思っています。

例えば、カードの有効期限の月に誤りがあるリクエストを行った場合、

1
2
3
4
5
6
7
8
9
curl "https://api.webpay.jp/v1/tokens" --header "Accept-Language: ja" \
-u "test_secret_eHn4TTgsGguBcW764a2KA8Yd": \
    -d "amount=400" \
    -d "currency=jpy" \
    -d "card[number]=4242-4242-4242-4242" \
    -d "card[exp_month]=0" \
    -d "card[exp_year]=2014" \
    -d "card[cvc]=123" \
    -d "card[name]=KEI KUBO"

以下のようなレスポンスから日本語のメッセージを取得できます。

1
2
3
4
5
6
7
8
{
  "error": {
    "type": "card_error",
      "message": "カードの有効期限(月)が無効です。1から12の数字を指定してください",
      "code": "invalid_expiry_month",
      "param": "exp_month"
  }
}

まだまだメッセージの内容が至らない点もあると思いますので、 「こういう場面でこういうメッセージが出てしまったのだけど、こうじゃないか」というようなご提案をもらえると嬉しいです。

@WebPayJP をはじめお問い合わせ先のどこかにお知らせください。

なお、Accept-Languageを指定しない場合のデフォルトはenとして扱われます。

各ライブラリでの設定方法については、該当機能のサポート時のリリースノートを参照してください

を御覧ください。なお、リリース時からサポートしておりますNode.js向けライブラリでは

1
2
3
var webpay = require('webpay');
webpay.apiKey = 'test_secret_eHn4TTgsGguBcW764a2KA8Yd';
webpay.language = 'ja';

とすることで設定可能です。