Node.js向けのライブラリを更新しました 2.1.1 -> 2.2.1

Node.js向けのライブラリをバージョン2.2.1にアップデートしました。

今回の更新では次のような変更が行われました。

  • 返金(charge.refund)APIにuuidパラメータを追加しました
  • エラーレスポンスの処理が容易なようにクラス階層を変更しました
  • 動作保証するNode.jsのバージョンをpackage.jsonで指定しました

uuidパラメータについてはAPIドキュメントをご覧ください。

エラーレスポンスについて、 従来はエラーレスポンスの例外クラスの共通の親クラスが、 WebPayライブラリが発生するエラーのルートクラスであるWebPay.ApiErrorであったため、 エラーレスポンスと接続不良などの例外で分類するのが煩雑でした。

今回の更新ではエラーレスポンスのルートクラスであるWebPay.errorResponse.ErrorResponseExceptionが追加され、エラーレスポンスだけを処理するのが容易になりました。 エラーレスポンスはすべて類似の構造なので、caused_byフィールドを使うことでわかりやすいエラー処理が可能です。 各エラーをどう処理すべきかについて、APIエラーに関するドキュメントをあわせてご覧ください。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// API リクエスト
webpay.charge.create({...}, function(err, res) {
  if (err) {
    if (err instanceof WebPay.errorResponse.ErrorResponseError) {
      var error = err.data.error
      switch (error.causedBy) {
      case 'buyer':
        // カードエラーなど、購入者に原因がある
        // エラーメッセージをそのまま表示するのがわかりやすい
        break;
      case 'insufficient':
        // 実装ミスに起因する
        break;
      case 'missing':
        // リクエスト対象のオブジェクトが存在しない
        break;
      case 'service':
        // WebPayに起因するエラー
        break;
      default:
        // 未知のエラー
        break;
      }
    } else {
      // APIからのレスポンスが受け取れない場合。接続エラーなど
    }
    return;
  }
  // 成功時の処理
});