請求せずに直接保存する
SetupIntents を使用し、カードへの請求を行わずに、カード詳細を収集します。SetupIntents を使用して Stripe Terminal でカードを保存するには、以下を実行する必要があります。
- Customer オブジェクトを作成または取得します。
- SetupIntent (支払い方法設定インテント) オブジェクトを作成してプロセスを追跡します。
- 顧客の同意を収集してから、支払い方法を収集します。
- Stripe に支払い方法の詳細を送信します。
提供状況
SetupIntents を使用して、Visa、Mastercard、アメリカン・エキスプレス、ディスカバー、ブランド提携の eftpos カードのカード詳細を収集できます。Interac カード、単一ブランドの eftpos カード、モバイルウォレット (Apple Pay や Google Pay など) には対応していません。
注
サーバー主導型の SetupIntents API は、BBPOS WisePOS E および Stripe リーダー S700 と互換性があります。
顧客を作成または取得する
Stripe で保存されたカードに請求するには、カードを Customer (顧客) に関連付ける必要があります。
確定前に顧客を SetupIntent (支払い方法設定インテント) に含めると、Stripe は生成されたカードによる支払い方法を、指定された Customer (顧客) オブジェクトに自動的に関連付けます。
以下のコードをサーバーに含めて、新しい Customer
を作成します。
SetupIntent を作成する
注
SetupIntent 作成中に顧客 ID を提供することをお勧めします。こうすることで、設定が成功したときにカード支払い方法が Customer
に関連付けられます。顧客 ID を提供しない場合、別のコールで支払い方法を関連付ける必要があります。
SetupIntent は、今後の支払いに備えて顧客の支払い方法を設定する意図を表すオブジェクトです。SetupIntent は、この設定プロセスのステップを追跡します。Terminal では、このプロセスにカード保有者の同意の収集と記録が含まれます。
サーバーの SetupIntent を作成し、payment_method_types
パラメーターに card_present
を含める必要があります。
SetupIntent には、SetupIntent ごとに一意なキーである、client secret が含まれます。 サーバー側で SetupIntent から client secret を取得し、これをクライアント側に渡す必要があります。
支払い方法を収集してカードを保存する
SetupIntent を作成したら、SDK を使用して支払い方法を収集し、顧客からの同意を収集する必要があります。顧客が必要な形式で同意または合意したら、 customer_consent_collected
プール値を true
に設定します。
注
顧客からの同意を、文書またはアプリケーションのチェックボックスを使用して収集します。ご登録の地域で適用されるすべての法律、規則、および規制に準拠する必要があります。
SetupIntent の収集と確定の両方を処理する process_setup_intent エンドポイントを呼び出す必要があります。顧客が同意した場合は、customer_consent_collected
ブール値を true
に設定します。
この方法では、接続されたカードリーダーを使用して支払い方法の暗号化データを収集し、その暗号化データを SetupIntent に関連付けます。
Cancel collection
Programmatic cancellation
cancel_action を呼び出すことで、支払い方法の収集をキャンセルできます。
注意
決済手段の収集はローカルで行われ、次のステップまで SetupIntent オブジェクトのオーソリや更新は必要ありません。
Stripe に支払い方法の詳細を送信する
前回の process_setup_intent の呼び出しで確定が処理されているため、その他の操作は不要です。
設定が成功すると、SetupIntent の status プロパティの succeeded
値が generated_card とともに返されます。generated card はオンライン決済に利用できる再利用可能な card
の決済手段です。
注
setup_intent.payment_method は、店舗でのカードのトークン化を示す card_present
PaymentMethod であり、オンラインでは請求できません。
generated_card
の決済手段は、SetupIntent の作成時に指定した顧客に自動的に関連付けられます。SetupIntent の latest_attempt
プロパティを展開することで、generated_card
の決済手段を取得できます。
別の方法として、顧客に関連付けられている決済手段のリストを取得することで、関連付けられた決済手段を入手することもできます。
SetupIntent の作成時に顧客を指定しなかった場合は、別個のコールで generated_card
を Customer オブジェクトに関連付けることができます。
設定に失敗したら、返されたエラーを調べて原因を特定します。たとえば、顧客から同意を収集できなかったり、Stripe に顧客の同意を通知できなったりした場合、エラーが発生します。
Compliance
顧客の支払いの詳細を保存する際、適用されるすべての法律、規制、ネットワークの規則に準拠する責任はお客様にあります。たとえば、欧州データ保護委員会は、支払いの詳細の保存に関するガイダンスを発行しています。これらの要件は通常、以降の購入時の決済フローでの顧客の支払い方法を提示する、顧客がお客様のウェブサイトやアプリを使用していないときに請求するなど、将来に備えて顧客の支払い方法を保存する場合に適用されます。
支払い方法の詳細を保存する趣旨、顧客がオプトインできるようにする規約を、ウェブサイトおよびアプリに追加します。顧客がオフラインのときに顧客に請求する予定の場合は、少なくとも以下に関する説明を規約に含めてください。
- 指定された取引で顧客の代理として単独の支払いまたは一連の支払いを開始することをお客様に許可するという、顧客からお客様への同意
- 予期される支払い時期と支払い頻度 (たとえば、請求が予定されている分割払いまたはサブスクリプションの決済なのか、あるいは予定されていないトップアップなのか)。
- 決済金額の決定方法。
- サブスクリプションサービスに使用される決済手段を設定する場合は、キャンセルに関するポリシー。
これらの規約に関する顧客の書面による同意の記録を必ず保管してください。
支払い方法を保存した場合、その使用は、規約に記載された特定の用途にのみ使用できます。顧客がオフラインであるときに請求し、さらに顧客の支払い方法を保存して、以降の購入に備えた保存済みの支払方法として顧客に提示する場合は、顧客から明示的に同意を収集する必要があります。そのための方法の 1 つとして、「今後の使用に備えて支払い方法を保存する」チェックボックスの使用があります。