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

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

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

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

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

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

今回の更新ではエラーレスポンスのルートクラスである\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
try {
    // API リクエスト
} catch (\WebPay\ErrorResponse\ErrorResponseException $e) {
    $error = $e->data->error;
    switch ($error->causedBy) {
        case 'buyer':
            // カードエラーなど、購入者に原因がある
            // エラーメッセージをそのまま表示するのがわかりやすい
            break;
        case 'insufficient':
            // 実装ミスに起因する
            break;
        case 'missing':
            // リクエスト対象のオブジェクトが存在しない
            break;
        case 'service':
            // WebPayに起因するエラー
            break;
        default:
            // 未知のエラー
            break;
    }
} catch (\WebPay\ApiException $e) {
    // APIからのレスポンスが受け取れない場合。接続エラーなど
}