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

実装フロー

前提

Amazonサインインは、Amazon Payでの決済を行うお客様が 次回から事業者サイトのID/PWを利用せずにAmazonのID/PWを使って事業者サイトにもログインできるようにするものです。

『AmazonのID/PWを使って事業者サイトにもログインできるようにする』ためには、 購入者がAmazon PayまたはSignInをご利用の際に Amazonから連携するAmazonアカウント保有者のUnique ID (buyerId)を、事業者が会員IDと紐付けて保存しておく必要があります。

buyerIdは、Amazonサインイン実行時以外に、Amazon Pay(「Amazonアカウントでお支払い」ボタン)をご利用時にもAPIで取得することが可能です。
そのため、ログインフローまたは購入処理フローの中でこのbuyerIdを事業者サイト会員IDと紐付けて保存します。

buyer情報取得タイミング
  • Amazon Pay(「Amazonアカウントでお支払い」ボタン)の場合は、Get Checkout Session APIのresponse内に buyerデータとしてご連携します。
  • Amazonサインイン(「Amazonログイン」ボタン)の場合は、Get Buyer APIのresponse内にbuyerデータとしてご連携します。
info

購入時にAmazon Payでログインされた場合は、Amazon Payでの支払い意思があるため、お支払い方法としてAmazon Payが選択された状態で表示ください。


buyerId紐付けと利用に関する流れ

buyerId紐付けおよび利用に関する流れをご説明します。

1. 未会員の場合(購入導線で会員登録およびbuyerId紐付け)

  1. 例えば、購入者がカート画面に表示されたAmazon Payボタンをクリックしたとします。
  2. 購入者はAmazon Pay Hosted page上でログイン+続行し、事業者の指定するURLへリダイレクトされた際、事業者はGet Checkout Session APIを呼び出し 情報を取得します(返される情報の中には、お届け先やお支払い方法の他に、buyer情報としてbuyerId、メールアドレス、氏名、請求先住所、電話番号等が返されます)
  3. 事業者は、Get Checkout Session APIで返された情報を使って、購入者に注文確認ページをレンダリングします。
info

会員登録の必須有無や、会員登録を購入より前に行うのか後に行うのか、によりますが、会員登録必須かつ購入より前に行う必要がある場合は、会員登録に必要な情報は可能な限りAmazonから取得したbuyer情報、billingAddressを使用(会員登録フォームにプレフィル等)し、不足する項目のみを入力項目として用意します。

Amazonサインインを利用する場合は、事業者独自の会員IDやパスワードを購入者が意識する必要はなくなりますので、入力項目としてパスワードは不要となる想定です。

  1. 購入者が注文確認ページで内容を確認し「購入完了」ボタンをクリックした際に、事業者はAmazon Payでの決済を完了させると共に、事業者の会員DBに会員情報を保存し、AmazonのbuyerIdを会員IDと一緒に紐付けて保存します(事業者独自の会員PWを購入者が意識する必要はないため、PWは裏側で仮PWを自動生成して保存する等の処理を行います)。

次回購入者が事業者サイトを訪問した際

  • ログイン画面で「Amazonでログイン」ボタンをクリックしログインした場合
    この際、事業者はGet Buyer APIを呼び出してbuyerIdを取得し、buyerIDを事業者の会員DB内で検索します。
    存在する場合は、当該会員として裏側で事業者サイト会員としてログイン処理を行います。
  • ログイン画面へいかず(未ログイン状態)、カート画面から直接「Amazon Pay」ボタンをクリックした場合
    この際に事業者はGet Checkout Session APIを呼び出しbueyrIdを取得し、buyerIDを事業者会員DB内で検索します。
    存在する場合は、当該会員として裏側で事業者サイト会員としてログイン処理を行いつつ、購入フローを続行します。

2. 既存会員の場合(購入導線でのbuyerId紐付け)

  1. 例えば、購入者が事業者独自の会員IDでログインした状態で、カート画面に表示されたAmazon Payボタンをクリックしたとします。
  2. 購入者はAmazon Pay Hosted page上でログイン+続行し、事業者の指定するURLへリダイレクトされた際、事業者はGet Checkout Session APIを呼び出して情報を取得します(返される情報の中には、お届け先やお支払い方法の他に、buyer情報としてbuyerId、メールアドレス、氏名、請求先住所、電話番号等が返されます)
  3. 事業者は、Get Checkout Session APIで返された情報を使って購入者に注文確認ページをレンダリングします。
  4. 購入者が注文確認ページで内容を確認し「購入完了」ボタンをクリックした際に、事業者はAmazon Payでの決済を完了させると共に、事業者の会員DBにAmazonのbuyerIdを会員IDと紐付けて保存します。

次回購入者が事業者サイトを訪問した際

  • ログイン画面で「Amazonでログイン」ボタンをクリックしログインした場合
    この際、事業者はGet Buyer APIを呼び出してbuyerIdを取得し、buyerIDを事業者の会員DB内で検索します。
    存在する場合は、当該会員として裏側で事業者サイト会員としてログイン処理を行います。
  • ログイン画面へいかず(未ログイン状態)、カート画面から直接「Amazon Pay」ボタンをクリックした場合
    この際に事業者はGet Checkout Session APIを呼び出しbueyrIdを取得し、buyerIDを事業者の会員DB内で検索します。
    存在する場合は、当該会員として裏側で事業者サイト会員としてログイン処理を行いつつ、購入フローを続行します。

3. サイト内マイページなどで「外部ID連携」といった機能をすでにご利用の場合

外部IDの一つとしてAmazonログインを導入し、既存会員がマイページから事前にbuyerIdを会員IDと連携するという設計が可能です。

フロー図

購入フロー

  • 未会員の購入フローは、未会員の決済+会員登録フロー をご覧ください

  • 既存会員の購入フローは、既存会員向け決済フロー をご覧ください
    既存会員の決済フローの中で、決済が成功したら、会員DBにAmazonのbuyerId(Get Checkout Session APIで取得したもの)を会員IDに紐付けて保存 しておきます。

それぞれのフローの中で、会員IDとbuyerIdを紐付けできた後で、次回購入者がサイトを訪問した際のフローを以下にご紹介します。

ログイン画面で「Amazonでログイン」ボタンをクリックしログインした場合

事業者サイトAmazon Pay Hosted page事業者処理事業者サイト
事業者は、ログインページを表示します
ログインページには「Amazonでログイン」のボタンも表示します。
購入者は、Amazonでログインボタンをクリックします。
● ● ●
ログインページ
その他のIDでログイン
Amazon SignIn
▶︎
購入者は、Amazon Pay Hosted pageにリダイレクトされ、AmazonのログインID、パスワードでログインします
▶︎
ログインが完了すると、購入者は"Hosted Page"で「続行」ボタンをクリックします。
Hosted Page
✔️
Amazonアカウントでログインしています

▶︎
購入者が「続行」をクリックすると、 AmazonはsignInConfig.payloadJSONに設定いただいたsignInReturlUrlへAmazonからリダイレクトします。このリダイレクト先へは、buyerTokenがURLパラメータとして付加されます。
例) https://anyurl.com/signIn/? buyerToken=26be7331-7dc2-4722-be22-f7e75582d3ef
▶︎
事業者はbuyerTokenを使い、Get Buyer APIを呼び出します。
APIのレスポンスでbuyer情報 (buyerId含む)、請求先住所、お届け先住所やお支払い方法等が返ってきます。
Get Buyerのレスポンスサンプル
▶︎
事業者は、buyerIdに紐づく会員をDBで検索します。
存在していたら、裏側で事業者の会員としてサイトへログイン処理します。
▶︎
事業者は、ログイン後のページを表示します

ログイン画面へいかず(未ログイン状態)、カート画面から直接「Amazon Pay」ボタンをクリックした場合

事業者サイトAmazon Pay Hosted page事業者処理事業者サイト
事業者は、Amazon Payボタンレンダリングスクリプトを記述してサイトにAmazon Payボタンを表示します。
購入者は、Amazon Payボタンをクリックします。
● ● ●
カートページ
Amazon Pay
▶︎▶︎
事業者はamazonCheckoutSessionIdを使い、Get Checkout Session APIを呼び出します。
APIのレスポンスでお届け先住所やお支払い方法等が返ってきます。
このレスポンスにはbuyerIdも含まれます。
Get Checkout Sessionのレスポンスサンプル
▶︎
事業者は、buyerIdに紐づく会員をDBで検索します。
存在していたら、裏側で事業者の会員としてサイトへログイン処理します。
▶︎
事業者は、APIレスポンスで取得した情報(お届け先、支払い方法等)を事業者の注文確認画面に表示します。
● ● ●
注文確認ページ
お届け先住所
〒153-0064
東京都目黒区下目黒1-8-1
アマゾン太郎

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

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