デフォルトとしてダッシュボードで支払い方法を管理する
API をアップグレードし、デフォルトとしてダッシュボードで支払い方法を管理します。
2023 年 8 月 16 日に、Stripe は /v1/payment_intents および /v1/setup_intents API で作成した PaymentIntent と SetupIntent に適用されるデフォルトの支払い方法の選定プロセスを更新しました。
以前のバージョンの Stripe API では、作成リクエスト中に payment_method_types パラメーターを指定しなかった場合、Stripe は PaymentIntent と SetupIntent の両方にカードの支払い方法をデフォルトで使用していました。
これ以降、作成リクエストで payment_method_types
パラメーターを指定しない場合、Stripe は PaymentIntent と SetupIntent に、ダッシュボードでお客様が管理している対象の支払い方法をデフォルトで適用します。
Payment methods
By default, Stripe enables cards and other common payment methods. You can turn individual payment methods on or off in the Stripe Dashboard. In Checkout, Stripe evaluates the currency and any restrictions, then dynamically presents the supported payment methods to the customer.
To see how your payment methods appear to customers, enter a transaction ID or set an order amount and currency in the Dashboard.
You can enable Apple Pay and Google Pay in your payment methods settings. By default, Apple Pay is enabled and Google Pay is disabled. However, in some cases Stripe filters them out even when they’re enabled. We filter Google Pay if you enable automatic tax without collecting a shipping address.
Checkout’s Stripe-hosted pages don’t need integration changes to enable Apple Pay or Google Pay. Stripe handles these payments the same way as other card payments.
決済フローを更新する
現在の Stripe の実装に合ったアップグレードパスを選択してください。
お客様のシステムで Card Element または個別の支払い方法の Element を使用している場合は、Payment Element に移行することをお勧めします。この統合型の導入により、一度に 25 種類以上の支払い方法を受け付けられるようになります。
PaymentIntent を作成する
このバージョンの API では、automatic_payment_methods.enabled パラメーターの指定は任意です。このパラメーターを指定しない場合、Stripe では true
の値を想定し、デフォルトでこの機能が有効になるとみなされます。
curl https://api.stripe.com/v1/payment_intents \
-u "sk_test_4eC39HqLyjWDarjtT1zdp7dc
:" \
-d amount=1099 \
-d currency=usd
クライアント側での Stripe.js による確定
お客様のシステムが Stripe.js を使用し、confirmPayment または payment method で支払いを確定している場合、既存のプロセスは変わらず、これ以降の変更も必要ありません。
支払いを確定する場合は、return_url パラメーターを指定することをお勧めします。これにより、リダイレクトを必要とする支払い方法を受け付けることができます。
const form = document.getElementById('payment-form');
form.addEventListener('submit', async (event) => {
event.preventDefault();
const {error} = await stripe.confirmPayment({
elements,
confirmParams: {
return_url: 'https://example.com/return_url',
},
});
if (error) {
const messageContainer = document.querySelector('#error-message');
messageContainer.textContent = error.message;
} else {
}
});
サーバー側での確定
サーバー側で確定する場合は、実装で return_url パラメーターを使用する必要があります。
curl https://api.stripe.com/v1/payment_intents \
-u "sk_test_4eC39HqLyjWDarjtT1zdp7dc
:" \
-d amount=1099 \
-d currency=usd \
-d confirm=true \
-d payment_method= \
--data-urlencode return_url="https://example.com/return_url"
または、automatic_payment_methods.allow_redirects パラメーターを never
に設定して PaymentIntent または SetupIntent を作成できます。これにより確定時の return_url
要件は無効になります。引き続きダッシュボードから支払い方法を管理できますが、リダイレクトを必要とする支払い方法は対象外になります。
curl https://api.stripe.com/v1/payment_intents \
-u "sk_test_4eC39HqLyjWDarjtT1zdp7dc
:" \
-d amount=1099 \
-d currency=usd \
-d confirm=true \
-d payment_method= \
-d "automatic_payment_methods[enabled]"=true \
-d "automatic_payment_methods[allow_redirects]"=never
最後に、payment_method_types パラメーターを指定して PaymentIntent または SetupIntent を作成できます。これにより、確定時の return_url
要件も無効になります。このオプションでは、ダッシュボードから支払い方法を管理できません。
curl https://api.stripe.com/v1/payment_intents \
-u "sk_test_4eC39HqLyjWDarjtT1zdp7dc
:" \
-d amount=1099 \
-d currency=usd \
-d confirm=true \
-d payment_method= \
-d "payment_method_types[]"=card