Stripe Q57。トークン化について

StripeQA

目次一覧

 状態:-  閲覧数:697  投稿日:2019-02-13  更新日:2019-03-21  
トークン化の流れ / トークン化する方法は2種類 / さらに3種類に分かれる
X.checkout.js 処理の流れ / Y.Stripe.js と Stripe Elements 処理の流れ / Z.Stripeのモバイルライブラリ 処理の流れ
感想履歴 / 質問履歴5 / 質問履歴7

トークン化の流れ / トークン化する方法は2種類 / さらに3種類に分かれる

 閲覧数:175 投稿日:2019-02-13 更新日:2019-02-17 

トークン化の流れ


1.トークン生成
・クライアント(購入者のブラウザなど)で、トークン生成する

2.トークンをStripeへ送信
・生成したトークンをカード情報とともに、Stripeサーバへ送信

3.Stripeサーバがトークンを戻す
・クライアントは、Stripeサーバより返されたトークンを受け取る

4.クライアントはトークンを販売者側のサーバへ渡す
・クライアントは、Stripeサーバより返されたトークンを、今度は販売者側のサーバへ送信する
・販売者側のサーバは、トークンを受け取る

5.課金実行
・販売者側のサーバは、受け取ったトークンなどを使用して、Stripeの課金APIをリクエスト
・課金実行

6.課金後の処理
・成功コールバックで課金データをユーザーに紐付ける

トークン化する方法は2種類


A.Stripeに丸投げ
・Stripeが用意した仕組み(js)を利用してトークン化

B.自力で構築
・自前でトークン化

比較一覧表
- Stripeに丸投げ 自力で構築
「顧客の生のカード情報」をどこが取得するか Stripe側のサーバ 販売者側のサーバ
PCI DSS 対応 Stripe 販売者

さらに3種類に分かれる


「A.Stripeに丸投げ」する方法はさらに3種類に分かれる
・X.checkout.js
・Y.Stripe.js と Stripe Elements
・Z.Stripeのモバイルライブラリ

X.checkout.js
・ウェブとモバイルでの最もシンプルな決済フロー
・HTML、JavaScript、およびCSSを組み合わせて、埋め込み支払いフォームを作成する
・顧客が支払い情報を入力すると、カードの詳細が検証され、サーバーサイドコードで使用できるようにトークン化される
※カスタマイズ性は低い

比較一覧表
- checkout.js Stripe.js と Stripe Elements Stripeのモバイルライブラリ
JavaScriptライブラリのURL https://checkout.stripe.com/checkout.js https://js.stripe.com/v3/ -
Stripeサーバより返された「トークン」をどこで受け取る クライアントのformタグ内 クライアントのJavaScript処理内 -


X.checkout.js 処理の流れ / Y.Stripe.js と Stripe Elements 処理の流れ / Z.Stripeのモバイルライブラリ 処理の流れ

 閲覧数:219 投稿日:2019-02-16 更新日:2019-02-16 

X.checkout.js 処理の流れ


1.決済フォームのHTML
<form action="your-server-side-code" method="POST">
 <script
   src="https://checkout.stripe.com/checkout.js" class="stripe-button"
   data-key="pk_xxxxxx"
   data-amount="999"
   data-name="eee"
   data-description="Widget"
   data-image="https://stripe.com/img/documentation/checkout/marketplace.png"
   data-locale="auto"
   data-zip-code="true"
   data-currency="jpy">
 </script>
</form>


2.トークン作成
▼checkout.js
https://checkout.stripe.com/checkout.js

作成したトークン
・["stripe_token"])パラメータの値として返される
token:function(parameters){return track("token",parameters,["stripe_token"])}



このフォームに戻ってきたトークンを<form action="your-server-side-code" method="POST">でサーバーサイド("your-server-side-code")に渡します。

トークン受取先
・クライアントのformタグ内で受け取る



Y.Stripe.js と Stripe Elements 処理の流れ


▼Stripe.js
・決済フローを実現するための JavaScript のライブラリ
・カード情報をトークン化して安全に処理する
https://js.stripe.com/v3/

トークン生成
・コード内容は理解できていない
this.createToken=en(function(t,n){var r=e._mids();return Da(e._controller,r)(t,n)})


Stripe Elements
・UIコンポーネント(支払いフォーム)を作成する

トークン受取先
・クライアントのJavaScript処理内で受け取る

Z.Stripeのモバイルライブラリ 処理の流れ


・未確認

感想履歴 / 質問履歴5 / 質問履歴7

 閲覧数:185 投稿日:2019-02-16 更新日:2019-02-19 

感想履歴


「クライアントサイドのトークン化」という表現が分かり難いかも
・少なくとも私には分かり難かった……

クライアントサイドだけでトークン化が完結するわけではない
・下記はStripeではなく、PAY.JPだけれども、「カード情報をトークン化する処理」の説明は分かりやすい
・1.チェックアウトやpayjp.jsで生成されたフォームにカード情報を入力し送信
・2.入力されたカード情報は直接PAY.JPサーバーへ送られ、PAY.JPは一意のトークンを返す
・3.サーバーサイドでトークンを受け取り、トークンを使った各種処理を行う(支払い処理、顧客へカードを紐付けるなど)
カード情報のトークン化

違うかも
・クライアントサイドだけでトークン化が完結できる?
クレジットカード情報をトークン化するpayjp.jsの使い方

トークン化は、クライアントサイド(購入者のブラウザなど)で行う
・Stripeが用意した仕組み(js)を利用して、クライアントサイド(購入者のブラウザなど)でトークン化

クライアントでトークン作成しても、それだけでは意味を成さない
・クライアントでトークン作成出来ても、サーバサイドでも保管しておかないと意味がない
・その意味で言えば、クライアントサイドだけでトークン化が完結するわけではない

質問履歴5


Q5.トークン化
・2019/2/13
トークン化について

------------------------------------------------------
「クライアントサイドのトークン化を使用できない場合」について

https://stripe.com/docs/api/tokens
>クライアントサイドのトークン化を使用できない場合は、公開可能または秘密のAPIキーを使用してAPIを使用してトークンを作成することもできます

Q1.「クライアントサイドのトークン化を使用できない場合」というのは、例えばどういう状況ですか?
・jsを使用できない環境ということですか?

Q2.APIを使用してトークンを作成するには?
・この方法はどこに記載されているのでしょうか?

Q3.APIを使用してトークンを作成した場合
・顧客情報はどこに保存されるのでしょうか?
・自分(販売側)のサーバですか?
・それとも「お客様の情報はStripeに直接送信されない」とあるので、最終的に保存する場所としては同じStripeなのでしょうか?

------------------------------------------------------
「クライアントサイドのトークン化」について

Q4.APIも使用しますか?
・「クライアントサイドのトークン化」の意味は、「jsを使用してトークン化」あるいは「クライアントサイドをトリガーとしてトークン化」というような意味合いですか?
・クライアントだけでトークン化が完結するわけではない、という認識で合っているでしょうか?

質問履歴7


Q7.トークン化
・2019/2/16

Checkout利用時の「トークン生成タイミング」と「トークン生成場所」について
先日ご回答いただきました件につきまして。
理解できたと思っていたのですが、新たな疑問が生じたため、再度質問させてください。


Checkout利用時の「トークン生成タイミング」と「トークン生成場所」について

トークン生成場所はどこですか?
・顧客のブラウザ?
・Stripeサーバ?


最初に、checkout.jsを取得して、クライアントで実行することにより、フォームタグ内が下記のような結果に置き換わると思うのですが、
・この段階では、(まだカード情報を入力していないので)トークン生成していない、という理解で合っているでしょうか?
・distinct_idは何を意味していますか?
https://checkout.stripe.com/m/v3/index-3f0dc197837628f45156bf4f7ed0f6ad.html?distinct_id=108a9823-5b77-55e5-5e8f-f3f1fadbd0e0

<処理の流れ>
・1.顧客がボタンを押すと決済フォームが表示される
・2.顧客がフォーム内容を入力する
・3.Stripeサーバがフォーム入力情報を受け取る
・4.Stripeサーバが、顧客のブラウザへトークン(tok_xxxxxxx)を返す
・5.顧客のブラウザが、トークン(tok_xxxxxxx)を販売者側のサーバへ送信

上記処理内容が正しかった場合、「トークン生成タイミング」はどこに該当するでしょうか?



Stripe Q1。Stripeにおける個人事業主の定義

Stripe Q6。Stripeサーバより返された「一意のトークン」をどこで受け取るの?

コメント投稿(ログインが必要)



類似度ページランキング
順位 ページタイトル抜粋
1 Stripe Q43。payouts スケジュールについて 57
2 Stripe オブジェクト 55
3 Stripe Q31。ダッシュボードでの「支払い作成」の見方について 52
4 Stripe Q44。Standard アカウント連結後の返り値で、保存すべき値について 47
5 Stripe サービスリリースへ向けて 46
6 Stripe Q69.Stripe ダッシュボードのバージョン確認及びアップデートについて 46
7 Stripe Q28。Sourceオブジェクトのusageプロパティのデフォルト値について 46
8 Stripe への問い合わせ方 46
9 Stripe Link 45
10 Stripe 変更履歴 45
11 Stripe Q29。日本で、Connect Customアカウント を導入している事例について 44
12 Stripe Q14。Customerオブジェクトをcreateする際の"source"パラメータについて 44
13 Stripe Q22。「新規Customerオブジェクト作成」と「'source'パラメータ指定タイミング」について 44
14 Stripe Q42。「Stripeダッシュボードへログインした後に表示される各ページ」へのアクセス権について 43
15 Stripe Q234。Connect カスタムアカウント手数料 42
16 Stripe Q32。Webhook のエンドポイントから適切な値を返さなかったときの停止措置について 42
17 新 Stripe 学習の流れを体系化 42
18 旧 Stripe 学習の流れを体系化 42
19 Stripe Q33。CustomerオブジェクトのcreateSourceメソッドのAPIドキュメントについて 42
20 Stripe。Stripeアカウントを持っていない人でもクレジットカード決済が出来る 42
2022/5/22 22:48 更新
週間人気ページランキング / 5-15 → 5-21
順位 ページタイトル抜粋 アクセス数
1 Stripeアカウントへログインする際、モバイル端末で受信したコード入力を求められる理由は? | その他エントリー(Stripe) 34
2 3Dセキュア | セキュリティ 18
3 Stripe Q50。 Connect 「Standardアカウント」で、自身に連結された子アカウントを、ダッシュボードから削除するには? | QA(Stripe) 15
4 決済用語 9
4 EMVCo | クレジットカード仕様(仕様) 9
5 Stripe Q15。PaymentIntent でエラー。カード番号に不備があります。 | QA(Stripe) 8
5 Stripe Q1。Stripeにおける個人事業主の定義 | QA(Stripe) 8
6 Payment Intents API | その他エントリー(Stripe) 7
7 PCI DSS 認定取得のメリット / 守るべきクレジットカード情報 / 年表 6
7 クレジットカード仕様(仕様) カテゴリー 6
7 その他エントリー(Stripe) カテゴリー 6
7 ツイキャス | ライブ配信サービス(課金販売できるプラットフォーム) 6
7 クレジットカード仕様(仕様) カテゴリー 6
8 Stripe Q16。PaymentIntentの支払いで郵便番号入力を求められる。Radar rules の ZIP code を無効にしているのに | QA(Stripe) 5
8 Stripe Payments > COLLECTING PAYMENT DETAILS > Checkout | documentation(Stripe) 5
8 PaymentIntentで支払を実装する場合の選択肢 /「Payment Intents API」使用によるカードの支払確認方法は2種類 / PaymentMethodオブジェクトは歴史的経緯により3種類ある 5
8 Stripe Payments > PREPARING FOR SCA > Payment Intents | documentation(Stripe) 5
9 Stripe Q35。「Payment Intents API」で、3Dセキュアなどの認証手順を(顧客が)使用しないことは出来ますか? | QA(Stripe) 4
9 Stripe Q13。決済成功時に、「請求に紐づけられたメールアドレス」に対して、メール送信したいのですが、 | QA(Stripe) 4
9 ライブ配信サービス | 課金販売できるプラットフォーム 4
2022/5/22 1:01 更新