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

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

今回の更新では、従来のバージョン1.x.yと非互換の仕様変更が行われています。 アップデートを行う際には十分ご注意下さい。

仕様が変更となった箇所は次の通りです。

  • 作成済みオブジェクトを操作する方法
  • Exceptionのクラス名

また、定期課金オブジェクト(Recursion)の操作が可能になっています。

作成済みオブジェクトを操作する方法

各オブジェクトを操作する際に、都度retrieveによる呼び出しの上で、操作を行っていましたが、 行う操作をすぐに記述出来るようになりました。 以下は作成済みのChargeオブジェクトを払い戻す場合の例による比較です。

従来

1
2
3
4
5
6
require "vendor/autoload.php";
use WebPay\WebPay;
$webpay = new WebPay('test_secret_eHn4TTgsGguBcW764a2KA8Yd');

$charge = $webpay->charges->retrieve("ch_3u32gEgiy2xjfEf");
$charge->refund();

バージョン2.0.0以降

1
2
3
4
5
require "vendor/autoload.php";
use WebPay\WebPay;
$webpay = new WebPay('test_secret_eHn4TTgsGguBcW764a2KA8Yd');

$webpay->charge->refund(array("id"=>"ch_3u32gEgiy2xjfEf"));

各オブジェクトに対する新たな操作方法についての詳しくはAPIドキュメントをご覧ください。

Exceptionのクラス名

Exceptionのクラス名が変更となったため、以下のようにエラーハンドリングの処理の変更が必要となります。

従来

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
try {
  // webpay-phpライブラリを利用したWebPayへのアクセス
} catch (\WebPay\Exception\CardException $e) {
  // カードが拒否された場合
  print('Status is:' . $e->getStatus() . "\n");
  print('Type is:' . $e->getType() . "\n");
  print('Code is:' . $e->getCardErrorCode() . "\n");
  print('Param is:' . $e->getParam() . "\n");
  print('Message is:' . $e->getMessage() . "\n");
} catch (\WebPay\Exception\InvalidRequestException $e) {
  // リクエストで指定したパラメータが不正な場合
} catch (\WebPay\Exception\AuthenticationException $e) {
  // 認証に失敗した場合
} catch (\WebPay\Exception\APIConnectionException $e) {
  // APIへの接続エラーが起きた場合
} catch (\WebPay\Exception\APIException $e) {
  // WebPayのサーバでエラーが起きた場合
} catch (Exception $e) {
  // WebPayとは関係ない例外の場合
}

バージョン2.0.0以降

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
try {
  // webpay-phpライブラリを利用したWebPayへのアクセス
} catch (\WebPay\ErrorResponse\CardException $e) {
  $data = $e->getData()->error;
  // カードが拒否された場合
  print('Status is:' . $e->getStatus() . "\n");
  print('Type is:' . $data->type . "\n");
  print('Code is:' . $data->code . "\n");
  print('Param is:' . $data->param . "\n");
  print('Message is:' . $data->message . "\n");
} catch (\WebPay\ErrorResponse\InvalidRequestException $e) {
  // リクエストで指定したパラメータが不正な場合
} catch (\WebPay\ErrorResponse\AuthenticationException $e) {
  // 認証に失敗した場合
} catch (\WebPay\ErrorResponse\ApiException $e) {
  // WebPayのサーバでエラーが起きた場合
} catch (\WebPay\ApiConnectionException $e) {
  // APIへの接続エラーが起きた場合
} catch (\WebPay\InvalidRequestException $e) {
  // リクエストで指定したパラメータが不正で、リクエストがおこなえなかった場合
} catch (\Exception $e) {
  // WebPayとは関係ない例外の場合
}

定期課金

今回のバージョンから定期課金の操作がサポートされています。

1
2
3
4
5
6
7
8
9
10
11
require "vendor/autoload.php";
use WebPay\WebPay;
$webpay = new WebPay('test_secret_eHn4TTgsGguBcW764a2KA8Yd');

$webpay->recursion->create(array(
      "amount"=>400,
      "currency"=>"jpy",
      "customer"=>"cus_45d3MV5phaXJ4uv",
      "period"=>"month",
      "description"=>"WebPayマガジン購読料"
      ));

定期課金に関する詳しい操作方法については、定期課金のドキュメントをご覧ください。