Afterpay または Clearpay の支払いを受け付ける
アメリカ、カナダ、イギリス、オーストラリア、ニュージーランドで、Afterpay (イギリスでは Clearpay とも呼ばれている) による支払い方法を受け付ける方法をご紹介します。
注意
このセクションにはレガシープロダクトについてのコンテンツが含まれています。最新の導入パスについては、代わりに決済を受け付けるのガイドを使用する必要があります。Stripe はこのプロダクトを引き続きサポートしていますが、プロダクトが非推奨になった場合にはサポートが終了する可能性があります。
Stripe ユーザは、Payment Intents API (サポートされている方法を使用して支払いを作成するための単一の導入パス) を使用して、以下の国の顧客から Afterpay による支払いを受け付けることができます。
- オーストラリア
- カナダ
- ニュージーランド
- イギリス
- アメリカ
Afterpay は、使用が 1 回限りの即時通知型の決済手段であり、顧客は支払いの認証を求められます。顧客は Afterpay のサイトにリダイレクトされ、そこで分割払いプランの規約に同意します。顧客が規約に同意すると、売上が保証され、お客様の Stripe アカウントに送金されます。顧客は一定の期間で直接 Afterpay に返済します。
注
連携を始める前に、決済手段の設定に移動して、アカウントが Afterpay の対象であることを確認してください。
PaymentIntent を作成するサーバ側
PaymentIntent は、顧客から支払いを回収する意図を表すオブジェクトであり、支払いプロセスのライフサイクルをステージごとに追跡します。まず、サーバーで PaymentIntent
を作成し、回収する金額と通貨を指定します。Payment Intents API を使用した組み込みをすでにお持ちの場合には、afterpay_
を PaymentIntent
の決済手段タイプのリストに追加します。
決済手段はダッシュボードで管理できます。Stripeは取引額、通貨、決済フローなどの要素に基づいて、適切な決済手段が返されるように処理します。以下の例では、automatic_payment_methods 属性を使用していますが、決済手段タイプを使用して afterpay_
を一覧表示することができます。最新バージョンのAPIでは automatic_
パラメーターの指定は必須ではありません。この機能はデフォルトで有効になっています。いずれのオプションを選択する場合でも、必ずダッシュボードで Afterpay Clearpay を有効にしてください。
client secret を取得する
PaymentIntent には、client secret が含まれています。これは、支払いプロセスを安全に完了するためにクライアント側で使用されます。client secret をクライアント側に渡す際は、いくつかの方法を使用できます。
その他の支払い方法オプション
決済手段オプションで、支払いの内部的な注文 ID を設定する PaymentIntent
でオプションの reference
パラメーターを指定できます。これは通常、企業にも消費者にも表示されませんが、Afterpay の社内サポートチームは手動サポートリクエストの際にアクセスできます。ID は 128 文字に制限され、文字、数字、アンダースコア、バックスラッシュ、ダッシュのみを使用できます。
Stripe に支払いを送金するクライアント側
このステップでは、Stripe.js を使用してクライアントで Afterpay の支払いを完了します。
Stripe.js を設定する
顧客が Afterpay での支払いをクリックしたときは、Stripe.js を使用してその支払いを Stripe に送信することをお勧めします。Stripe.js は、支払いフローを構築するための Stripe の基本的な JavaScript ライブラリです。これにより、以下で説明するリダイレクトなどの複雑な処理が自動的に行われ、今後、組み込みを他の支払い方法に簡単に拡張できます。Stripe.js スクリプトを HTML ファイルの先頭に追加することで、決済ページにこのスクリプトを含めます。
<head> <title>Checkout</title> <script src="https://js.stripe.com/basil/stripe.js"></script> </head>
決済ページで以下の JavaScript を使用して、Stripe.js のインスタンスを作成します。
// Set your publishable key: remember to change this to your live publishable key in production // See your keys here: https://dashboard.stripe.com/apikeys var stripe = Stripe(
, );'pk_test_TYooMQauvdEDq54NiTphI7jx'
PaymentIntent オブジェクト全体をクライアントに送信するのではなく、ステップ 2 で得た client secret を使用します。これは、Stripe API リクエストを認証する API キーとは異なります。
client secret は支払いを確定できるため、慎重に取り扱う必要があります。記録したり、URL に埋め込んだり、当該の顧客以外に漏洩することがないようにしてください。
stripe.confirmAfterpayClearpayPayment を使用して、お客様のページからのリダイレクトを処理して支払いを完了します。この機能に return_url を追加し、ユーザが Afterpay のウェブサイトまたはモバイルアプリで支払いを完了した後に Stripe がユーザをリダイレクトする場所を指示します。
// Redirects away from the client const {error} = await stripe.confirmAfterpayClearpayPayment( '{{PAYMENT_INTENT_CLIENT_SECRET}}', { payment_method: { billing_details: { email: 'jenny@rosen.com', name: 'Jenny Rosen', address: { line1: '1234 Main Street', city: 'San Francisco', state: 'CA', country: 'US', postal_code: '94111', }, }, }, return_url: 'https://example.com/checkout/complete', } ); if (error) { // Inform the customer that there was an error. }
顧客が支払いを送信すると、Stripe は顧客を return_
にリダイレクトし、以下の URL クエリーパラメーターを含めます。返品ページでは、これらを使用して PaymentIntent のステータスを取得し、顧客に支払いステータスを表示できます。
return_
を指定する際に、返品ページで使用する独自のクエリパラメーターを追加することもできます。
パラメーター | 説明 |
---|---|
payment_ | PaymentIntent の一意の識別子。 |
payment_ | PaymentIntent オブジェクトの client secret。サブスクリプションの実装の場合、この client_secret は confirmation_ を通じて Invoice オブジェクトでも公開されます |
顧客が自社のサイトにリダイレクトされたら、payment_
を使用して PaymentIntent をクエリし、顧客に取引ステータスを表示できます。
オプションPaymentIntent にラインアイテムを追加する
オプションで、ラインアイテムデータを受け入れて、Afterpay により多くのリスク警告を提供できます。この機能は現在、プライベートベータです。アクセスをリクエストする場合は、お問い合わせください。
オプションオーソリとキャプチャの分離
カード支払いでのオーソリとキャプチャーの分離とは異なり、Afterpay ではオーソリ時点で分割払いの初回の金額を顧客に請求します。その後、オーソリから最長 13 日間以内であれば、残りの支払いをキャプチャーすることができます。この期間に支払いがキャプチャーされない場合、初回分の分割払いが顧客に返金され、それ以降の分割払いは請求されません。この場合、Stripe は PaymentIntent もキャンセルし、payment_intent.canceled イベントを送信します。
支払いをキャプチャーできないと分かっている場合は、13 日間が経過するのを待つのではなく PaymentIntent をキャンセルすることをお勧めします。先を見越して PaymentIntent をキャンセルすると、すぐに最初の分割払いが顧客に返金され、顧客の明細書上の支払いに関して混乱が生じるのを避けられます。
オーソリのみ行うように Stripe に指示する 
オーソリとキャプチャーを分離することを指定するには、PaymentIntent の作成時に、capture_method を manual
に設定します。このパラメーターは、顧客の Afterpay アカウントの金額のみをオーソリするよう Stripe に指示します。
オーソリが成功すると、Stripe は payment_intent.amount_capturable_updated イベントを送信します。この機能については、イベントガイドでご確認ください。
売上をキャプチャする 
オーソリが成功すると、PaymentIntent の status が requires_
に移行します。オーソリされた売上をキャプチャーするために、PaymentIntent capture リクエストを実行します。デフォルトでは、オーソリされた合計金額がキャプチャーされます。これを超える金額のキャプチャーはできませが、これ未満でしたらキャプチャーできます。
任意オーソリをキャンセルする
オーソリを取り消す必要がある場合は、PaymentIntent をキャンセルできます。
オプションAfterpay のリダイレクトを手動で処理する
クライアント側で confirmAfterpayClearpayPayment
を使用して Afterpay のリダイレクトおよび支払いを処理するには、Stripe.js を使用することをお勧めします。Stripe.js を使用すると、他の決済手段にも対応するように実装を拡張できます。ただし、以下の手順に従って、お客様のサーバーに顧客を手動でリダイレクトすることもできます。
タイプが
afterpay_
の PaymentIntent (支払いインテント) を作成し、確定します。Afterpay で必要なclearpay payment_
プロパティを指定する必要があります。method_ data. billing_ details payment_
はオプションですが、認証率を上げるために推奨されます。intent. shipping payment_
を指定すると、Stripe によって PaymentMethod が作成され、この PaymentIntent ですぐに使用されます。method_ data また、顧客が支払いを完了した後にリダイレクトされる先の URL を
return_
フィールドに指定する必要があります。独自のクエリパラメータをこの URL に指定することもできます。これらのパラメータは、リダイレクトフロー完了時の最終的な URL に含められます。url 作成される
PaymentIntent
のステータスはrequires_
であり、action next_
のタイプはaction redirect_
です。to_ url { "status": "requires_action", "next_action": { "type": "redirect_to_url", "redirect_to_url": { "url": "https://hooks.stripe.com/...", "return_url": "https://example.com/checkout/complete" } }, "id": "pi_1G1sgdKi6xqXeNtkldRRE6HT", "object": "payment_intent", "amount": 1099,
next_
プロパティで指定した URL に顧客をリダイレクトします。ここでのコード例はおおまかなものであり、リダイレクト方法は、お客様の Web フレームワークによって異なる場合があります。action. redirect_ to_ url. url
決済プロセスを完了した顧客は、ステップ 1 で設定した return_
に送られます。payment_
と payment_
の URL クエリパラメーターが含まれています。上記のように独自のクエリパラメーターを渡すこともできます。
支払いのステータスを確認するには、Webhook を利用することをお勧めします。
オプション支払い後のイベントを処理する
支払いが完了すると、Stripe は payment_intent.succeeded イベントを送信します。ダッシュボード、カスタム Webhook、またはパートナーソリューションを使用してこれらのイベントを受信し、また、顧客への注文確認メールの送信、データベースでの売上の記録、配送ワークフローの開始などのアクションを実行します。
クライアントからのコールバックを待つのではなく、これらのイベントをリッスンします。クライアント側では、コールバックが実行される前に顧客がブラウザーのウィンドウを閉じたり、アプリを終了したりする可能性があります。また、悪意を持つクライアントがレスポンスを不正操作する恐れもあります。非同期型のイベントをリッスンするよう構築済みのシステムを設定することで、これ以降はより多くの決済手段を簡単に受け付けられるようになります。サポートされているすべての決済手段の違いをご確認ください。
ダッシュボードでイベントを手動で処理する
ダッシュボードを使用して、テスト決済をダッシュボードで表示したり、メール領収書を送信したり、入金を処理したり、失敗した決済を再試行したりできます。
Custom Webhook を構築する
Custom Webhook ハンドラを構築してイベントをリッスンし、カスタム非同期型の決済フローを作成します。Stripe CLI を使用して、ローカルで Webhook の導入のテストとデバッグを行います。
構築済みアプリを導入する
パートナーアプリケーションを統合することで、自動化やマーケティング/セールスなどの一般的なビジネスイベントを処理します。
オプションAfterpay の組み込みをテストする
テスト API キーを使用して Afterpay の組み込みをテストするには、リダイレクトページを表示します。リダイレクトページで支払いを認証することにより、支払い成功のケースをテストできます。PaymentIntent は requires_
から succeeded
に変化します。
ユーザが認証に失敗するケースをテストするには、テスト API キーを使用してリダイレクトページを表示します。リダイレクトページでテスト支払い失敗をクリックします。PaymentIntent は、requires_
から requires_
に変化します。
テスト環境で PaymentIntents を手動でキャプチャする場合、キャプチャされていない PaymentIntent は、認証が成功してから 10 分後に自動的に期限切れになります。
オプションウェブサイトに支払い方法のメッセージを表示する
Payment Method Messaging Element は、顧客が購入時に商品、カート、支払いの各ページから、利用できる後払いの決済オプションを直接確認できるようにする、埋め込み可能な UI コンポーネントです。
ウェブサイトに Payment Method Messaging Element を追加するには、決済手段のメッセージを表示するをご覧ください。

失敗した支払い
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 の国別のデフォルトの取引限度額以内の金額を入力してください。 |