Elements with Checkout Sessions API ベータ版の変更ログ
Elements with Checkout Sessions API ベータ版実装への変更を追跡します。
警告
このドキュメントには、 Elements with Checkout Sessions API のベータ版に関連する変更ログが含まれています。
すでに Elements with Checkout Sessions API の Clover リリースを使用している場合、この変更ログは適用されません。
Clover への移行
クローバーの変更
- 新機能 The stripe.initCheckout method is now synchronous instead of asynchronous. This reduces render latency and enables Elements to show skeleton loaders earlier. See Updates initCheckout to be synchronous for migration details.
- Breaking 決済セッションで設定されると、保存された決済手段が Payment Element で自動的に有効になりました。クライアント側での追加設定は必要ありません。詳細については、保存された決済手段のデフォルトの動作を更新するをご覧ください。
- Breaking カナダ、イギリス、プエルトリコのカード決済では、郵便番号が自動的に収集されなくなりました。このデータを使用する場合は、カード決済の郵便番号を削除するをご覧ください。
- Breaking React の実装の場合:
- インポートパスが
@stripe/react-stripe-jsから@stripe/react-stripe-js/checkoutに変更されました。 - useCheckout は、エラーをスローする代わりに、非同期状態を示す非合同 (
{type: 'loading'}、{type: 'success', checkout: .または. . } {type: 'error', error: .) を返すようになりました。. . } - CheckoutProvider は、initCheckout が成功しなかった場合に、
nullではなく無条件に子を表示するようになりました。
- インポートパスが
クローバーのアップグレード
Clover に移行する前に、まず Basil に導入を更新します。
- Stripe NPM パッケージを使用している場合は、
@stripe/stripe-jsを8.以上にアップグレードし、0. 0 @stripe/react-stripe-jsを5.以上にアップグレードする必要があります。0. 0 - スクリプトタグを使用して Stripe.js を読み込む場合は、次のように Stripe.js のバージョン付き命名規則を使用して、
cloverを参照するようにタグを更新します。
checkout.html
<head> <title>Checkout</title> <script src="https://js.stripe.com/basil/stripe.js"></script> <script src="https://js.stripe.com/clover/stripe.js"></script> </head>
- バックエンドの導入で API バージョンを
2025-09-30.以上に更新します。clover
詳細については、Updates initCheckout to be synchronous 変更履歴の項目を参照してください。
Basil への移行
バジルの変更
- 新機能confirm や applyPromotionCode などの非同期メソッドは、別のスキーマで解決されます。
- 成功すると、更新されたセッション状態が
sessionキーの下に移入されます。以前は、これはsuccessキーの下にありました。
- 成功すると、更新されたセッション状態が
- BreakingCheckout Session で return_url がすでに設定されている場合に、confirm で returnUrl を渡すとエラーがスローされるようになりました。
- Breaking確認が成功した後にリダイレクトされた戻り先 URL のクエリパラメータに一貫性がありませんでした。余分なパラメーターは削除され、URL には、Checkout Session の confirm または return_url の returnUrl で指定されたもののみが含まれるようになりました。
- Breakingサブスクリプションモードセッションの Checkout Session API のレイテンシーを改善し、顧客が最初の決済試行後にセッションを更新できないバグを修正しました
- この変更により、ユーザーが支払いを完了した後にサブスクリプションが作成されるため、
checkout_とsession. invoice checkout_は Checkout Session が完了するまで null になります。session. subscription - 現在、廃止された
payment_フィールドを使用している場合、intent. invoice checkout_Webhook を使用することで請求書が存在することを確認し、session. completed checkout_または Invoice Payment リストを使用して関連する請求書を見つけることをお勧めします。session. invoice - 詳細については、2025-03-31.basil API変更ログ をご覧ください。
- この変更により、ユーザーが支払いを完了した後にサブスクリプションが作成されるため、
- 割引を表示するオプションとして、discountAmounts に percentOff を追加しました。
バジルのアップグレード
Basil に移行する前に、まず実装を更新して custom_ にします。
- Stripe NPM パッケージを使用している場合は、まず
@stripe/stripe-jsを7.以上に、0. 0 @stripe/react-stripe-jsを3.以上にアップグレードする必要があります。6. 0 - スクリプトタグを使用して Stripe.js を読み込み、まだ
v3またはacaciaを使用している場合は、次のようにバージョン管理された Stripe.js の命名法 を使用してbasilを参照するようにタグを更新します。
checkout.html
<head> <title>Checkout</title> <script src="https://js.stripe.com/v3/stripe.js"></script> <script src="https://js.stripe.com/basil/stripe.js"></script> </head>
- Stripe.js の初期化時に Stripe.js ベータヘッダーを削除します。
- バックエンド統合で API バージョンのベータヘッダーを削除し、API バージョンを少なくとも
2025-03-31.に指定します。basil
前
後
ベータの変更ログ
Elements with Checkout Sessions API ベータでは、次の 2 種類のベータバージョンを使用します。
- フロントエンドのシステムに設定される Stripe.js ベータヘッダー (例:
custom_)。checkout_ beta_ 6 - バックエンドの導入に設定される、API バージョンのベータヘッダー (例:
custom_)。checkout_ beta=v1
フロントエンドのベータ版
Stripe.js を初期化 するときにフロントエンドのベータ版を指定します。
custom_checkout_beta_6
Stripe NPM パッケージを使用している場合は、まず @stripe/stripe-js を 6. 以上に、@stripe/react-stripe-js を 3. 以上にアップグレードする必要があります。
- Breakingtotal.appliedBalance の符号が反転しました。正の数は支払われる金額を増やし、負の数は支払われる金額を減らします。
- Breaking
clientSecretを fetchClientSecret に置き換えました。静的な値を渡す代わりに、クライアントシークレットに async function resolving を渡すように実装を更新します。 - Breaking Elements メソッドの名前が変更されました。
- React Stripe.js を使用している場合は、
@stripe/react-stripe-jsをアップグレードする以外に何もする必要はありません。 - HTML/JS を使用している場合:
createElement('payment')の代わりにcreatePaymentElement()を使用します。createElement('address', {mode: 'billing'})の代わりにcreateBillingAddressElement()を使用します。createElement('address', {mode: 'shipping'})の代わりにcreateShippingAddressElement()を使用します。createElement('expressCheckout')の代わりにcreateExpressCheckoutElement()を使用します。getElement('payment')の代わりにgetPaymentElement()を使用します。getElement('address', {mode: 'billing'})の代わりにgetBillingAddressElement()を使用します。getElement('address', {mode: 'shipping'})の代わりにgetShippingAddressElement()を使用します。getElement('expressCheckout')の代わりにgetExpressCheckoutElement()を使用します。
- React Stripe.js を使用している場合は、
- Breakingセッションの状態をより正確に反映するために、確認に関連するフィールドを更新しました。
- canConfirm は、マウントされた Billing Address Element または Shipping Address Element に応答するようになりました。
- canConfirm は、処理中の確認がある場合に
falseになるようになりました。 confirmationRequirementsを削除しました。
- Breaking updateEmail は、Checkout Session の作成時に customer_email が指定されるとエラーをスローするようになりました。顧客が更新できるメールを事前入力する場合は、
customer_を渡す代わりに、ページが読み込まれたらすぐにemail updateEmailを呼び出します。 - BreakingreturnUrl は絶対 URL である必要があります (たとえば、
/successのような相対 URL ではなく、https://で始まる)。 - Breakingレンダリングを容易にするため、価格項目をネストされたオブジェクトに更新しました。
- 数値を、
amount($10.などの書式設定された通貨文字列) と00 minorUnitsAmount(通貨の最小単位で値を表す整数) を含むオブジェクトに置き換えました。すでに金額を読み取っている場合は、代わりにminorUnitsAmountから読み取ってください。- たとえば、
total.をtotal total.に置き換えます。total. minorUnitsAmount
- たとえば、
checkoutオブジェクトからtotal.またはtotal. amount total.とtotal. minorUnitsAmount currencyとminorUnitsAmountDivisorをそれぞれ読み取って UI に表示しないと、エラーがスローされます。これにより、UI コードの変更を最小限に抑えながら、将来の Stripe 機能の追加など、CheckoutSession の更新時に決済フローページの同期を維持できます。
- 数値を、
- 顧客の納税番号を収集できるようになりました。納税者番号を収集する方法をご確認ください。
- チェックアウトページの下部にテスト環境専用のアシスタントが表示され、実装のガイダンスと一般的なテストシナリオのショートカットが示されます。
custom_checkout_beta_5
- Breaking
initCustomCheckout関数の名前が initCheckout に変更されました。- React Stripe.js 内では、
CustomCheckoutProviderはCheckoutProviderという名前、useCustomCheckoutはuseCheckoutという名前に変更されました。
- React Stripe.js 内では、
- Breaking Express Checkout Element を確定するには、confirm を呼び出し、confirm event を
expressCheckoutConfirmEventとして渡します。- 以前は、Express Checkout Element の確認は
event.を呼び出すことで行われていました。confirm()
- 以前は、Express Checkout Element の確認は
- 新機能confirm が呼び出されると、Payment Element と Address Element はフォーム入力を検証し、エラーがあればレンダリングします。
- 新機能エラーメッセージが標準化され、改善されました。
- 関数によって返されるエラーや解決されたエラーは、支払い詳細が無効な場合や残高不足といった既知のシナリオを表します。これらは予測可能な問題であり、決済ページに
messageを表示して顧客に伝えることができます。 - 関数によってスロー/拒否されたエラーは、無効なパラメーターや無効な構成など、構築したシステム自体のエラーを表します。これらのエラーは、顧客に表示するためのものではありません。
- 関数によって返されるエラーや解決されたエラーは、支払い詳細が無効な場合や残高不足といった既知のシナリオを表します。これらは予測可能な問題であり、決済ページに
- 新機能confirm や applyPromotionCode などの非同期メソッドは、別のスキーマで解決されます。
type="success"|"error"識別器フィールドが追加されました。- 成功すると、更新されたセッション状態が
successキーの下に入力されます。以前は、これはsessionキーの下にありました。 - それ以外の場合、エラーは引き続き
errorキーの下に入力されます。
email、phoneNumber、billingAddress、shippingAddressオプションを confirm に追加しました。- 新機能Address Element は、セッションの billingAddress または shippingAddress フィールドを自動的に更新しなくなりました。
custom_checkout_beta_4
- Session オブジェクト に images を追加しました。
- Payment Element 作成時のオプションとして fields を追加しました。
- Express Checkout Element 作成時のオプションとして paymentMethods を追加しました。
- Breaking無効なオプションを createElement に渡すと、エラーがスローされるようになりました。これまで、未確認のオプションは暗黙的に無視されていました。
- 新機能 updateEmail と updatePhoneNumber は、変更を非同期で適用します。顧客が完全な値を入力し終える前にこれらのメソッドを呼び出すと、パフォーマンスが低下する可能性があります。
- 各入力の変更イベントで
updateEmailまたはupdatePhoneNumberを呼び出す代わりに、入力をぼかす際や決済するためにフォームを送信したときなど、顧客が入力を完了するタイミングまで待ちます。 updateEmailは、入力が正しい形式のメールアドレスであることを検証し、無効な入力が使用された場合にエラーを返すようになりました。updatePhoneNumberは、入力文字列に対して検証を実行しません。
- 各入力の変更イベントで
custom_checkout_beta_3
- Session オブジェクトに以下のフィールドが追加されました。
- 保存したカードを再利用できるようになりました。決済手段を保存して再利用する方法をご紹介します。
- 新機能 Payment Element のデフォルトの layout が
accordionに変更されました。- 以前のデフォルトレイアウトを引き続き使用するには、
layout='tabs'を明示的に指定する必要があります。
- 以前のデフォルトレイアウトを引き続き使用するには、
- 新機能 confirm のデフォルトの動作が変更され、確認が成功すると、常に
return_にリダイレクトされるようになりました。url - 以前は、顧客がリダイレクトベースの決済手段を選択した場合にのみ
confirmでリダイレクトしていました。以前の動作を引き続き使用するには、confirmに redirect=‘if_required’ を渡す必要があります。
- 以前は、顧客がリダイレクトベースの決済手段を選択した場合にのみ
custom_checkout_beta_2
- 新機能
lineItem.フィールドは削除され、lineItem.recurring.intervalCount に置き換えられました。recurring. interval_ count - 新機能
lineItem.フィールドは削除され、以下に置き換えられました。amount
custom_checkout_beta_1
これは、フロントエンドの最初のベータ版です。
バックエンドバージョン
サーバーライブラリを設定 するときにバックエンドのベータ版を指定します。
バックエンドのベータ版には変更はありません。