メインコンテンツまでスキップ

一般的な決済フロー

フロー図

以下は一般的なAmazon Payのフロー(事業者処理とAmazon側の処理を横長のフローにまとめたもの)です。
フローは横長となっており、フロー内を右にスクロールしていただくことで全てをご覧いただけます。

OneTime(都度払い)の決済フロー

事業者サイトAmazon Pay Hosted page Amazonログイン後事業者処理事業者サイト事業者処理 注文確定後Amazon Pay Hosted page事業者処理事業者サイト
事業者は、Amazon Payボタンレンダリングスクリプトを記述してサイトにAmazon Payボタンを表示します。
購入者は、Amazon Payボタンをクリックします。
● ● ●
カートページ
Amazon Pay
▶︎
購入者は、Amazon Pay Hosted pageにリダイレクトされ、AmazonのログインID、パスワードでログインします
▶︎
ログインが完了すると、購入者は"住所/支払いが選択できるHosted Page"、または、"住所/支払いが選択できないHosted Page"で「続行」ボタンをクリックします。
どちらのHosted Pageを表示するかを事業者側でコントロールすることは基本的にできませんので、ご注意ください。
住所/支払いが選択できるHosted Page
productType="PayAndShip"の場合
Merchant
お届け先住所
テスト姓名 153-0064 東京都目黒区下目黒1-8-1
支払い方法
VISA 末尾 1111

productType="PayOnly"の場合
Merchant
支払い方法
VISA 末尾 1111

「変更」ボタンをクリックした場合
お届け先を選択してください
◉ テスト姓名二
1530064
Tokyo 目黒区下目黒1-8-1
日本
○ テスト姓 名スペース
153-0064
東京都目黒区 下目黒1-8-1
日本
+ 新しい住所を追加


支払い方法を選択してください
◉ VISA 末尾1111
xxx
有効期限 05/2023
○ American Express 末尾 0005
xxxx
有効期限 05/2023

住所/支払いが選択できないHosted Page
PayAndShipの場合
✔️
Amazonアカウントでログインしています

▶︎
購入者が「続行」をクリックすると、 AmazonはcreateCheckoutSessionConfig.payloadJSONに設定いただいたcheckoutReviewReturnUrlへリダイレクトします。このリダイレクト先へは、amazonCheckoutSessionIdがURLパラメータとして付加されます
例) https://anyurl.com/review/? amazonCheckoutSessionId=26be7331-7dc2-4722-be22-f7e75582d3ef
▶︎
事業者はamazonCheckoutSessionIdを使い、Get Checkout Session APIを呼び出します。
APIのレスポンスでお届け先住所やお支払い方法等が返ってきます。
Ref: Get Checkout Sessionのレスポンスサンプル
▶︎
事業者は、APIレスポンスで取得した情報(お届け先、支払い方法等)を事業者の注文確認画面に表示します。
● ● ●
注文確認ページ
お届け先住所
〒153-0064
東京都目黒区下目黒1-8-1
アマゾン太郎

支払い方法
VISA 1111xxxx (Amazon Pay)

ご注文内容
商品名
単価
数量
小計
Coffee Beans
コーヒー豆
¥2,000
1
¥2,000
Coffee Beans
コーヒーカップ
¥500
1
¥500
合計
¥2,500

お届け先住所および氏名について
productType=PayAndShipを選択した場合は、Amazonから取得したお届け先 (shippingAddress)を表示します。
お届け先住所に関する注意点
Get Checkout Session APIのresponseに含まれる shippingAddressを使用します。
shippingAddressの情報については日本では使用されていない項目などもありますので注意が必要です。詳細は以下のFAQをご覧ください。
FAQ - アカウント情報として何が取得できますか? > アドレス帳(お届け先住所) Checkout Session: shippingAddress
また氏名や住所フォーマットが事業者の望むような形で成形されていない可能性があります(氏名が姓と名で分かれていない、市区町村、町域、番地のような区分で分かれていない)。
さらに姓名のふりがなはAmazonからご提供していません。
そのため、Amazonアカウントの氏名を姓と名に分割したり、住所のAddressLine1、AddressLine2およびAddressLine3の内容を市区町村、町域、番地、および、マンション・建物名に分割するサンプルコード、また、姓名のふりがなを生成するサンプルコードをご提供しています。
サンプルコードは以下のFAQから取得ください。
FAQ - Amazonアカウントから取得した住所や姓名を分割したいです
支払い方法について
Amazonから取得した支払い方法(paymentPreferencesのpaymentDescriptor)を表示します。
支払い方法に関する注意点
Get Checkout Session APIのresponseに含まれる paymentPreferencesのpaymentDescriptorを使用します
"paymentDescriptor": "Visa ****1111 (Amazon Pay)"
このような形で、支払い方法をテキストで連携しますので、それをそのまま表示します。
なお、ギフトカードが利用できるような購入のケースでは、ギフトカードを含めた形でpaymentDescriptorが表示されます。
"paymentDescriptor": "Amazonギフトカード と Visa ****6069 (Amazon Pay)"
詳細は以下のFAQをご覧ください。
FAQ - Amazonギフトカードの利用について注意点を知りたいです。
お届け先住所やお支払い方法をAmazonサイトに複数登録しているお客様がこの画面から別の住所/ 支払い方法へ変更できるよう、事業者は「変更」 ボタンの設置をお願いいたします。
「変更」ボタンには、bindChangeAction実装します。
これにより「変更」ボタンをクリックした際に購入者は再びAmazon Pay Hosted pageにリダイレクトされ、お届け先や支払い方法を変更します。
bindChangeActionの詳細は以下のインテグレーションガイドをご覧ください。
インテグレーションガイド - 配送と支払い方法の更新
この「変更」ボタンからAmazon Pay以外の支払い方法へ変更させるにはどうすれば良いか?というご質問をいただくことがあります。
こちらの注文確認ページはAmazon Payでログインした後に表示される画面となっており、購入者は明示的にAmazon Payを選択済みの状態ですので、混乱を避けるためにもこのタイミングで別の支払い方法へ変更させるフローは避けていただきますようお願いいたします。
「変更」ボタンはあくまでAmazonに登録済みの別の支払い方法へ変更するためのボタンとなります

● ● ●
注文確認ページ
お届け先住所
〒153-0064
東京都目黒区下目黒1-8-1
アマゾン太郎

支払い方法
VISA 1111xxxx (Amazon Pay)

ご注文内容
商品名
単価
数量
小計
Coffee Beans
コーヒー豆
¥2,000
1
¥2,000
Coffee Beans
コーヒーカップ
¥500
1
¥500
合計
¥2,500

「変更」ボタンをクリックすると、住所/支払いが選択できるHosted Pageが表示されます
productType="PayAndShip"の場合
Merchant
お届け先住所
テスト姓名 153-0064 東京都目黒区下目黒1-8-1
支払い方法
VISA 末尾 1111

productType="PayOnly"の場合
Merchant
支払い方法
VISA 末尾 1111

「変更」ボタンをクリックした場合
お届け先を選択してください
◉ テスト姓名二
1530064
Tokyo 目黒区下目黒1-8-1
日本
○ テスト姓 名スペース
153-0064
東京都目黒区 下目黒1-8-1
日本
+ 新しい住所を追加


支払い方法を選択してください
◉ VISA 末尾1111
xxx
有効期限 05/2023
○ American Express 末尾 0005
xxxx
有効期限 05/2023

▶︎
購入者は、「注文を確定する」ボタンをクリックします。
● ● ●
注文確認ページ
お届け先住所
〒153-0064
東京都目黒区下目黒1-8-1
アマゾン太郎

支払い方法
VISA 1111xxxx (Amazon Pay)

ご注文内容
商品名
単価
数量
小計
Coffee Beans
コーヒー豆
¥2,000
1
¥2,000
Coffee Beans
コーヒーカップ
¥500
1
¥500
合計
¥2,500

▶︎
既存のamazonCheckoutSessionに対して、金額 (chargeAmount)、決済請求タイプ(paymentIntent)をセットし、Update Checkout Session APIを呼び出します。

Paymentには3つの種類があり、選択したpaymentIntentにより後続の処理が異なって来ますのでご注意ください。paymentIntentの詳細は、実装前の前提知識 - 主要なパラメータ - paymentIntentを参照ください。

Update Checkout Sessionが成功するとAPI responseでamazonPayRedirectUrlが返りますので、事業者からamazonPayRedirectUrlへリダイレクトします。
API responseの "WebCheckoutDetails"内に
"amazonPayRedirectUrl": "https://pay.amazon.com/redirect/checkoutId-1"という形でamazonPayRedirectUrlが返ってきます。

Ref: インテグレーションガイド - Update Checkout Sessionレスポンスサンプル
▶︎

処理が完了すると、Amazonは、Amazon PayボタンのpayloadJSON. webCheckoutDetails.checkoutResultReturnUrlに設定したURLへリダイレクトします。
遷移先URLには amazonCheckoutSessionIdパラメータが追加されます
例)https://anyurl.com/result/?amazonCheckoutSessionId=26be7331-7dc2-4722-be22-f7e75582d3ef
▶︎
事業者は、Complete Checkout Session APIを呼び出しcheckoutSessionを完了させます。
APIのresponseでchargePermissionIdとchargeIdが返却されます。
後続処理で必要となりますので、事業者注文情報と紐付けて保存してください。
インテグレーションガイド - Complete Checkout Sessionレスポンスサンプル
決済が「成功」しない可能性がありますので、エラー発生時のハンドリング処理をお願いいたします。
エラーハンドリング
インテグレーションガイド - エラーハンドリング および リトライ
FAQ - 決済失敗時のエラーハンドリング
▶︎
事業者は、注文完了ページを表示します

● ● ●
注文完了ページ
✔️

Recurring(継続払い)の決済フロー

事業者サイトAmazon Pay Hosted page Amazonログイン後
事業者者、Amazon Payボタンレンダリングスクリプトを記述してサイトにAmazon Payボタンを表示します。
購入者は、Amazon Payボタンをクリックします。
● ● ●
カートページ
Amazon Pay
▶︎
購入者は、Amazon Pay Hosted pageにリダイレクトされ、AmazonのログインID、パスワードでログインします
▶︎
ログインが完了すると、購入者は"住所/支払いが選択できるHosted Page"で「続行」ボタンをクリックします。
Recurringの場合
Amazon Pay Hosted page上に、「継続支払い」の文言が表示され、その文言をクリックすると事業者がrecurringMetaDataで指定したfrequencyが表示されます(例: 1ヶ月、1年等)。
Recurring
住所/支払いが選択できるHosted Page
productType="PayAndShip"の場合
Merchant
お届け先住所
テスト姓名 153-0064 東京都目黒区下目黒1-8-1
支払い方法
VISA 末尾 1111

productType="PayOnly"の場合
Merchant
支払い方法
VISA 末尾 1111

住所/支払いが選択できないHosted Page
Recurringの場合は必ず住所等が選択できるHosted Pageが表示されます。
「継続支払い」をクリックした場合
お支払いはxxごとに処理されます
※xxには、事業者がrecurringMetaDataで指定したfrequencyが表示されます(例: 1ヶ月、1年等)
▶︎
以降の処理は、OneTime(都度払い)の決済フローと同じです


OneTimeとRecurringの違い

ご覧いただいたように、フロー上で大きな違いはありません。

ただし、特にRecurringの場合は、2回目以降のCharge(オーソリ)を事業者側が実行する必要があります(Amazonが定期的に自動でChargeすることはありません)。
そのため、2回目以降のChargeについては、決済フローの中で生成したCharge Permissionに対して、Create Charge APIを呼び出して実行します。

FAQ - Recurring(継続支払い)の2回目以降の課金はどのようにすればよいですか?

また、お客さまが定期利用を休会したり退会する場合も、Charge Permissionをupdateやcloseするなどの処理が必要となる場合がありますのでご注意ください。

FAQ -一時休会・退会の時にAuto Payの処理はどのようにすればよいですか?

Charge Permission や Chargeについて再び定義などを確認したい場合は、本資料の オブジェクトとAPI を再度ご確認いただくことをお勧めします。



シーケンス図

シーケンス図もご用意していますので、以下をご確認ください。

注文時

img

複数オーソリの処理フロー

img

Dynamic Authorization 処理フロー

img

出典: FAQ - OneTime(都度支払い)で、注文時のAmazon Pay API処理フロー(通常/複数オーソリ/Dynamic Authorization

売上請求

img

注文取消

img

※HTTPステータスコード 2xx 正常系 ベースの処理フローでの記載です。 その他のケースに関してはインテグレーションガイドを参照の上、エラーハンドリングなどの制御を行って下さい。

具体的な実装の詳細は、実装手順でご紹介していますので、ご覧ください。