#経緯
Amazonギフトカード実装をお願いされ、気軽にokを出したものの、概要がとってもわかりずらく、かつ参考文献が全くなく、意外と四苦八苦したので、同じ悩みの方が出ないように投稿する事にしました。
なお、事前に用意されたphpのサンプルコードからLaravelに実装し直す、という流れが一番良いと思いますが、あまりにも面倒だったのと時間との勝負だった為、決してベストプラクティスでないことはご了承ください。。
#本題
####登録→確認方法
基本的には導入マニュアルがあるので、これに沿って開発をしていきます。
AmazonインセンティブAPIとの統合プロセスについて
登録した後、サンドボックス環境で正常に動作するか確認
####サンプルコード参照
FAQ付録にサンドボックス環境のサンプルコードがあります。
今回はphp/Laravelで実装予定だったので、ここのphpのサンプルコードを読み、htmlSDKv2_php_cr/htmlSDKv2_php/rollups/function.php
にキー発行実装があります。
####実装方法
- fuciton.phpのみ取り出し、app/Library配下に設置
- controllerからのinvokeRequest を指定
- Laravel実装の為、globalで引っ張ってきてるところをconfigにまとめ、アクセスキー等は.envに設定
- 実装完了。。。。
注意点としては、サンドボックス環境とプロダクション環境の2つともアクセスキーを発行しなければいけません。
####余談(メイン)
今回は、jsonで返したので、XML2Array.phpは使用していません。
今回の僕の実装の流れとしては、
登録した後、サンドボックス環境でidが合っているか確認するところまでは順調でした。
ただresponseを叩いた時に、雲行きが怪しくなりました。responseの情報以外に沢山の情報があり、気づいてしまったんです。
あれ、、???これ、、、、api叩くだけじゃダメじゃね、、、?
そうです。僕は必要なrequestを提げて、apiを叩けばそれで実装が完了すると思っていました。
そんな甘い世界ではありません。このapiではSignatureキーを採用しているので、あちらで発行するキーと同じ発行をしなければなりませんでした。
その実装が開発マニュアルに書いてあるのかと思いきや、そのような実装は見つからずましてや必要なrequestすら曖昧すぎてよくわからなかったです。泣きそうでした。
そんな泣きそうな中、FAQ付録にサンドボックス環境においてのサンプルコードを見つけ、phpのサンプルコードのhtmlSDKv2_php_cr/htmlSDKv2_php/rollups/function.php
にたどり着きました。。
実装する人は少ないと思いますが、今後同じように実装する人を救えますように。。