Ruby向けのライブラリを更新しました 3.1.2 -> 3.2.1

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

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

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

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

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

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

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