6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AmazonPay導入

Posted at

参考URL

Amazon Pay Self Check Sheet (Onetime Version)
https://pwa.geekylab.net/selfcheck/index.html

Amazon Pay API Reference Guide
https://developer.amazon.com/ja/docs/amazon-pay-api/intro.html

Amazon Pay インテグレーションガイド
https://developer.amazon.com/ja/docs/amazon-pay-onetime/intro.html

AmazonPay管理画面
https://sellercentral.amazon.co.jp/gp/homepage.html/ref=xx_home_logo_xx

Amazon Payを使ったカード決済(PHP)でハマった箇所と実装まとめ
https://qiita.com/arawow/items/8d9b4b5434a48332b246

Amazon Payの実装でつまづきやすいこと一覧
https://qiita.com/shg10/items/71f1eba9653732a7b45f

販売事業者向けヘルプ
https://pay.amazon.co.jp/help/201212200

Amazon Pay Widget Code Generator
http://amzn.github.io/amazon-pay-sdk-samples/code_generator/?region=JP

Amazon Pay手数料

  • デジタルコンテンツ以外(物理的商品・サービス等) : 4%
  • デジタルコンテンツ : 4.5%

準備金

準備金とは
https://pay.amazon.co.jp/help/201212300

申し込み・審査

審査に2週間かかる。
その間もテストはできる。

注意点

Amazon Pay インテグレーションガイドに書いてあります。

  • アドレス帳とお支払い方法ウィジェットが表示された場合は、購入者はセッションが切れるまでに60分間あります。
  • Amazon Payのポリシーでは、注文された商品を出荷してから売上請求しなければなりません。よって、商品を出荷する前に売上請求してはなりません。
  • 資金を回収するためには、本番環境モードではオーソリに成功してから30日以内に売上請求(Capture)APIを呼び出します。テスト環境モードでは2日以内です。30日を過ぎた場合は、Amazonによってオーソリオブジェクトは Closed状態にします。
  • 注文商品の出荷が完了した場合にOrder ReferenceをOpenまたは Suspended状態からClosed に変更し、これ以上のオーソリをリクエストできないようにします。追加のオーソリを行う必要がない場合は Closed にすることをお勧めしますが、部分出荷などで分割請求した場合は残存する請求ができなくなりますので、すべてが完了するまで、もしくは、これ以上の金額追加がない場合のみOrder Referenceを Closedにしてください。
  • Amazonは注文支払が完了したことをOrder ReferenceがClosed されたとして購入者に示します。別の方法では、購入者はAmazon PayのWebサイト上でトランザクションを確認できます。Order Referenceは Closedにしていなければ180日間はOpen 状態で表示され、180日以降はAmazonがOrder ReferenceオブジェクトをExpired の理由コードを付けて Closedにします。

流れ

1.ログインボタン表示
2.ログイン画面表示
3.ログインするとリダイレクト
4.URLのハッシュ(アンカー)として、アクセストークンが渡ってくるので、取得
5.住所ウィジェットとカードウィジェットを表示(住所に応じて使用可能なカードが変わるので、同時に表示する)
6.住所ウィジェットを表示するAPIをたたくと、orderReferenceIdを取得できるので、これも保存
7.アクセストークンとorderReferenceIdをPOSTするなどして次の画面へ遷移(どの住所・カードを選択したかは、(おそらくクッキーあたりに)保存されているので特に保存は必要なし)
8.アクセストークンとorderReferenceIdを使用して、GetOrderReferenceDetailsで住所を取得可能
9.注文内容が確定したら、setOrderReferenceDetails(注文セット)→confirmOrderReference(注文確定)→authorize(オーソリ)でオーソリまで行う
10.商品を発送したら、AmazonPayの管理画面で、売上請求処理でカードから引き落とし

以上

インスタント支払通知

OrderReference通知
Authorization通知
Capture通知
Chargeback通知
Refund通知

それぞれ発生した場合やclose時に通知が来ます。
OrderReferenceからAuthorizationの情報(そこからさらにCaptureの情報も)は取得できるのですが、Refundの情報が取得できません。Chargebackは知りません。
ので、Capture通知とRefund通知は確認して、金額を保存したほうがいいです。
それぞれ複数発生するので、orderとの1対多で保存しましょう。

住所取得の際の注意

GetOrderReferenceDetails→$result['GetOrderReferenceDetailsResult']['OrderReferenceDetails']['Destination']['PhysicalDestination']
で取得します。その中身は
https://developer.amazon.com/ja/docs/amazon-pay-api/address.html
になってます。
テストアカウント住所と実際の自分のアカウント住所とでいくつか違いがありますので、注意が必要です。
特に

  • City

は「日本では利用できません。」となっているように、取得できません(テストアカウント住所では取得できます)。

  • AddressLine1

に市とか入っています。
基本的には、

'address' => @$PhysicalDestination['StateOrRegion'] . ' ' . @$PhysicalDestination['City'] . ' ' . @$PhysicalDestination['AddressLine1'] . ' ' . @$PhysicalDestination['AddressLine2'] . ' ' . @$PhysicalDestination['AddressLine3'],

という感じで大丈夫かと思います。

6
8
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
6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?