Afterpay または Clearpay の支払いを受け付ける
アメリカ、カナダ、イギリス、オーストラリア、ニュージーランドで、Afterpay (イギリスでは Clearpay とも呼ばれている) による支払い方法を受け付ける方法をご紹介します。
アプリで Afterpay を受け付けるには、顧客が支払いを認証するための Webview を表示します。その後、顧客はアプリに戻り、お客様は支払いが成功したか失敗したかをすぐに確認できます。
注
連携を始める前に、決済手段の設定に移動して、アカウントが Afterpay の対象であることを確認してください。
Stripe を設定するサーバ側クライアント側
まず、Stripe アカウントが必要です。今すぐ登録してください。
サーバ側
この組み込みには、サーバ上に Stripe API と通信するエンドポイントが必要です。サーバから Stripe API にアクセスするには、Stripe の公式ライブラリを使用します。
クライアント側
Stripe iOS SDK はオープンソースです。詳細なドキュメントが提供されており、iOS 13 以降をサポートするアプリと互換性があります。
注
SDK の最新リリースおよび過去バージョンの詳細については、GitHub の Releases (リリース) ページをご覧ください。リポジトリのリリースをウォッチして、新しいリリースの公開時に通知を受け取ることも可能です。
アプリの起動時に Stripe 公開可能キーを使用して SDK を設定します。これにより、アプリが Stripe API にリクエストを送信できるようになります。
PaymentIntent を作成するサーバ側クライアント側
PaymentIntent は、顧客から支払いを回収する意図を表すオブジェクトであり、支払いプロセスのライフサイクルをステージごとに追跡します。
サーバ側
まず、サーバーで PaymentIntent
を作成し、回収する金額と通貨を指定します。Payment Intents API を使用した組み込みをすでにお持ちの場合には、afterpay_
を PaymentIntent
の決済手段タイプのリストに追加します。
その他の支払い方法オプション
決済手段オプションで、支払いの内部的な注文 ID を設定する PaymentIntent
でオプションの reference
パラメーターを指定できます。これは通常、企業にも消費者にも表示されませんが、Afterpay の社内サポートチームは手動サポートリクエストの際にアクセスできます。ID は 128 文字に制限され、文字、数字、アンダースコア、バックスラッシュ、ダッシュのみを使用できます。
クライアント側
返される PaymentIntent には client secret が含まれ、これを使用することでクライアント側は、PaymentIntent オブジェクト全体を渡すことなく安全に決済プロセスを完了できます。クライアントで、サーバの PaymentIntent をリクエストし、その client secret を保存します。
支払い方法の詳細を収集するクライアント側
Afterpay で支払いを成功させるには請求先情報が提示されている必要があります。アプリで、必要な請求先情報を顧客から収集します。
- 氏名 (姓と名)
- メールアドレス
- 請求先住所
これらの詳細を使用して、STPPaymentMethodParams オブジェクトを作成します。
また、配送先情報は必須ではありませんが、認証率の向上に役立ちます。配送先情報を収集するには、以下を顧客から収集します。
- 氏名
- 詳細な配送先住所
これらの詳細を使用して、STPPaymentIntentShippingDetailsAddressParams を作成します。
Stripe に支払いを送金するクライアント側
ステップ 2 で作成した PaymentIntent から client secret を取得し、STPPaymentHandler confirmPayment: メソッドを呼び出します。これにより、WebView が表示され、顧客はそこで支払いを完了できます。完了後、支払い結果とともに、完了ブロックが呼び出されます。
失敗した支払い
Afterpay は、取引を受け付けるか拒否するかを決定する際に複数の要因を考慮します (買い手が Afterpay を使用している期間、顧客が返済する必要のある未払い額、現在の注文の値など)。
Afterpay による支払いは多くの決済手段よりも支払い拒否の確立が高いため、チェックアウトフローには常に card
などの他の支払いオプションを提示する必要があります。このような場合、PaymentMethod は解除され、PaymentIntenオブジェクトのステータスは自動的に requires_
に変わります。
Afterpay の PaymentIntent のステータスが requires_
の場合、顧客は Afterpay のサイトにリダイレクトされてから 3 時間以内に支払いを完了する必要があります (拒否された支払いには適用されません)。3 時間以内にアクションが実行されなければ、PaymentMethod の関連付けが解除され、PaymentIntent のステータスは自動的に requires_
に移行します。
このような場合、決済フローに表示される別の支払いオプションで再試行するように顧客に通知します。
エラーコード
一般的なエラーコードと対応する推奨アクションは以下のとおりです。
エラーコード | 推奨される対応 |
---|---|
payment_ | Afterpay の決済が失敗したことを示す一般的なエラー。これは、拒否エラーコードとして表示されない拒否である可能性もあります。 |
payment_ | Afterpay が顧客の支払いを拒否しました。次のステップとして、顧客から Afterpay に詳細を問い合わせる必要があります。 |
payment_ | 顧客が Afterpay の決済ページで支払いを完了しておらず、支払いセッションの期限が切れています。Stripe は、最初の決済フローの作成から 3 時間が経過しても正常にオーソリされなかった Payment Intents を自動的に期限切れにします。 |
payment_ | Afterpay でサービス関連のエラーが発生したため、リクエストを完了できません。後で再試行してください。 |
amount_ | Afterpay の国別のデフォルトの取引限度額以内の金額を入力してください。 |
amount_ | Afterpay の国別のデフォルトの取引限度額以内の金額を入力してください。 |