Payment Intents Migration Guide / Payment Intents 移行ガイド

「決済」及び「開発」関連用語集

カテゴリー: documentation  閲覧数:364 配信日:2019-04-08 08:42


docs


Payments > PREPARING FOR SCA > Payment Intents > Migration Guide
Payment Intents Migration Guide
Payment Intents 移行ガイド
・既存システムをPayment Intents APIへ移行する方法を学ぶ
・手動確認を使用して、既存のカードとCharges APIのシステムをPayment Intents APIへ移行する方法を学ぶ

既存のカードとCharges API システム から移行する場合
・「手動で確認する」ことをお勧めする。これが移行するための最速の方法だ

ウェブフックに慣れている場合
・自動確認を使用することをお勧めする
・自動確認は、支払いの収集に必要な操作を自動的に処理する

注意事項


手動確認を使用する予定はないため、
・以下の日本語訳は最新へアップデートしていない
→ 以前(2019/4/8時点)に掲載されていた情報に基づく日本語訳のため、注意が必要





































新しいフロー


Payment Intents APIは、Stripeによる支払いを受け入れるための新しいフローを導入した
・トークン化された支払い情報をサーバーに送信して手動で請求オブジェクトを作成する代わりに、まずサーバー上にPaymentIntentを作成してから、Stripe.jsまたはStripeのモバイルSDKの1つを使用してクライアント側で支払いプロセスの完了を開始する
・このアプローチは前のモデルを逆にするので、あなたはこのAPIを採用するためにあなたの既存のトークンまたはソースベースのStripeシステムの重要な部分を並べ替える必要があるかもしれない

Payment Intents APIフローを従来のシステムと比較する


Elementsを使用してクレジットカードでの支払いを受け付ける従来のトークンベースのStripeシステムには、通常次の手順が含まれる
・Elementsを使用してブラウザで顧客の支払い情報を集める
・Stripe.jsで支払い情報をトークン化する
・サーバーにトークンを送信するためのリクエストを実行する
・トークンを使用して、希望する金額と通貨でサーバーに請求を作成する
・支払いが成功したら、顧客の注文を履行する

比較すると、同等のPayment Intents APIシステムには通常、次の手順が含まれる
・希望する金額と通貨であなたのサーバーにPaymentIntentを作成する
・PaymentIntentのクライアントシークレットをクライアントサイドに送信する
・Elementsを使用してブラウザで顧客の支払い情報を集める
・Stripe.jsまたはモバイルSDKを使用してダイナミック3Dセキュアを実行し、クライアント側で支払いを完了する
・支払いが成功した場合は、サーバーのWebフックを使用して顧客の注文を処理する

移行のための戦略


あなたの支払いフローを移行するのは大変なことだ
・Payment Intents APIをCharges APIと並行して使用することは安全だ
・私たちの目標は、できるだけ段階的に移行できるようにすることだ
・この目的のために、私たちはあなたの変更を以下のステップに分割することを勧める

課金から読み取るコードを移行する
システムを移行する
・アップグレードされたシステムが3D Secure認証を処理することを確認するために3D Secureテストカードで各支払いフローを必ずテストしてくれ

課金から読み取るコードの移行


chargeオブジェクトには2つの新しいプロパティpayment_method_detailsbilling_detailsがある
・これらは、課金に使用された支払い方法の詳細を読み取るための一貫したインターフェースを提供する
・これらのフィールドは、すべてのAPIバージョンと、 charges APIとPayment Intents APIの両方で作成されたchargeオブジェクトで使用できる

次の表は、課金でよく使用されるプロパティと、新しいプロパティを使用して同じ情報にアクセスする方法を示している
・省略

Webシステムを移行する / Elements


Stripe.js&Elementsを使用して構築されたシステムは、以下のステップで構成されている
・サーバー側で支払いを回収するintentを登録する
・クライアント側で支払いの詳細を集める
・支払いの作成を開始
・サーバー側で顧客の注文を処理する
ステップ 処理内容 BEFORE AFTER
1 サーバー側で支払いを回収するintentを登録する
顧客の支払いを処理するには、まずサーバーにPaymentIntentを作成し、それをクライアント側からアクセスできるようにする必要がある
Not possible before
Stripe::PaymentIntent.create({
 amount: 1099,
 currency: 'eur',
})
2 クライアント側で支払い詳細を収集する
handleCardPayment関数を使用して、支払い情報を収集し、それをStripeに直接送信する
const {token} =
 await stripe.createToken(
   cardElement
 );
const {paymentIntent, error} =
 await stripe.handleCardPayment(
   INTENT_SECRET_FROM_STEP_1,
   cardElement
 );
3 支払いの作成を開始する
既存のシステムでは、最後のステップはトークン化された支払い情報を使用してサーバーに課金を作成することだ。前の手順で呼び出されたhandleCardPayment関数によって課金の作成が開始されるため、これは不要になった
charge = Stripe::Charge.create(
 source: FROM_PREVIOUS_STEP,
 amount: 1099,
 currency: 'eur',
)
Completed in previous step
4 顧客の注文を処理する
StripeはPayment Intents APIシステムで非同期に料金を発生させるため、Webフックを使用して支払いがいつ正常に完了したかを判断する必要がある。 顧客の支払いが成功した後で注文の履行などの手順を実行するには、Webhookのサポートを実装し、payment_intent.succeededイベントを監視する
課金が成功したら、履行してくれ payment_intent.succeeded Webhookイベントを監視し、Webhookハンドラーを実行する

Webシステムを移行する / 支払いリクエストボタン


Stripe.js paymentRequest API
・従来のPaymentRequestシステムで取得されたトークンを使用してそれをPaymentIntentに添付することによって、Payment Intents APIと連携する

PaymentRequestを使用して構築されたシステムは、以下のステップで構成されている
・サーバー側で支払いを回収するintentを登録する
・クライアント側で支払いの詳細を集める
・支払いの作成を開始
・サーバー側で顧客の注文を処理する
ステップ 処理内容 BEFORE AFTER
1 サーバー側で支払いを回収するintentを登録する
顧客の支払いを処理するには、まずサーバーにPaymentIntentを作成し、それをクライアント側からアクセスできるようにする必要がある
Not possible before
Stripe::PaymentIntent.create({
 amount: 1099,
 currency: 'eur',
})
2 クライアント側で支払い詳細を収集する
PaymentRequestオブジェクトのtokenイベントをリッスンする。これは、支払いプロセスがいつ完了したかを示すために使用できるトークンとコールバック関数を提供する。
このシステムをPayment Intents APIをサポートするように調整するには、サーバーにトークンを送信するのではなく、handleCardPayment関数を使用してトークンIDを渡す。 handleCardPayment関数によって返されたpromiseが解決したら、完了コールバックを呼び出す
paymentRequest.on(
 'token',
 ({token, complete}) => {
   // Send the token to the server
   // Invoke the callback when done
   complete(success);
});
paymentRequest.on(
 'token',
 ({token, complete}) => {
   stripe.handleCardPayment(
     INTENT_SECRET_FROM_STEP_1,
     {token: token}
   ).then(({
     paymentIntent,
     error,
   }) =>
     complete(error ? 'fail' : 'success')
   );
});
3 支払いの作成を開始する
既存のシステムでは、最後のステップはトークン化された支払い情報を使用してサーバーに課金を作成することだ。前の手順で呼び出されたhandleCardPayment関数によって課金の作成が開始されるため、これは不要になった
charge = Stripe::Charge.create(
 source: FROM_PREVIOUS_STEP,
 amount: 1099,
 currency: 'eur',
)
Completed in previous step
4 顧客の注文を処理する
StripeはPayment Intents APIシステムで非同期に料金を発生させるため、Webフックを使用して支払いがいつ正常に完了したかを判断する必要がある。 顧客の支払いが成功した後で注文の履行などの手順を実行するには、Webhookのサポートを実装し、payment_intent.succeededイベントを監視する
課金が成功したら、履行してくれ payment_intent.succeeded Webhookイベントを監視し、Webhookハンドラーを実行する

Webシステムを移行する /  Legacy Checkout


従来のCheckoutを使用している場合
・新しいCheckoutにアップグレードする
・これは、Stripeで支払いを受け取る最も早い方法だ
・それを使うと、あなたは一度限りの支払いと購読を受け入れることができる
・サーバーでStripe APIを使用せずにCheckoutを使用することもできる

代わりに独自のチェックアウトフローを作成したい場合
・Elementsに切り替えてくれ

Elementsにアップグレードしたと仮定すると、次の手順で構成されるPayment Intents APIシステムを構築できる
・サーバー側で支払いを回収するintentを登録する
・クライアント側で支払いの詳細を集める
・支払いの作成を開始
・サーバー側で顧客の注文を処理する
ステップ 処理内容 BEFORE AFTER
1 サーバー側で支払いを回収するintentを登録する
顧客の支払いを処理するには、まずサーバーにPaymentIntentを作成し、それをクライアント側からアクセスできるようにする必要がある
Not possible before
Stripe::PaymentIntent.create({
 amount: 1099,
 currency: 'eur',
})
2 クライアント側で支払い詳細を収集する
返されたソースをサーバーに送信する代わりに、handleCardPayment関数を使用する。この関数は支払い情報を収集してそれをStripeに直接送信する
StripeCheckout.configure({
 // ...configuration
 source: (source) => {
   // send source.id to your server
 },
});
const {paymentIntent, error} =
 await stripe.handleCardPayment(
   INTENT_SECRET_FROM_STEP_1,
   cardElement // from Elements
 );
3 支払いの作成を開始する
既存のシステムでは、最後のステップはトークン化された支払い情報を使用してサーバーに課金を作成することだ。前の手順で呼び出されたhandleCardPayment関数によって課金の作成が開始されるため、これは不要になった
charge = Stripe::Charge.create(
 source: FROM_PREVIOUS_STEP,
 amount: 1099,
 currency: 'eur',
)
Completed in previous step
4 顧客の注文を処理する
StripeはPayment Intents APIシステムで非同期に料金を発生させるため、Webフックを使用して支払いがいつ正常に完了したかを判断する必要がある。 顧客の支払いが成功した後で注文の履行などの手順を実行するには、Webhookのサポートを実装し、payment_intent.succeededイベントを監視する
課金が成功したら、履行してくれ payment_intent.succeeded Webhookイベントを監視し、Webhookハンドラーを実行する


週間人気ページランキング / 4-16 → 4-22
順位 ページタイトル抜粋 アクセス数
1 YouTube | 動画サービス(課金販売できるプラットフォーム) 9
2 EMVレベル1 / EMVレベル2 / EMVCo とは? 4
2 EMVCo | クレジットカード仕様(仕様) 4
3 pixivFANBOX | クリエイター支援プラットフォーム(課金販売できるプラットフォーム) 3
3 プリペイドカード | カード 3
4 ログイン 2
4 Saving Payment Methods / 支払い方法を保存する 2
4 振込 | 送金 2
4 Stripe webhook 配信の問題 / 実際に受け取った警告メールの受信例 2
4 Stripe Q73.CheckoutのSessionオブジェクトをcreateする際、'payment_intent_data'内の'metadata'として渡したデータを、webhookで受け取る件について | QA(Stripe) 2
4 Stripe Q55.Checkout\Session::createする際の、'client_reference_id'パラメータと'payment_intent_data.metadata'パラメータの違いについて | QA(Stripe) 2
4 Off-session Payments with Payment Intents / Payment Intents を使用したオフセッション支払 2
4 Stripe Q32。Webhook のエンドポイントから適切な値を返さなかったときの停止措置について | QA(Stripe) 2
4 Stripe Q16。PaymentIntentの支払いで郵便番号入力を求められる。Radar rules の ZIP code を無効にしているのに | QA(Stripe) 2
5 「払い戻し」と「チャージバック」の違い | 違い 1
5 支払い 1
5 Stripe Q65.Connect Standard で連結されているStripeアカウントの違いについて | QA(Stripe) 1
5 Stripe Q23。イベントで「新しい支払元が追加されました」と表示されているのに、「支払元がありません」 | QA(Stripe) 1
5 Payment Intents Migration Guide / Payment Intents 移行ガイド 1
5 Stripe Q66.Webhookエンドポイントが、"connect"内容も含むかどうかを確認するためにはどうすれば良いですか? | QA(Stripe) 1
2024/4/23 1:01 更新
指定期間人気ページランキング / 2020-5-28 → 2024-4-22
順位 ページタイトル抜粋 アクセス数
1 Stripeアカウントへログインする際、モバイル端末で受信したコード入力を求められる理由は? | その他エントリー(Stripe) 2009
2 EMVCo | クレジットカード仕様(仕様) 1265
3 Stripe Q13。決済成功時に、「請求に紐づけられたメールアドレス」に対して、メール送信したいのですが、 | QA(Stripe) 942
4 Stripe Q16。PaymentIntentの支払いで郵便番号入力を求められる。Radar rules の ZIP code を無効にしているのに | QA(Stripe) 901
5 クレジットカード決済 | 課金 877
6 Twitch | ゲーム実況配信サービス(課金販売できるプラットフォーム) 876
7 決済用語 855
8 Stripe Q50。 Connect 「Standardアカウント」で、自身に連結された子アカウントを、ダッシュボードから削除するには? | QA(Stripe) 824
9 Omise | 「支払」機能を有する決済系サービス(決済サービス) 767
10 Stripe Q1。Stripeにおける個人事業主の定義 | QA(Stripe) 761
11 pixivFANBOX | クリエイター支援プラットフォーム(課金販売できるプラットフォーム) 740
12 Stripe Q31。ダッシュボードでの「支払い作成」の見方について | QA(Stripe) 738
13 EMVレベル1 / EMVレベル2 / EMVCo とは? 723
14 YouTube | 動画サービス(課金販売できるプラットフォーム) 669
15 プリペイドカード | カード 645
16 EPUB | ファイルフォーマット(電子書籍) 587
17 サブスクリプション | 課金 563
18 Stripeで"No such token: src"と表示されたら、最初にAPIキーを確認する | Stripe エラー(Stripe) 544
19 Stripe Q74.「お客様のビジネスの詳細」とは何ですか? | Stripe 541
20 ファンティア | クリエイター支援プラットフォーム(課金販売できるプラットフォーム) 482
2024/4/23 1:01 更新