カテゴリー:
Stripe
閲覧数:335 配信日:2019-03-10 10:27
大前提
PaymentIntentsにて、顧客の支払い情報を収集する際には?
・Stripe Elementsを利用する
・このリンクの"Collect payment details"の部分
Stripe Elementsの現在の仕様
・発行国が日本のクレジットカードを利用した場合には、郵便番号入力を求められない
※但し、下記例外(JCB)は除く
JCBカード
・JCBカードを使用するためには、例えテスト環境であったとしても、JCBの事前審査が必要
・JCBの審査を通過していない状態のStripeアカウントは、テスト環境の場合においても「サポートされていない」としてJCBの決済が拒否されてしまう
発行国が日本のクレジットカード
・Testingで「Asia-Pacific」タブをクリック
・COUNTRYが、Japan (JP)
NUMBER | TOKEN | COUNTRY | BRAND |
---|---|---|---|
4000003920000003 | tok_jp | Japan (JP) | Visa |
3530111333300000 | tok_jcb | Japan (JP) | JCB |
要点整理
PaymentIntentの支払い(テスト環境)で、郵便番号入力を求められないようにするためには?
・案1.全てのクレジットカードに対応する
・案2.指定のクレジットカードでテストする
案1.全てのクレジットカードに対応する
・「elements.create」する際、「hidePostalCode: true」オプションを設定する
※但し、このオプションを使用しても、上記例外(JCB)は拒否される
案2.指定のクレジットカードでテストする
・そもそも論として「発行国が日本のクレジットカードを利用した場合には、郵便番号入力を求められない」ので、それに見合ったクレジットカードでテストする
・具体的には、「International test card numbers」に記載のあるJPのカードのうち、JCBだと上記の通り拒否されてしまう為、Visaのテストカード番号を試す
→ Visaのテストカード番号「4000003920000003」
案1.全てのクレジットカードに対応する
フォームをカスタマイズすることで対応
・デフォルトのStripe Elementsのフォームだと、郵便番号入力を求められる仕様となるので、フォームのカスタマイズを行うことで郵便番号入力が表示されないようにする
const elements = stripe.elements();
const cardElement = elements.create('card', {
hidePostalCode: true,
});
cardElement.mount('#card-element');
・Is there a way to stop the zip code field showing from the CardSection component
・Do not collect Zip code with Stripe
・card Element