🦄
Stripe Checkoutのsaved_payment_method_optionsについて
はじめに
株式会社ウェイブでCoolmicのエンジニアをしている布施です。
Coolmicは日本のコミックを海外向けに配信するWEBサービスです。
CoolmicではStripeを利用してクレジットカード、Apple Pay、Google Payの決済を実装しています。
今回はStripe Checkoutの仕様変更に対応したことについて書きたいと思います。
サンプルコードは全てRuby(Rails)です。
仕様変更の内容
-
subscription
モードの場合、あるいはpayment
モードでpayment_intent_data.setup_future_usage
を設定した場合に
Checkoutで使用されたPaymentMethodはallow_redisplay: limited
として保存される -
allow_redisplay: limited
のPaymentMethodは、デフォルトでは次回は自動入力されない
詳細はこちら
対応方法
-
saved_payment_method_options.payment_method_save
を設定することにより、
ユーザーはPaymentMethodを保存するかどうかをチェックボックスで選択することができるようになる - PaymentMethodは
allow_redisplay: always
として保存され、次回は自動入力される -
saved_payment_method_options.allow_redisplay_filters
にunspecified
とlimited
を含めることにより、Stripeの変更以前に保存されたPaymentMethodも自動入力されるようにすることができる
こんな感じで書きました。参考
session = Stripe::Checkout::Session.create(
{
# 省略
mode: "payment",
saved_payment_method_options: {
allow_redisplay_filters: %w[always limited unspecified],
payment_method_save: "enabled",
},
}
)
redirect_to session.url, allow_other_host: true
画面イメージ
おまけ
-
saved_payment_method_options.payment_method_save
を使用するとき、Apple Payを有効にしている場合はCheckoutにApple Payボタンが表示される
(payment_intent_data.setup_future_usage
を設定している場合はApple Payボタンは表示されない)
Stripe最高
最後に
今回のStripeの仕様変更により、当初やりたかったUIの実装ができるようになってとても助かりました。
Stripe最高
宣伝
株式会社ウェイブでは、電子コミックやアニメの配信サービスなどを自社開発で運営しております。
新しい技術を積極的に取り入れたモダンな環境が整っているウェイブで一緒に働いてみませんか?
興味ある方は是非こちらをご覧ください!
株式会社ウェイブのエンジニアによるテックブログです。 弊社では、電子コミック、アニメ配信などのエンタメコンテンツを自社開発で運営しております! ve.jp/service/
Discussion