LoginSignup
19
7

More than 3 years have passed since last update.

AmazonインセンティブAPI実装(Amazonギフト券/giftcode)

Last updated at Posted at 2019-12-15

経緯

Amazonギフトカード実装をお願いされ、気軽にokを出したものの、概要がとってもわかりずらく、かつ参考文献が全くなく、意外と四苦八苦したので、同じ悩みの方が出ないように投稿する事にしました。
なお、事前に用意されたphpのサンプルコードからLaravelに実装し直す、という流れが一番良いと思いますが、あまりにも面倒だったのと時間との勝負だった為、決してベストプラクティスでないことはご了承ください。。

本題

登録→確認方法

基本的には導入マニュアルがあるので、これに沿って開発をしていきます。
AmazonインセンティブAPIとの統合プロセスについて
登録した後、サンドボックス環境で正常に動作するか確認

サンプルコード参照

FAQ付録にサンドボックス環境のサンプルコードがあります。
今回はphp/Laravelで実装予定だったので、ここのphpのサンプルコードを読み、htmlSDKv2_php_cr⁩/htmlSDKv2_php/rollups⁩/function.phpにキー発行実装があります。

実装方法

  1. fuciton.phpのみ取り出し、app/Library配下に設置
  2. controllerからのinvokeRequest を指定
  3. Laravel実装の為、globalで引っ張ってきてるところをconfigにまとめ、アクセスキー等は.envに設定
  4. 実装完了。。。。

注意点としては、サンドボックス環境とプロダクション環境の2つともアクセスキーを発行しなければいけません。

余談(メイン)

今回は、jsonで返したので、XML2Array.phpは使用していません。
今回の僕の実装の流れとしては、
登録した後、サンドボックス環境でidが合っているか確認するところまでは順調でした。
ただresponseを叩いた時に、雲行きが怪しくなりました。responseの情報以外に沢山の情報があり、気づいてしまったんです。

あれ、、???これ、、、、api叩くだけじゃダメじゃね、、、?

そうです。僕は必要なrequestを提げて、apiを叩けばそれで実装が完了すると思っていました。
そんな甘い世界ではありません。このapiではSignatureキーを採用しているので、あちらで発行するキーと同じ発行をしなければなりませんでした。
その実装が開発マニュアルに書いてあるのかと思いきや、そのような実装は見つからずましてや必要なrequestすら曖昧すぎてよくわからなかったです。泣きそうでした。

そんな泣きそうな中、FAQ付録にサンドボックス環境においてのサンプルコードを見つけ、phpのサンプルコードのhtmlSDKv2_php_cr⁩/htmlSDKv2_php/rollups⁩/function.phpにたどり着きました。。

実装する人は少ないと思いますが、今後同じように実装する人を救えますように。。

19
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
7