Best Practices Using Sources / ソースを使用したベストプラクティス

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

カテゴリー: Stripe  閲覧数:292 配信日:2019-03-13 12:26


docs


Payments > SOURCES > Best Practices
Best Practices Using Sources
ソースを使用したベストプラクティス

単一のAPIを通じてさまざまな支払い方法を受け入れるためのベストプラクティス
・チェックアウトフローを設計するときにSources APIの柔軟性を考慮することで、追加の支払い方法をサポートするために必要な変更を最小限に抑えることができる

カード決済の一般的な流れ


カード決済のための典型的なチェックアウトフロー( 3D Secureを除く)
・カード情報を集めてソースを作成し、そしてすぐにそれをchargeリクエストをするために使用する
・追加の措置を講じる必要はない
・また、カードによる支払いでは同期確認が行われるため、支払いが成功し、資金が保証されているかどうかをすぐに確認できる
・WebHookの使用は不要である

ウェブフックを必要とする用途


他の支払い方法では、ソースがchargeableになり、 chargeリクエストを行うために使用される準備が整う前(例:iDEAL)に、customerに追加のアクションを求める場合がある(例:リダイレクト)
・この遷移は一般に非同期的に発生し、顧客があなたのウェブサイトを離れた後にも発生する可能性がある
・これらの理由から、chargeを作成するためにsourceがchargeableになる時期を判断するには、integrationでWebフックを使用することが不可欠である

次のWebhookイベントがsourceのstatusの変更について通知するために送信される
イベント 説明 提案されたアクション
source.chargeable Sourceオブジェクトは、顧客が支払いを認証および確認した後、chargeableになる Create a Charge.
source.failed 顧客が支払いの認証を拒否したため、Sourceオブジェクトはchargeableになることができなくかった 注文をキャンセルし、オプションで支払いフローに顧客を再参加させる
source.canceled Sourceオブジェクトは有効期限が切れており、請求の作成には使用できない 注文をキャンセルし、オプションで支払いフローに顧客を再参加させる

Source作成


Sourcesを作成するとき
・source.chargeable Webhookを受け取って処理するときに注文を取得できるように、内部注文表現に source IDを記録する必要がある
・効率的な検索のために、このsource属性に基づいて注文オブジェクトに必ずインデックスを付けてくれ

Charge作成


あなたはsourceを chargeするのにsource.chargeableウェブフックに頼るべきである
・Webhookを受信したら、受け取ったソースIDに基づいて内部の注文表現を検索し、注文が支払い待ちになっていることを確認する

chargeリクエストを行う際
・競合状態を回避するために、内部注文IDを idempotency keyとして使用することを強くお勧めする
・さらに、ソースが再利用可能であり、それを再利用したい場合は、課金する前に必ずそれを Customerオブジェクトに関連付けしてくれ
・使い捨ておよび再利用可能なソースの処理方法およびそれらが顧客とどのようにやり取りするかについての詳細は、 使い捨てまたは再利用可能およびソースおよび顧客ガイドを参照してくれ

・ソースの作成と同様に、 charge.succeeded Webhooksを受け取って処理したときに注文を取得できるように、内部の注文表現に charge IDを記録する必要がある

確認ページ


顧客が支払いを承認するために必要なアクションを実行した後(例えば、彼らがリダイレクトを辿った後など)
・注文の状態を示す確認ページを表示する必要がある
・注文を内部的に調査することによってこれを行うことができる

確認ページをさらに合理化したい場合
・ウェブフックの配信待ち時間は保証されていないため、確認ページをさらに合理化したい場合は、クライアントサイドコードで関連するソースのステータスを調べることができる
・ あなたのソースがchargeableになったことを検出したら、source.chargeableウェブフックが到着するのを待たずにそのソースを使ってChargeの作成を開始することができる
・一部の種類のソースは、chargeableとなるまでに数分(または数日)かかる場合がある
・あなたがソースを調査することにした場合、私たちはあなたがある時点でタイムアウトして、彼らの注文が支払い確認を待っていることを顧客に告げること、そして非同期に彼らに支払い確認Eメールを送ることを勧める
・下の表には、各Sourceのステータスに対して推奨される顧客向けメッセージが表示されている

・顧客があなたのページを離れると、クライアントサイドの調査が停止することに注意することも重要である
・これは、あなたがあなたの顧客の注文を見失わないようにするためにsource.chargeableウェブフックに対してもintegrateしなければならないことを意味する

・Stripe.jsを使用している場合は、 stripe.retrieveSource()を使用して独自の調査を実装できる

・下の表には、ソースのステータスに基づいて表示できる、顧客に向けられた可能性のあるメッセージの推奨事項が含まれている
STATUS 顧客向けメッセージング
Source is chargeable あなたの注文は受け取られましたそして支払い確認を待っています。
Source is canceled 支払いが失敗し、注文を処理できませんでした。
Source is failed 支払いが失敗し、注文を処理できませんでした。
Source is still pending after polling for a while あなたの注文は受け取られましたそして支払い確認を待っています。
・Chargeを作成すると(そしてユーザーがまだ確認ページにいる場合)、Chargeのステータスに基づいて次のメッセージを表示できる
STATUS 顧客向けメッセージング
Charge is pending あなたの注文は受け取られましたそして支払い確認を待っています。
Charge is failed 支払いが失敗し、注文を処理できませんでした。
Charge is succeeded お支払いは確認され、注文は完了です。

注文確認


charge.succeeded webhookを受け取った後にのみあなたの注文を確認してくれ(すぐにまたは一定時間後に)
・支払い確認には非同期支払いに何日もかかることがあるため、この段階でお客様にEメールを送信することを強くお勧めする

キャンセルと失敗


あなたはsource.canceledとsource.failed webhooksを聞いて、関係するソースに関連した注文をキャンセルすることを確認するべきである
・あなたが上記のベストプラクティスに従うならば、あなたは以前にchargeableだったsourceのsource.canceledウェブフックを決して受け取るべきではない(あなたのsource.chargeableハンドラはソースがキャンセルされるのを防ぐためにすぐにchargeを作ったはずである)
・chargeable ではなく pendingのままのソースについては、source.canceled Webhookを受け取ることになる
・これは、通常、顧客がチェックアウトフローを早めに行ったことを示している
・顧客が支払いを拒否したとき、または支払いスキームレベルで技術的な失敗が発生したときに、 source.failedフックを受け取ることも可能である

・受け取った chargeに関連する注文を確実にキャンセルするには、 charge.failedフックを確認する必要がある
・これらの各イベントについて、注文が失敗したことを顧客に連絡し、支払いフローに再度参加するように招待することをお勧めする

週間人気ページランキング / 3-21 → 3-27
順位 ページタイトル抜粋 アクセス数
1 YouTube | 動画サービス(課金販売できるプラットフォーム) 7
2 クレジットカード決済 | 課金 4
2 EMVCo | クレジットカード仕様(仕様) 4
2 Off-session Payments with Payment Intents / Payment Intents を使用したオフセッション支払 4
2 その他エントリー(Stripe) カテゴリー 4
2 EMVレベル1 / EMVレベル2 / EMVCo とは? 4
3 支払い 3
3 QA(Stripe) カテゴリー 3
3 Stripe Q15。PaymentIntent でエラー。カード番号に不備があります。 | QA(Stripe) 3
4 「Gumroad」は、決済サービス「PayPal」を利用したオンラインコンテンツ販売サービス | デジタルコンテンツ販売可能なサービス(課金販売できるプラットフォーム) 2
4 SCA | セキュリティ 2
4 ICクレジットカード | クレジットカード仕様(仕様) 2
4 Enty | クリエイター支援プラットフォーム(課金販売できるプラットフォーム) 2
4 Stripe Q16。PaymentIntentの支払いで郵便番号入力を求められる。Radar rules の ZIP code を無効にしているのに | QA(Stripe) 2
4 Stripe エラー(Stripe) カテゴリー 2
4 プリペイドカード | カード 2
4 Stripe Q60. Checkout\SessionオブジェクトとPaymentIntentオブジェクトの関係性は1対1ですか? | QA(Stripe) 2
4 QRコード決済 | 課金 2
4 Stripe Q48。「Checkout\Session - server」「Charge」「PaymentIntent」の使い分け方 | QA(Stripe) 2
5 EPUB | ファイルフォーマット(電子書籍) 1
2024/3/28 1:01 更新
指定期間人気ページランキング / 2020-5-28 → 2024-3-27
順位 ページタイトル抜粋 アクセス数
1 Stripeアカウントへログインする際、モバイル端末で受信したコード入力を求められる理由は? | その他エントリー(Stripe) 2006
2 EMVCo | クレジットカード仕様(仕様) 1252
3 Stripe Q13。決済成功時に、「請求に紐づけられたメールアドレス」に対して、メール送信したいのですが、 | QA(Stripe) 938
4 Stripe Q16。PaymentIntentの支払いで郵便番号入力を求められる。Radar rules の ZIP code を無効にしているのに | QA(Stripe) 898
5 Twitch | ゲーム実況配信サービス(課金販売できるプラットフォーム) 876
6 クレジットカード決済 | 課金 875
7 決済用語 853
8 Stripe Q50。 Connect 「Standardアカウント」で、自身に連結された子アカウントを、ダッシュボードから削除するには? | QA(Stripe) 821
9 Omise | 「支払」機能を有する決済系サービス(決済サービス) 762
10 Stripe Q1。Stripeにおける個人事業主の定義 | QA(Stripe) 755
11 Stripe Q31。ダッシュボードでの「支払い作成」の見方について | QA(Stripe) 736
12 pixivFANBOX | クリエイター支援プラットフォーム(課金販売できるプラットフォーム) 733
13 EMVレベル1 / EMVレベル2 / EMVCo とは? 710
14 YouTube | 動画サービス(課金販売できるプラットフォーム) 645
15 プリペイドカード | カード 636
16 EPUB | ファイルフォーマット(電子書籍) 585
17 サブスクリプション | 課金 563
18 Stripeで"No such token: src"と表示されたら、最初にAPIキーを確認する | Stripe エラー(Stripe) 542
19 Stripe Q74.「お客様のビジネスの詳細」とは何ですか? | Stripe 536
20 ファンティア | クリエイター支援プラットフォーム(課金販売できるプラットフォーム) 482
2024/3/28 1:01 更新