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

未会員の決済+会員登録フロー

Amazon Payを使う際には、未会員の方が会員登録を行わずに「ゲスト」として購入することが可能です。
購入に必要となるお届け先情報やお支払い方法をAmazonからご連携することができるため、ゲスト購入の場合に通常必要となる住所や支払い方法の入力の手間がなく、画面遷移がシンプルになることにより、より良いカスタマーエクスペリエンスを提供することが可能 となり結果、購入途中での離脱を減らし、コンバージョンを上げることにつながります。

また、会員登録を購入者に要求することは、大きな離脱のポイントの一つとなるため、会員登録をせずとも会員と同等に扱えることがAmazon Payの利点です。

一方で、事業者によっては、会員登録が必須となっている場合もあるかもしれません。
その場合は、以下にご紹介する 会員登録がある場合のフローのように実装することで、Amazon Payから提供する情報を最大限ご利用いただき、購入フローを妨げずに同時に会員登録をさせることが可能です(先に自社の会員登録を要求し、次のステップでAmazon Payを使わせるような設計にしてしまうと、上記の通り離脱ポイントとなってしまいます)。


ゲスト購入フロー

ゲスト購入の場合のフローは、一般的な決済フローの通りです。


会員登録がある場合のフロー

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

事業者サイトAmazon Pay Hosted page Amazonログイン後事業者処理事業者サイト事業者処理Amazon Pay Hosted page事業者処理事業者サイト
事業者は、Amazon Payボタンレンダリングスクリプトを記述してサイトにAmazon Payボタンを表示します。
購入者は、Amazon Payボタンをクリックします。
● ● ●
カートページ
Amazon Pay
▶︎
購入者は、Amazon Pay Hosted pageにリダイレクトされ、AmazonのログインID、パスワードでログインします
▶︎▶︎
事業者はamazonCheckoutSessionIdを使い、Get Checkout Session APIを呼び出します。
APIのレスポンスでお届け先住所やお支払い方法等が返ってきます。
Ref: Get Checkout Sessionのレスポンスサンプル
▶︎
事業者は、APIレスポンスで取得した情報(Buyer情報、請求先住所、お届け先、支払い方法等)を事業者の注文確認画面に表示します。
● ● ●
注文確認ページ
お客様情報

お届け先住所
〒153-0064
東京都目黒区下目黒1-8-1
アマゾン太郎

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

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

お客様情報について
Amazon Payから提供される情報では自社サイトの会員DBを満足させることができない場合には、左図のように入力フォームを使い不足データの入力欄を用意する必要があるかもしれません。
なお、必要最低限以上の情報取得は離脱を増やす要因になりますので、この機会に見直しを行い、削除またはダミーデータを登録する形に変更することもご検討ください。
- buyer情報
buyerId、name、email、phoneNumberが提供されますので、nameをお客様の氏名、emailを連絡先メールアドレス、phoneNumberを連絡先電話番号として使用します。
支払い方法としてギフトカードのみを選択された場合、buyerのphoneNumberは連携されませんので、ご注意ください
buyerIdは、決済が完了するタイミングで会員情報をDBに保存する際に一緒に保存する必要がありますので、決済完了まで一時的に保存しておきます
Amazonサインインを導入する場合は、同購入者は次回からAmazonアカウントで事業者サイトにログインするようになるため、事業者サイト会員専用のパスワードを入力する必要がなくなります。
- billingAddress
billingAddressをお客様の住所として使用します。
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)

ご注文内容
商品名
単価
数量
小計
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レスポンスサンプル
決済が成功したら、会員情報を保存します。
会員情報には会員IDがあるかと思いますので、会員IDとAmazonのbuyerId(Get Checkout Session APIで取得したもの)を、会員 DBに紐付けて保存しておきます。
パスワードについて
例えば自社サイト専用アカウントでもログインできるようにするために購入者にパスワードを認識しもらいたい場合、ここでユーザーに入れさせたいというご要望があるかもしれません。
パスワードは十分長い文字列の乱数か、Formから入れられない文字列(例:high-valueとか)等を仮に保存しておき、初めてサイトのログインを利用する際に「パスワードリセット」ページを訪れるようメールでご案内する方式などが考えられます。
冒頭でもご紹介ましたように、入力項目を決済フローの途中で挟むことで、購入フローを妨げないよう考慮が必要です。
決済失敗時のハンドリング
決済が「成功」しない可能性もありますので、エラー発生時のハンドリング処理をお願いいたします。
エラーハンドリング
インテグレーションガイド - エラーハンドリング および エラーのリトライ
FAQ - 決済失敗時のエラーハンドリング
▶︎
事業者は、注文完了ページを表示します

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