Setup Intents API を使用して事前に決済手段の詳細を収集し、後から最終的な金額や支払い日を決定できます。次の場合に使用します。
支払い方法の詳細を収集し、保存済みの支払い方法にすぐに請求するには、Payment Intents API を使用します。
Checkout で決済手段の保存後に継続支払いを作成するには、Cash App Pay によるサブスクリプションを設定する をご覧ください。
まず、Stripe アカウントが必要です。今すぐ登録してください 。
アプリケーションから Stripe API にアクセスするには、Stripe の公式ライブラリを使用します。
今後の支払いに備えて Cash App Pay の支払い方法を保存するには、これを Customer に関連付ける必要があります。
顧客がビジネスでお客様のアカウントを作成する際、Customer オブジェクトを作成します。この Customer オブジェクトの ID を、顧客を表す独自の内部表記と関連付けてください。あるいは、Customer オブジェクトを作成してから、今後の支払いのために支払い方法を保存することもできます。
新しい Customer を作成するには、サーバー側で以下のコードを含めます。
curl https://api.stripe.com/v1/customers \
-u "sk_test_BQokikJOvBiI2HlWgH4olfQ2
:" \
- -data -urlencode description = "My First Test Customer (created for API docs)"
将来のオフセッション の支払いに備え、顧客の Cash App Pay の認証情報 ($Cashtag ) を保存してアカウントに請求できるようにします。PaymentIntent や SetupIntent を確定する前に、カスタムの決済フォームに書面による承認の通知を表示する必要があります。
承認に関する条件は、顧客の $Cashtag を初めて保存するときにのみ表示する必要があります。
カスタムの決済フォームでは以下のテキストを使用することをお勧めします。
続行すると、Rocket Rides の利用規約に従って、この許可が取り消されない限り、お客様は今回の支払いおよび今後の支払いを、Cash App のアカウントから引き落とすことを Rocket Rides に許可したものとみなされます。これは、Cash App の設定でいつでも変更できます。
Setup Intents API を使用して支払い方法を保存する
Payment Intents API を使用して支払い方法を保存する
Setup Intents API を使用して事前に決済手段の詳細を収集し、後から最終的な金額や支払い日を決定します。これは、次の場合に役立ちます。
以降の購入時に認証せずにすむように顧客の支払い方法を保存する サブスクリプション の無料トライアルを開始するSetupIntent は、将来の支払いに備えて顧客の決済手段を設定する意図を示すオブジェクトです。SetupIntent は、この設定プロセスの手順を追跡します。payment_method_types を cashapp
に設定してサーバーで SetupIntent を作成し、Customer の ID と usage=off_session または usage=on_ session
を指定します。
curl https://api.stripe.com/v1/setup_intents \
-u "sk_test_BQokikJOvBiI2HlWgH4olfQ2
:" \
-d "payment_method_types[]" = cashapp \
-d "payment_method_data[type]" = cashapp \
-d usage = off_session \
-d customer = {{CUSTOMER_ID}}
client secret を取得する SetupIntent には、client secret が含まれています。これは、支払いプロセスを安全に完了するためにクライアント側で使用されます。client secret をクライアント側に渡す際は、いくつかの方法を使用できます。
ブラウザーの fetch
関数を使用して、サーバーのエンドポイントから client secret を取得します。この方法は、クライアント側が 1 ページのアプリケーションで、特に React などの最新のフロントエンドフレームワークで構築されている場合に最適です。client secret を処理するサーバーのエンドポイントを作成します。
get '/secret' do
intent =
{ client_secret : intent . client_secret } . to_json
end
その後、クライアント側で JavaScript を使用して client secret を取得します。
( async ( ) => {
const response = await fetch ( '/secret' ) ;
const { client_secret : clientSecret } = await response . json ( ) ;
} ) ( ) ;
次に、Stripe.js を使用してクライアントに Cash App Pay を保存します。
Stripe.js スクリプトを決済ページに含めるには、このスクリプトを HTML ファイルの head
に追加します。
決済ページで以下の JavaScript を使用して、Stripe.js のインスタンスを作成します。
const stripe = Stripe ( 'pk_test_TYooMQauvdEDq54NiTphI7jx'
) ;
stripe. confirmCashappSetup
を使用し、return_url とオプションの mandate_data を指定して、クライアント側で setupIntent を確定します。return_url を使用して、SetupIntent の成功後に顧客を特定のページにリダイレクトします。
const form = document . getElementById ( 'setup-form' ) ;
form . addEventListener ( 'submit' , function ( event ) {
event . preventDefault ( ) ;
stripe . confirmCashappSetup (
clientSecret ,
{
payment_method : {
type : 'cashapp' ,
} ,
return_url : 'https://www.example.com/checkout/done ' ,
} ,
) ;
} ) ;
顧客は、モバイルアプリまたはデスクトップアプリで Cash App Pay を認証することができます。confirmCashappSetup
を呼び出した後、顧客が使用するクライアントは、モバイルの場合はリダイレクト、デスクトップの場合は QR コードなど、認証方法を決定します。認証のレスポンスには、次のステップで PaymentIntent を作成するために使用する必要がある支払い方法 ID も含まれています。
confirmCashappSetup
を呼び出した後、Stripe は、顧客をオーソリのために Cash App にリダイレクトします。支払いがオーソリされた後、Stripe は顧客を Setup Intent の return_ url
に送ります。Stripe は、URL クエリパラメーターとして setup_ intent
、setup_ intent_ client_ secret
、redirect_ pm_ type
、redirect_ status
のほか、既存のクエリパラメーターを return_ url
に追加します。
認証セッションは 10 分後に期限切れになり、SetupIntent のステータスは require_ payment_ method
に戻ります。ステータスが移行すると、顧客にはオーソリエラーが表示され、プロセスをもう一度開始する必要があります。
PaymentMethod を作成した後、PaymentIntent を作成して確定すると、それ以降 Cash App Pay による決済を受け付けられるようになります。PaymentIntent を確定する際は、以前の SetupIntent オブジェクトまたは PaymentIntent オブジェクトと同じ決済手段 ID を使用します。顧客がこの PaymentIntent の決済フロー内にいない場合は、off_ session
値も true に設定する必要があります。
curl https://api.stripe.com/v1/payment_intents \
-u "sk_test_BQokikJOvBiI2HlWgH4olfQ2
:" \
-d "payment_method_types[]" = cashapp \
-d payment_method = {{PAYMENT_METHOD_ID}} \
-d amount = 1000 \
-d currency = usd \
-d customer = {{CUSTOMER_ID}} \
-d statement_descriptor = test_statement \
-d capture_method = automatic \
-d confirm = true \
-d off_session = true
再利用可能な決済手段の取り消しを処理する 再使用可能な決済手段を取り消すには、以下の 2 つの方法があります。
いずれのケースでも、detach PaymentMethod を呼び出した後、payment_method.detached イベントが送信されます。