【記事要約】
[注文する]ボタン押下と同時にEC CUBE3から購買情報をAmazonPayへ送信し、購入処理を完結させる
購入確認画面にて[注文する]ボタンが押下されたら、購買情報をAmazonPayへ送信し、購入処理を完結させる必要がある。
また、それと同時に無事処理が完結した場合、完了確認画面を表示させる必要がある。
※ここに書いてある記事はあくまで概要です。プログラムは自己責任で開発してください。
1. event.ymlにフックポイントを記載
各々のプログラムの組み方によると思うが、僕の場合、購入処理を下記フックポイントにて実施した
ShoppingController.phpを読み解いてもらうと分かるかと思うが、処理内容に応じて、適切なフックポイントは異なり、プラグインを作成する上で、フックポイントは重要な要素となってくる。
1 2 |
eccube.event.route.shopping_confirm.request: - [onRouteFrontShoppingConfirmRequest, NORMAL] |
function名は命名規則に則り、onRouteFrontShoppingConfirmRequestとする。
2. EventファイルにonRouteFrontShoppingConfirmRequestの処理内容を記載
プログラム内容を記載するとセキュリティ上もよろしくないので、プログラムの詳細は記載せずに、大まかな流れだけ紹介します。
下記、流れに沿って、独自にコーディングしていただけたらと思う。
Amazon Pay API リファレンスの「ワンタイムAmazon Pay API」、「Amazon Payデータタイプ」、「Order Referenceの制約」の内容を熟読し、コーディングに活用する。
プログラムに慣れた人はたいていマニュアルを読まないでも、それまでの経験値で多くのシステム構築をクリアできることが多いけれども、このAmazonPayに関しては独自の仕様が多いので、とにかく提供された資料を事前によく読むのが一番の近道だと実際に構築して感じた。
(1)Amazonログイン中の場合に、AmazonPayAPIのgetOrderReferenceDetails関数で、アドレスや連作先等の詳細情報を取得し、EC CUBE3の購買情報へセットする。
<参照URL>
https://pay.amazon.com/jp/developer/documentation/lpwa/201952090#201952090
(2)AmazonPayのPHP SDKのcharge関数を使用し、AmazonPayへ購買情報を送信する。
<参照URL>
https://github.com/amzn/amazon-pay-sdk-php?ld=APJPLPADirect
(3)レスポンス、オーソリーエラーなどエラーハンドリングをする。
AmazonPayのテスト環境に用意されているテストアカウントにて、カードのエラーをテストできるアカウントが用意されている。
<参照URL>
オーソリー状態と理由コード
https://pay.amazon.com/jp/developer/documentation/apireference/201752950
エラーコード
https://pay.amazon.com/jp/developer/documentation/apireference/201753060
(4)処理が無事完了した場合に、完了画面を表示する。
これらAmazonPayの開発者向け情報を参照しながら、EC CUBE3の開発者情報も非常に参照した。
上記フローでAmazonPayの基本的な流れを作り出すことができるが、次回はさらに細かい点について紹介したいと思う。