Skip to content

Commit ae8d2c2

Browse files
authored
fix(stripe): allow selecting Stripe.js SDK version (#799)
1 parent bb42bea commit ae8d2c2

4 files changed

Lines changed: 17 additions & 3 deletions

File tree

docs/content/scripts/stripe.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ links:
1515
[Stripe](https://stripe.com) is a popular payment gateway that allows you to accept payments online.
1616

1717
Nuxt Scripts provides two Stripe features:
18-
- [`useScriptStripe()`{lang="ts"}](/scripts/stripe){lang="ts"} composable which loads the script `https://js.stripe.com/basil/stripe.js`.
18+
- [`useScriptStripe()`{lang="ts"}](/scripts/stripe){lang="ts"} composable which loads the script `https://js.stripe.com/basil/stripe.js` by default. Use the `version` option to [pin a Stripe.js SDK release](https://docs.stripe.com/sdks/stripejs-versioning) (e.g. `acacia`, `clover`, `dahlia`).
1919
- `ScriptStripePricingTable` component that allows you to embed a [Stripe Pricing Table](https://docs.stripe.com/payments/checkout/pricing-table) on your site using `https://js.stripe.com/v3/pricing-table.js`.
2020

2121
::script-stats

packages/script/src/registry-types.json

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -982,7 +982,7 @@
982982
{
983983
"name": "StripeOptions",
984984
"kind": "const",
985-
"code": "export const StripeOptions = object({\n /**\n * Whether to load Stripe's advanced fraud detection signals.\n * Set to `false` to opt out.\n * @default true\n * @see https://docs.stripe.com/disputes/prevention/advanced-fraud-detection\n */\n advancedFraudSignals: optional(boolean()),\n})"
985+
"code": "export const StripeOptions = object({\n /**\n * Whether to load Stripe's advanced fraud detection signals.\n * Set to `false` to opt out.\n * @default true\n * @see https://docs.stripe.com/disputes/prevention/advanced-fraud-detection\n */\n advancedFraudSignals: optional(boolean()),\n /**\n * The Stripe.js SDK version to load.\n * Named releases get autocomplete; any future codename is also accepted.\n * @default 'basil'\n * @see https://docs.stripe.com/sdks/stripejs-versioning\n */\n version: optional(union([literal('v3'), literal('acacia'), literal('basil'), literal('clover'), literal('dahlia'), string()])),\n})"
986986
},
987987
{
988988
"name": "StripeApi",
@@ -2495,6 +2495,13 @@
24952495
"required": false,
24962496
"description": "Whether to load Stripe's advanced fraud detection signals. Set to `false` to opt out.",
24972497
"defaultValue": "true"
2498+
},
2499+
{
2500+
"name": "version",
2501+
"type": "'v3' | 'acacia' | 'basil' | 'clover' | 'dahlia' | string",
2502+
"required": false,
2503+
"description": "The Stripe.js SDK version to load. Named releases get autocomplete; any future codename is also accepted.",
2504+
"defaultValue": "'basil'"
24982505
}
24992506
],
25002507
"TikTokPixelOptions": [

packages/script/src/runtime/registry/schemas.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1097,6 +1097,13 @@ export const StripeOptions = object({
10971097
* @see https://docs.stripe.com/disputes/prevention/advanced-fraud-detection
10981098
*/
10991099
advancedFraudSignals: optional(boolean()),
1100+
/**
1101+
* The Stripe.js SDK version to load.
1102+
* Named releases get autocomplete; any future codename is also accepted.
1103+
* @default 'basil'
1104+
* @see https://docs.stripe.com/sdks/stripejs-versioning
1105+
*/
1106+
version: optional(union([literal('v3'), literal('acacia'), literal('basil'), literal('clover'), literal('dahlia'), string()])),
11001107
})
11011108

11021109
export const TikTokPixelOptions = object({

packages/script/src/runtime/registry/stripe.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export function useScriptStripe<T extends StripeApi>(_options?: StripeInput) {
1616
return useRegistryScript<T, typeof StripeOptions>('stripe', options => ({
1717
scriptInput: {
1818
src: withQuery(
19-
`https://js.stripe.com/basil/stripe.js`,
19+
`https://js.stripe.com/${options?.version || 'basil'}/stripe.js`,
2020
(typeof options?.advancedFraudSignals === 'boolean' && !options?.advancedFraudSignals) ? { advancedFraudSignals: false } : {},
2121
),
2222
// opt-out of privacy defaults

0 commit comments

Comments
 (0)