事業者は、Amazon Payボタンレンダリングスクリプトを記述してサイトにAmazon Payボタンを表示します。 購入者は、Amazon Payボタンをクリックします。 | ▶︎ | 購入者は、Amazon Pay Hosted pageにリダイレクトされ、AmazonのログインID、パスワードでログインします | ▶︎ | | ▶︎ | | ▶︎ | 事業者は、APIレスポンスで取得した情報( Buyer情報、請求先住所、お届け先、支払い方法等)を 事業者の注文確認画面に表示します。 注文確認ページ 〒153-0064 東京都目黒区下目黒1-8-1 アマゾン太郎 VISA 1111xxxx (Amazon Pay) ご注文内容 お客様情報についてAmazon Payから提供される情報では自社サイトの会員DBを満足させることができない場合には、左図のように入力フォームを使い不足データの入力欄を用意する必要があるかもしれません。 なお、必要最低限以上の情報取得は離脱を増やす要因になりますので、この機会に見直しを行い、削除またはダミーデータを登録する形に変更することもご検討ください。- buyer情報buyerId、name、email、phoneNumberが提供されますので、nameをお客様の氏名、emailを連絡先メールアドレス、phoneNumberを連絡先電話番号として使用します。 支払い方法としてギフトカードのみを選択された場合、buyerのphoneNumberは連携されませんので、ご注意くださいbuyerIdは、決済が完了するタイミングで会員情報をDBに保存する際に一緒に保存する必要がありますので、決済完了まで一時的に保存しておきますAmazonサインインを導入する場合は、同購入者は次回からAmazonアカウントで事業者サイトにログインするようになるため、事業者サイト会員専用のパスワードを入力する必要がなくなります。- billingAddressbillingAddressをお客様の住所として使用します。 billingAddressは、Amazonから別の住所を取得することはできませんので、必要に応じて編集可能なフォームにプレフィルとして表示するのが良いかもしれません。 billingAddressはAmazonアカウント保有者が登録している請求先住所です。 請求先住所は必ずしもお届け先住所と同じではない可能性がありますので、会員情報としては請求先住所(billingAddress)をご利用いただくと良いかと思います。 請求先住所の項目については、お届け先住所と同様です。日本では使用されていない項目などもありますので注意が必要です。 詳細は以下のFAQをご覧ください。 ギフトカードのみを選択された場合、請求先住所が連携されませんので、ご注意くださいFAQ - アカウント情報として何が取得できますか? > アドレス帳(お届け先住所) Checkout Session: shippingAddress- 名前や住所のフォーマットについてまた 氏名や住所フォーマットが事業者の望むような形で成形されていない可能性があります(氏名が姓と名で分かれていない、市区町村、町域、番地のような区分で分かれていない)。 さらに 姓名のふりがなはAmazonからご提供していません。そのため、Amazonアカウントの氏名を姓と名に分割したり、住所のAddressLine1、AddressLine2およびAddressLine3の内容を市区町村、町域、番地、および、マンション・建物名に分割するサンプルコード、また、姓名のふりがなを生成するサンプルコードをご提供しています。 サンプルコードは以下のFAQから取得ください。 FAQ - Amazonアカウントから取得した住所や姓名を分割したいですお届け先住所および氏名について一般的な決済フロー - お届け先住所および氏名についてと同じです。 支払い方法について一般的な決済フロー - 支払い方法についてと同じです。 お届け先と支払い方法の変更ボタンお届け先住所やお支払い方法をAmazonサイトに複数登録しているお客様がこの画面から別の住所/ 支払い方法へ変更できるよう、事業者は 「変更」 ボタンの設置をお願いいたします。 「変更」ボタンには、bindChangeAction実装します。 詳細は 一般的な決済フロー - bindChangeActionと同じです。 | ▶︎ | 購入者は、「注文を確定する」ボタンをクリックします。 注文確認ページ 〒153-0064 東京都目黒区下目黒1-8-1 アマゾン太郎 VISA 1111xxxx (Amazon Pay) ご注文内容 | ▶︎ | 既存の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レスポンスサンプル決済が成功したら、会員情報を保存します。 会員情報には会員IDがあるかと思いますので、会員IDとAmazonのbuyerId(Get Checkout Session APIで取得したもの)を、会員 DBに紐付けて保存しておきます。パスワードについて例えば自社サイト専用アカウントでもログインできるようにするために購入者にパスワードを認識しもらいたい場合、ここでユーザーに入れさせたいというご要望があるかもしれません。 パスワードは十分長い文字列の乱数か、Formから入れられない文字列(例:high-valueとか)等を仮に保存しておき、初めてサイトのログインを利用する際に「パスワードリセット」ページを訪れるようメールでご案内する方式などが考えられます。 冒頭でもご紹介ましたように、入力項目を決済フローの途中で挟むことで、購入フローを妨げないよう考慮が必要です。 決済失敗時のハンドリング決済が「成功」しない可能性もありますので、エラー発生時のハンドリング処理をお願いいたします。 エラーハンドリングインテグレーションガイド - エラーハンドリング および エラーのリトライFAQ - 決済失敗時のエラーハンドリング | ▶︎ | |