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

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

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

  • 返金(charge.refund)APIにuuidパラメータを追加しました
  • エラーレスポンスの処理が容易なようにクラス階層を変更しました

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
try:
  # API リクエスト
except webpay.error_response.ErrorResponseError, e:
  caused_by = e.data.error.caused_by
  if caused_by == 'buyer':
    # カードエラーなど、購入者に原因がある
    # エラーメッセージをそのまま表示するのがわかりやすい
  elif caused_by == 'insufficient':
    # 実装ミスに起因する
  elif caused_by == 'missing':
    # リクエスト対象のオブジェクトが存在しない
  elif caused_by == 'service':
    # WebPayに起因するエラー
  else:
    # 未知のエラー
except webpay.ApiError, e:
  # APIからのレスポンスが受け取れない場合。接続エラーなど