Square SDKを更新
目次
サンプルのSDKはnode.js向けだった
こんにちは、こたかです。
一日一記事を続けていましたが、ここのところSquareのSDKを調査中で、5日ほどハマっていました。
WebAPI・node.js・PHPクラス・JavaScriptの実装関係を確認しながら進めていましたが、理解するのに時間がかかってしまいました。
squareのAPIでSqPaymentFormがサポート終了
SqPaymentForm APIでサイトを作成していましたが、APIが停止しているため修正が急務となりました。
幸い個別契約がメインでしたので、ほとんどでsquare決済が無く、停止状態でも気が付くのが遅れるくらいでした。
今回は「Web Payments SDK」の「Card Payments」サンプルの「web-payments-quickstart」
https://github.com/square/web-payments-quickstart を参考に実装を進めました。
SDKのPHP側のクラスが分かれば何とかなる
サンプルはnode.jsのサーバーで作られていますが、SDKのPHPのクラスが分かれば何とか変換できました。
PHPで参考になるドキュメントはSDK側に付属しています。
https://github.com/square/square-php-sdk
- square-php-sdk-master\doc\apis\payments.md
- square-php-sdk-master\doc\models\payment.md
- square-php-sdk-master\doc\create-payment-request.md
- square-php-sdk-master\doc\create-payment-response.md
カード決済だけなら、paymentAPIには、ほとんど入力する項目はありません。
ZIPコードって何?
sandbox側ではテスト用カード番号を使用して動作確認することになりますが、テストカード番号では「ZIP」の入力が出てきます。
どうやら、「米国、カナダ または 英国」ではカード情報の認証でZIPも使用するようです。ZIPは郵便番号になりますが、日本と番号の桁数が異なります。
日本で発行されたクレジットカードではこの「ZIP」は表示されないようです。
試しに実際のカード番号だけを入力(セキュリティーコードや有効期限は入力しない状態)した場合、ZIPは表示されませんでした。
テストカード情報は
https://developer.squareup.com/docs/devtools/sandbox/payments
にあります。
それで、API更新して何が変わったかというと
あまり、大きな変化はないように見えますが、画面がシンプルになった気がします。
オーダーを管理しなくなったので、入金の金額しか分かりません。
CheckoutAPIではオーダー情報も記録されるようです。
CheckoutAPIでは別ドメインへの移動が必要になりますが、PaymentAPIではドメインの移動無しで決済できます。
まとめ
今回の改修はドキュメントの場所が分かればそんなに大変ではない気がします。ドキュメントがどれなのか見当が付かないと調査に時間がとられてしまいますので、APIやクラスのドキュメントは準備してから実装すると良いと思います。
それではまた、次の記事でお会いしましょう。