コンテンツにスキップ
アカウントを作成
または
サインイン
Stripe ドキュメントのロゴ
/
AI に質問する
アカウントを作成
サインイン
始める
支払い
売上
プラットフォームおよびマーケットプレイス
資金管理
開発者向けのツール
概要
Stripe Payments について
構築済みのシステムをアップグレード
支払いの分析
オンライン決済
概要ユースケースを見つけるManaged Payments
Payment Links を使用する
決済ページを構築
高度なシステムを構築
アプリ内実装を構築
決済手段
決済手段を追加
    概要
    支払い方法の導入オプション
    ダッシュボードで支払い方法を管理
    決済手段のタイプ
    カード
    Stripe 残高で支払う
    仮想通貨
    銀行口座引き落とし
    銀行へのリダイレクト
    銀行振込
    クレジットトランスファー (Sources)
    後払い
      Affirm
        決済を受け付ける
        サイトメッセージ
      Afterpay/Clearpay
      Alma
      Billie
      Capchase Pay
      Klarna
      Kriya
      Mondu
      請求書支払い
      Scalapay
      SeQura
      Sunbit
      Zip
    リアルタイム決済
    店舗支払い
    ウォレット
    国ごとに現地の支払い方法を有効化
    カスタムの決済手段
決済手段を管理
Link による購入の迅速化
支払いインターフェイス
Payment Links
Checkout
Web Elements
アプリ内 Elements
決済シナリオ
カスタムの決済フロー
柔軟なアクワイアリング
オーケストレーション
店頭支払い
端末
他の Stripe プロダクト
Financial Connections
仮想通貨
Climate
ホーム支払いAdd payment methodsBuy now, pay laterAffirm

注

このページはまだ日本語ではご利用いただけません。より多くの言語で文書が閲覧できるように現在取り組んでいます。準備が整い次第、翻訳版を提供いたしますので、もう少しお待ちください。

Affirm 支払いの受け付け

世界で普及している後払い決済方法である Affirm を受け付ける方法をご紹介します。

ページをコピー

注

This guide helps you integrate Affirm in your online checkout. For in-person payments with Stripe Terminal, visit Additional payment methods.

Stripe ユーザーは、Payment Intents API (サポートされている方法を使用して支払いを作成する単一の導入パス) を使用して、以下の国の顧客からの Affirm による支払いを受け付けることができます。

  • カナダ
  • アメリカ

Web サイトでの Affirm による支払いの受け付けは、以下のように構成されます。

  • 支払いを追跡するオブジェクトを作成する
  • 支払い方法の詳細を収集する
  • 支払いを Stripe に送信して処理する
  • Affirm リダイレクトと関連する Webhook イベントを処理する

Stripe を設定する
サーバ側

まず、Stripe アカウントを作成するかサインインします。

アプリケーションから Stripe API にアクセスするには、Stripe の公式ライブラリを使用します。

Command Line
Ruby
# Available as a gem sudo gem install stripe
Gemfile
Ruby
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

PaymentIntent を作成する
サーバー側

PaymentIntent (支払いインテント) は、顧客から支払いを回収する意図を表すオブジェクトで、決済プロセスのライフサイクルの各段階を追跡します。

まず、サーバーで PaymentIntent を作成し、回収する金額と通貨を指定します。すでに Payment Intents API を使用した実装がある場合は、affirm を PaymentIntent の支払い方法のタイプのリストに追加します。

Command Line
cURL
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=6000 \ -d currency=usd \ -d "payment_method_types[]"=affirm

また Payment Element を使用して、支払い方法をダッシュボードで管理することもできます。Stripe は取引額、通貨、決済フローなどの要素に基づいて、適切な支払い方法が返されるように処理します。詳細については、支払いを受け付けるをご覧ください。

client secret を取得する

PaymentIntent には、client secret が含まれています。これは、支払いプロセスを安全に完了するためにクライアント側で使用されます。client secret をクライアント側に渡す際は、いくつかの方法を使用できます。

ブラウザーの fetch 関数を使用して、サーバーのエンドポイントから client secret を取得します。この方法は、クライアント側が 1 ページのアプリケーションで、特に React などの最新のフロントエンドフレームワークで構築されている場合に最適です。client secret を処理するサーバーのエンドポイントを作成します。

main.rb
Ruby
get '/secret' do intent = # ... Create or retrieve the PaymentIntent {client_secret: intent.client_secret}.to_json end

その後、クライアント側で JavaScript を使用して client secret を取得します。

(async () => { const response = await fetch('/secret'); const {client_secret: clientSecret} = await response.json(); // Render the form using the clientSecret })();

支払い方法の詳細を収集して送信する
クライアント側

顧客が Affirm での支払いをクリックしたときは、Stripe.js を使用してその支払いを Stripe に送信することをお勧めします。Stripe.js は、決済フローを構築するための Stripe の基本的な JavaScript ライブラリです。これにより、実装に関する複雑な処理が自動的に行われ、今後、実装を他の支払い方法にも簡単に拡張できます。

Stripe.js スクリプトを決済ページに含めるには、このスクリプトを HTML ファイルの head に追加します。

checkout.html
<head> <title>Checkout</title> <script src="https://js.stripe.com/v3/"></script> </head>

決済ページで以下の JavaScript を使用して、Stripe.js のインスタンスを作成します。

script.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 オブジェクト全体をクライアントに送信する代わりに、ステップ 1 で作成したその client secret を使用します。これは、Stripe API リクエストを認証する API キーとは異なります。

client secret は支払いを完了できるため、慎重に取り扱う必要があります。記録したり、URL に埋め込んだり、当該の顧客以外に漏洩することがないようにしてください。

その他の詳細情報による支払い成功率の向上

Shipping (配送先) と Billing (請求先) の詳細は必須ではありませんが、購入完了率の向上のために渡すことをお勧めします。

この組み込みガイドでは、顧客が支払い方法を選択した後に配送先と請求先の情報をクライアントに渡すことが推奨されています。

これらのフィールドを渡す場合、配送先住所の line1、city、state、postal_code、country には有効なデータを含める必要があります。同様に、指定されている場合は、請求先の詳細の line1、city、state、postal_code、country のすべてにも有効なデータを含める必要があります。

PaymentIntent を確定する

stripe.confirmAffirmPayment を使用し、ページからのリダイレクトを処理して支払いを完了します。この関数に return_url を渡して、ユーザーが Affirm のウェブサイトまたはモバイルアプリで支払いを完了した後に Stripe がユーザーをリダイレクトする場所を指定する必要があります。

Affirm の支払いページで、顧客は使用可能な支払いオプションを選択します。詳細については、概要ページをご覧ください。Affirm 支払いページで支払いオプションを制限したり、事前に選択したりすることはできません。この選択を消費者に任せることで、取引の機会が最大化されます。

script.js
// Redirects away from the client stripe.confirmAffirmPayment( '{{PAYMENT_INTENT_CLIENT_SECRET}}', { payment_method: { // Billing information is optional but recommended to pass in. billing_details: { email: 'jenny@rosen.com', name: 'Jenny Rosen', address: { line1: '1234 Main Street', city: 'San Francisco', state: 'CA', country: 'US', postal_code: '94111', }, }, }, // Shipping information is optional but recommended to pass in. shipping: { name: 'Jenny Rosen', address: { line1: '1234 Main Street', city: 'San Francisco', state: 'CA', country: 'US', postal_code: '94111', }, }, // Return URL where the customer should be redirected after the authorization. return_url: 'https://example.com/checkout/complete', } ).then(function(result) { if (result.error) { // Inform the customer that there was an error. console.log(result.error.message); } });

顧客が支払いを送信すると、Stripe は顧客を return_url にリダイレクトし、以下の URL クエリーパラメーターを含めます。返品ページでは、これらを使用して PaymentIntent のステータスを取得し、顧客に支払いステータスを表示できます。

return_url を指定する際に、返品ページで使用する独自のクエリパラメーターを追加することもできます。

パラメーター説明
payment_intentPaymentIntent の一意の識別子。
payment_intent_client_secretThe client secret of the PaymentIntent object. For subscription integrations, this client_secret is also exposed on the Invoice object through confirmation_secret

顧客が自社のサイトにリダイレクトされたら、payment_intent_client_secret を使用して PaymentIntent をクエリし、顧客に取引ステータスを表示できます。

Affirm の組み込みをテストする

テスト API キーを使用して Affirm の組み込みをテストするには、リダイレクトページを表示します。リダイレクトページで支払いを認証することにより、支払い成功のケースをテストできます。PaymentIntent は requires_action から succeeded に変化します。

ユーザーが認証に失敗するケースをテストするには、テスト API キーを使用してリダイレクトページを表示します。リダイレクトページの左上隅にある X をクリックします。PaymentIntent は、requires_action から requires_payment_method に移行します。

Affirm サンドボックスにリダイレクトされると、Affirm によって SSN の末尾 4 桁が求められることがあります。Affirm Sandboxは、'0000' または '5678' の使用を提案します。

オプションオーソリとキャプチャーの分離

オプションAffirm のリダイレクトを手動で処理する

オプション支払い後のイベントを処理する

オプションウェブサイトに支払い方法のメッセージを表示する

失敗した支払い

Affirm では、取引を受け付けるか拒否するかを決定するときに複数の要素が考慮されます (買い手が Affirm を使用している期間、顧客が返済する必要のある未払い額、現在の注文額など)。

Affirm による支払いは他の多くの支払い方法と比較して支払いの拒否率が高いため、決済フローには常に card などの他の支払いオプションを提示してください。状況に従って、PaymentMethod (支払い方法) の関連付けが解除され、PaymentIntent (支払いインテント) オブジェクトのステータスが自動的に requires_payment_method に変わります。

支払いが拒否された場合を除き、Affirm の PaymentIntent (支払いインテント) のステータスが requires_action の場合、Affirm のサイトにリダイレクトされてから 12 時間以内に顧客は支払いを完了する必要があります。12 時間経過してもアクションが実行されない場合、PaymentMethod (決済手段) は解除され、PaymentIntent オブジェクトのステータスは自動的に requires_payment_method に移行します。

このようなケースでは、決済フローに表示される別の支払いオプションで再試行するように顧客に通知します。

エラーコード

一般的なエラーコードと対応する推奨アクションは次のとおりです。

エラーコード推奨アクション
payment_intent_payment_attempt_failedAffirm の決済が失敗したことを示す一般的なエラー。請求結果の理由で追加の情報が提供される場合があります。
payment_method_provider_declineAffirm が顧客の支払いを拒否しました。次のステップとして、顧客から Affirm に詳細を問い合わせる必要があります。
payment_intent_payment_attempt_expired顧客が Affirm の決済ページで支払いを完了しておらず、支払いセッションの期限が切れています。Stripe は、最初の決済フローの作成から 12 時間が経過しても正常にオーソリされなかった Payment Intents を自動的に期限切れにします。
payment_method_not_availableAffirm でサービス関連のエラーが発生したため、リクエストを完了できません。後で再試行してください。
amount_too_smallAffirm のデフォルトの取引限度額 内の金額を入力します。
amount_too_largeAffirm のデフォルトの取引限度額 内の金額を入力します。

エラーによっては、請求結果の理由に追加の分析情報が含まれている場合があります。

結果の理由意味
generic_decline決済エラーのデフォルトの結果理由。通常、これは提携金融機関が支払いを拒否した (残高不足など)、カード発行会社が支払いを拒否した、取引にリスクの高い購入が含まれていたなどの理由を示します。このような場合、Stripe は必ずしも支払い拒否の理由を受け取るとは限りません。
affirm_checkout_canceled顧客が Affirm での決済を明示的にキャンセルしたか、または Affirm が顧客はローン対象資格に該当しないと判断しました。Stripe では、これら 2 種類のイベントの違いを区別できません。
このページはお役に立ちましたか。
はいいいえ
お困りのことがございましたら 、サポートにお問い合わせください。
早期アクセスプログラムにご参加ください。
変更ログをご覧ください。
ご不明な点がございましたら、お問い合わせください。
LLM ですか?llms.txt を読んでください。
Powered by Markdoc