WebPayが定期課金に対応して、PHPのライブラリも定期課金対応されたが
ライブラリのメジャーバージョンがアップしてた。
APIのバージョンは据え置きでライブラリのバージョンがあがったのみだけど
ライブラリのV1との互換性がなくなった。
とりあえずバージョン見て処理切り替えるようにコード変更しようと思ったわけだけど
ドキュメント見てもバージョンの取り方は書いてないし、ソース見てもWebPayクラスにバージョン情報がなかった…
V1のコードと見比べてメンバ変数に殆どが”s”がなくなってるのと
幾つか追加されたメンバ変数があるだけでその先のメソッド名の変更はないっぽい(全部は追いかけてないけど)
とりあえず、WebPayクラスのインスタンス生成は互換性あるんで
メンバ変数をproperty_exists()で判定できた。
$wabpay = new Webpay('secret-key');
$version = property_exists($webpay, 'charges') ? 1 : 2;
$charge = ($version === 1) ? $webpay->charges->create($data) : $webpay->charge->create($data);
だいたいこんな感じ
property_exists()が__get()をオーバーライドしてたからいけるか不安だったけど…