PaymentIntentで支払を実装する場合の選択肢 /「Payment Intents API」使用によるカードの支払確認方法は2種類 / PaymentMethodオブジェクトは歴史的経緯により3種類ある

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

カテゴリー: その他エントリー  閲覧数:1593 配信日:2019-04-26 09:21


PaymentIntentで支払を実装する場合の選択肢


A.Customerオブジェクトを作成せずに、支払いを実行
・「1回限りの支払」では推奨される

B.Customerオブジェクトを作成して、PaymentIntentオブジェクトに関連付け、支払いを実行
・ダッシュボードで該当顧客のカード欄に、カード情報は表示されない
・「1回限りの支払」でも使用可
・https://dashboard.stripe.com/test/customers/cus_ExCvsa7yW5YEZ3

C.Customerオブジェクトを作成して、PaymentIntentオブジェクトに関連付け、支払い方法も関連付け、支払いを実行
・PaymentIntentの支払い方法(sourceまたはpayment_method)を関連する顧客に保存する
・ダッシュボードで該当顧客のカード欄に、カード情報が表示される
→ Customerオブジェクトの「sourcesプロパティ」内にある「dataプロパティ」内に、Cardオブジェクトがリスト構造化されて配置される
・「1回限りの支払」でも使用可
・https://dashboard.stripe.com/test/customers/cus_ExBtKF9cWBjqFV

「Payment Intents API」使用によるカードの支払確認方法は2種類


「Payment Intents API」を使用してカードの支払いを受け取る方法は、大きく2種類に分かれる

自動確認フロー
・支払いの収集に必要な操作を自動的に処理する
・Payment Intents API を使用するための最も早い方法だ
・クライアントでの支払いを確認し、支払いが成功したときにWebフックを使用して通知する
・カードの3Dセキュア認証など、一部の支払い方法には非同期フローがあるため、自動確認システムでは、支払い後ロジックを処理するためにWebフックを使用する必要がある

手動確認フロー
・サーバーでの支払いが確認され、支払いが成功した直後にサーバーで支払いを実行できる

比較一覧表
- 自動確認フロー 手動確認フロー
支払いを確認する場所 クライアント サーバ
支払いが成功した後の処理 非同期 同期
Webhook 使用 未使用
この方式が推奨されるケース Webhookに慣れている場合 既存のカードとCharges API システム から移行する場合

PaymentMethodオブジェクトは歴史的経緯により3種類ある


PaymentMethod オブジェクトとして作成した内容
・idプロパティの値が'pm_xxxx'
※下記はただ作成しただけのPaymentMethod オブジェクト。customerに関連付けていないため意味がない
Stripe\PaymentMethod Object
(
   [id] => pm_xxxx
   [object] => payment_method
   [billing_details] => Stripe\StripeObject Object
       (
           [address] => Stripe\StripeObject Object
               (
                   [city] =>
                   [country] =>
                   [line1] =>
                   [line2] =>
                   [postal_code] =>
                   [state] =>
               )

           [email] =>
           [name] =>
           [phone] =>
       )

   [card] => Stripe\StripeObject Object
       (
           [brand] => visa
           [checks] => Stripe\StripeObject Object
               (
                   [address_line1_check] =>
                   [address_postal_code_check] =>
                   [cvc_check] => unchecked
               )

           [country] => JP
           [exp_month] => 4
           [exp_year] => 2020
           [fingerprint] => sNhI3DvKnpKlOtqH
           [funding] => credit
           [generated_from] =>
           [last4] => 0003
           [three_d_secure_usage] => Stripe\StripeObject Object
               (
                   [supported] => 1
               )

           [wallet] =>
       )

   [created] => 1556325087
   [customer] =>
   [livemode] =>
   [metadata] => Stripe\StripeObject Object
       (
       )

   [type] => card
)


PaymentMethod APIを介して取得したカード
・idプロパティの値が'card_xxxx'
Stripe\PaymentMethod Object
(
   [id] => card_xxxx
   [object] => payment_method
   [billing_details] => Stripe\StripeObject Object
       (
           [address] => Stripe\StripeObject Object
               (
                   [city] =>
                   [country] =>
                   [line1] =>
                   [line2] =>
                   [postal_code] =>
                   [state] =>
               )

           [email] =>
           [name] =>
           [phone] =>
       )

   [card] => Stripe\StripeObject Object
       (
           [brand] => mastercard
           [checks] => Stripe\StripeObject Object
               (
                   [address_line1_check] =>
                   [address_postal_code_check] =>
                   [cvc_check] =>
               )

           [country] => US
           [exp_month] => 3
           [exp_year] => 2020
           [fingerprint] => nVED1M937tLxoMHR
           [funding] => credit
           [generated_from] =>
           [last4] => 4444
           [three_d_secure_usage] => Stripe\StripeObject Object
               (
                   [supported] => 1
               )

           [wallet] =>
       )

   [created] => 1552873331
   [customer] => cus_EhrAhwK7W4OB41
   [livemode] =>
   [metadata] => Stripe\StripeObject Object
       (
       )

   [type] => card
)


・idプロパティの値が'src_xxxx'
Stripe\PaymentMethod Object
(
   [id] => src_xxxx
   [object] => payment_method
   [billing_details] => Stripe\StripeObject Object
       (
           [address] => Stripe\StripeObject Object
               (
                   [city] =>
                   [country] =>
                   [line1] =>
                   [line2] =>
                   [postal_code] => 22222
                   [state] =>
               )

           [email] =>
           [name] =>
           [phone] =>
       )

   [card] => Stripe\StripeObject Object
       (
           [brand] => visa
           [checks] => Stripe\StripeObject Object
               (
                   [address_line1_check] =>
                   [address_postal_code_check] => pass
                   [cvc_check] => pass
               )

           [country] => US
           [exp_month] => 4
           [exp_year] => 2024
           [fingerprint] => LMqocVHP8RNDkMLj
           [funding] => credit
           [generated_from] =>
           [last4] => 4242
           [three_d_secure_usage] => Stripe\StripeObject Object
               (
                   [supported] => 1
               )

           [wallet] =>
       )

   [created] => 1552701396
   [customer] => cus_EhrAhwK7W4OB41
   [livemode] =>
   [metadata] => Stripe\StripeObject Object
       (
       )

   [type] => card
)


週間人気ページランキング / 4-18 → 4-24
順位 ページタイトル抜粋 アクセス数
1 YouTube | 動画サービス(課金販売できるプラットフォーム) 8
2 EMVレベル1 / EMVレベル2 / EMVCo とは? 6
3 EMVCo | クレジットカード仕様(仕様) 5
4 クレジットカード決済 | 課金 3
4 pixivFANBOX | クリエイター支援プラットフォーム(課金販売できるプラットフォーム) 3
5 Stripe webhook 配信の問題 / 実際に受け取った警告メールの受信例 2
5 Stripe Q73.CheckoutのSessionオブジェクトをcreateする際、'payment_intent_data'内の'metadata'として渡したデータを、webhookで受け取る件について | QA(Stripe) 2
5 Stripe Q55.Checkout\Session::createする際の、'client_reference_id'パラメータと'payment_intent_data.metadata'パラメータの違いについて | QA(Stripe) 2
5 ログイン 2
5 Stripeアカウントへログインする際、モバイル端末で受信したコード入力を求められる理由は? | その他エントリー(Stripe) 2
5 Off-session Payments with Payment Intents / Payment Intents を使用したオフセッション支払 2
5 Stripe Q32。Webhook のエンドポイントから適切な値を返さなかったときの停止措置について | QA(Stripe) 2
5 Stripe Q16。PaymentIntentの支払いで郵便番号入力を求められる。Radar rules の ZIP code を無効にしているのに | QA(Stripe) 2
5 プリペイドカード | カード 2
5 Squareは、デジタルコンテンツ(デジタル情報)の配信利用が認められないサービス | 「支払」機能を有する決済系サービス(決済サービス) 2
6 Twitchとは?/ Cheeringとは?/ Cheerとは? 1
6 ほしい物リスト | 投げ銭サービス(課金販売できるプラットフォーム) 1
6 Omise | 「支払」機能を有する決済系サービス(決済サービス) 1
6 決済用語 1
6 振込 | 送金 1
2024/4/25 1:02 更新
指定期間人気ページランキング / 2020-5-28 → 2024-4-24
順位 ページタイトル抜粋 アクセス数
1 Stripeアカウントへログインする際、モバイル端末で受信したコード入力を求められる理由は? | その他エントリー(Stripe) 2010
2 EMVCo | クレジットカード仕様(仕様) 1267
3 Stripe Q13。決済成功時に、「請求に紐づけられたメールアドレス」に対して、メール送信したいのですが、 | QA(Stripe) 943
4 Stripe Q16。PaymentIntentの支払いで郵便番号入力を求められる。Radar rules の ZIP code を無効にしているのに | QA(Stripe) 901
5 クレジットカード決済 | 課金 879
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 | クリエイター支援プラットフォーム(課金販売できるプラットフォーム) 741
12 Stripe Q31。ダッシュボードでの「支払い作成」の見方について | QA(Stripe) 738
13 EMVレベル1 / EMVレベル2 / EMVCo とは? 727
14 YouTube | 動画サービス(課金販売できるプラットフォーム) 670
15 プリペイドカード | カード 645
16 EPUB | ファイルフォーマット(電子書籍) 587
17 サブスクリプション | 課金 563
18 Stripeで"No such token: src"と表示されたら、最初にAPIキーを確認する | Stripe エラー(Stripe) 544
19 Stripe Q74.「お客様のビジネスの詳細」とは何ですか? | Stripe 542
20 ファンティア | クリエイター支援プラットフォーム(課金販売できるプラットフォーム) 482
2024/4/25 1:02 更新