Skip to content

Commit a2db291

Browse files
authored
chore(plus): upgrade to SubPlat 3.0 (#13199)
1 parent e0b13c0 commit a2db291

File tree

5 files changed

+74
-8
lines changed

5 files changed

+74
-8
lines changed

.github/workflows/prod-build.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,13 @@ jobs:
256256
REACT_APP_MDN_PLUS_10M_PLAN: price_1KeG02JNcmPzuWtRuAnIgNHh
257257
REACT_APP_MDN_PLUS_10Y_PLAN: price_1KeG02JNcmPzuWtRlrSiLTI6
258258

259+
# Support for SP3
260+
REACT_APP_MDN_PLUS_SUBSCRIBE_URL_SP3_BASE: https://payments.firefox.com
261+
REACT_APP_MDN_PLUS_5M_SP3_ID: mdnplus5m
262+
REACT_APP_MDN_PLUS_5Y_SP3_ID: mdnplus5y
263+
REACT_APP_MDN_PLUS_10M_SP3_ID: mdnplus10m
264+
REACT_APP_MDN_PLUS_10Y_SP3_ID: mdnplus10y
265+
259266
# Surveys.
260267
REACT_APP_SURVEY_START_JS_PROPOSALS_2025: 1743120000000 # new Date("2025-03-28Z").getTime()
261268
REACT_APP_SURVEY_END_JS_PROPOSALS_2025: 1744502400000 # new Date("2025-04-13Z").getTime()

.github/workflows/stage-build.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,13 @@ jobs:
273273
REACT_APP_MDN_PLUS_10M_PLAN: price_1K6X7gKb9q6OnNsLi44HdLcC
274274
REACT_APP_MDN_PLUS_10Y_PLAN: price_1K6X8VKb9q6OnNsLFlUcEiu4
275275

276+
# Support for SP3
277+
REACT_APP_MDN_PLUS_SUBSCRIBE_URL_SP3_BASE: https://payments-next.stage.fxa.nonprod.webservices.mozgcp.net
278+
REACT_APP_MDN_PLUS_5M_SP3_ID: mdnplus5mstage
279+
REACT_APP_MDN_PLUS_5Y_SP3_ID: mdnplus5ystage
280+
REACT_APP_MDN_PLUS_10M_SP3_ID: mdnsupporter10mstage
281+
REACT_APP_MDN_PLUS_10Y_SP3_ID: mdnsupporter10ystage
282+
276283
# Surveys.
277284
REACT_APP_SURVEY_START_JS_PROPOSALS_2025: 0 # stage
278285
REACT_APP_SURVEY_END_JS_PROPOSALS_2025: 1745971200000 # new Date("2025-04-30Z").getTime()

client/src/env.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,16 @@ export const PLACEMENT_ENABLED = Boolean(
6262
JSON.parse(process.env.REACT_APP_PLACEMENT_ENABLED || "false")
6363
);
6464

65+
export const MDN_PLUS_SUBSCRIBE_URL_SP3_BASE =
66+
process.env.REACT_APP_MDN_PLUS_SUBSCRIBE_URL_SP3_BASE;
67+
export const MDN_PLUS_USE_SP3 = Boolean(
68+
JSON.parse(process.env.REACT_APP_MDN_PLUS_USE_SP3 || "false")
69+
);
70+
export const MDN_PLUS_SUBSCRIBE_5M_URL_SP3 = `${MDN_PLUS_SUBSCRIBE_URL_SP3_BASE}/${process.env.REACT_APP_MDN_PLUS_5M_SP3_ID}/monthly/landing`;
71+
export const MDN_PLUS_SUBSCRIBE_5Y_URL_SP3 = `${MDN_PLUS_SUBSCRIBE_URL_SP3_BASE}/${process.env.REACT_APP_MDN_PLUS_5Y_SP3_ID}/yearly/landing`;
72+
export const MDN_PLUS_SUBSCRIBE_10M_URL_SP3 = `${MDN_PLUS_SUBSCRIBE_URL_SP3_BASE}/${process.env.REACT_APP_MDN_PLUS_10M_SP3_ID}/monthly/landing`;
73+
export const MDN_PLUS_SUBSCRIBE_10Y_URL_SP3 = `${MDN_PLUS_SUBSCRIBE_URL_SP3_BASE}/${process.env.REACT_APP_MDN_PLUS_10Y_SP3_ID}/yearly/landing`;
74+
6575
export const MDN_PLUS_SUBSCRIBE_5M_URL = `${process.env.REACT_APP_MDN_PLUS_SUBSCRIBE_URL}?plan=${process.env.REACT_APP_MDN_PLUS_5M_PLAN}`;
6676
export const MDN_PLUS_SUBSCRIBE_5Y_URL = `${process.env.REACT_APP_MDN_PLUS_SUBSCRIBE_URL}?plan=${process.env.REACT_APP_MDN_PLUS_5Y_PLAN}`;
6777
export const MDN_PLUS_SUBSCRIBE_10M_URL = `${process.env.REACT_APP_MDN_PLUS_SUBSCRIBE_URL}?plan=${process.env.REACT_APP_MDN_PLUS_10M_PLAN}`;

client/src/plus/offer-overview/offer-overview-subscribe/index.tsx

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,15 @@ import "./index.scss";
22
import {
33
FXA_SIGNIN_URL,
44
MDN_PLUS_SUBSCRIBE_10M_URL,
5+
MDN_PLUS_SUBSCRIBE_10M_URL_SP3,
56
MDN_PLUS_SUBSCRIBE_10Y_URL,
7+
MDN_PLUS_SUBSCRIBE_10Y_URL_SP3,
68
MDN_PLUS_SUBSCRIBE_5M_URL,
9+
MDN_PLUS_SUBSCRIBE_5M_URL_SP3,
710
MDN_PLUS_SUBSCRIBE_5Y_URL,
11+
MDN_PLUS_SUBSCRIBE_5Y_URL_SP3,
812
MDN_PLUS_SUBSCRIBE_BASE,
13+
MDN_PLUS_USE_SP3,
914
} from "../../../env";
1015
import { SubscriptionType, UserData, useUserData } from "../../../user-context";
1116
import { Switch } from "../../../ui/atoms/switch";
@@ -112,12 +117,16 @@ const PLUS_5: OfferDetailsProps = {
112117
upgradeCta: "Upgrade to Plus 5",
113118
regular: {
114119
subscriptionType: SubscriptionType.MDN_PLUS_5M,
115-
ctaLink: MDN_PLUS_SUBSCRIBE_5M_URL,
120+
ctaLink: MDN_PLUS_USE_SP3
121+
? MDN_PLUS_SUBSCRIBE_5M_URL_SP3
122+
: MDN_PLUS_SUBSCRIBE_5M_URL,
116123
monthlyPrice: 500,
117124
},
118125
discounted: {
119126
subscriptionType: SubscriptionType.MDN_PLUS_5Y,
120-
ctaLink: MDN_PLUS_SUBSCRIBE_5Y_URL,
127+
ctaLink: MDN_PLUS_USE_SP3
128+
? MDN_PLUS_SUBSCRIBE_5Y_URL_SP3
129+
: MDN_PLUS_SUBSCRIBE_5Y_URL,
121130
monthlyPrice: 417,
122131
},
123132
};
@@ -136,12 +145,16 @@ const PLUS_10: OfferDetailsProps = {
136145
upgradeCta: "Upgrade to Supporter 10",
137146
regular: {
138147
subscriptionType: SubscriptionType.MDN_PLUS_10M,
139-
ctaLink: MDN_PLUS_SUBSCRIBE_10M_URL,
148+
ctaLink: MDN_PLUS_USE_SP3
149+
? MDN_PLUS_SUBSCRIBE_10M_URL_SP3
150+
: MDN_PLUS_SUBSCRIBE_10M_URL,
140151
monthlyPrice: 1000,
141152
},
142153
discounted: {
143154
subscriptionType: SubscriptionType.MDN_PLUS_10Y,
144-
ctaLink: MDN_PLUS_SUBSCRIBE_10Y_URL,
155+
ctaLink: MDN_PLUS_USE_SP3
156+
? MDN_PLUS_SUBSCRIBE_10Y_URL_SP3
157+
: MDN_PLUS_SUBSCRIBE_10Y_URL,
145158
monthlyPrice: 833,
146159
},
147160
};
@@ -277,12 +290,16 @@ function getLocalizedPlans(countrySpecific: StripePlans): {
277290
currency: countrySpecific.currency,
278291
regular: {
279292
...PLUS_5.regular,
280-
ctaLink: `${MDN_PLUS_SUBSCRIBE_BASE}?plan=${countrySpecific.plans["mdn_plus_5m"].id}`,
293+
ctaLink: MDN_PLUS_USE_SP3
294+
? MDN_PLUS_SUBSCRIBE_5M_URL_SP3
295+
: `${MDN_PLUS_SUBSCRIBE_BASE}?plan=${countrySpecific.plans["mdn_plus_5m"].id}`,
281296
monthlyPrice: countrySpecific.plans["mdn_plus_5m"].monthlyPriceInCents,
282297
},
283298
discounted: {
284299
...PLUS_5.discounted,
285-
ctaLink: `${MDN_PLUS_SUBSCRIBE_BASE}?plan=${countrySpecific.plans["mdn_plus_5y"].id}`,
300+
ctaLink: MDN_PLUS_USE_SP3
301+
? MDN_PLUS_SUBSCRIBE_5Y_URL_SP3
302+
: `${MDN_PLUS_SUBSCRIBE_BASE}?plan=${countrySpecific.plans["mdn_plus_5y"].id}`,
286303
monthlyPrice: countrySpecific.plans["mdn_plus_5y"].monthlyPriceInCents,
287304
},
288305
},
@@ -291,12 +308,16 @@ function getLocalizedPlans(countrySpecific: StripePlans): {
291308
currency: countrySpecific.currency,
292309
regular: {
293310
...PLUS_10.regular,
294-
ctaLink: `${MDN_PLUS_SUBSCRIBE_BASE}?plan=${countrySpecific.plans["mdn_plus_10m"].id}`,
311+
ctaLink: MDN_PLUS_USE_SP3
312+
? MDN_PLUS_SUBSCRIBE_10M_URL_SP3
313+
: `${MDN_PLUS_SUBSCRIBE_BASE}?plan=${countrySpecific.plans["mdn_plus_10m"].id}`,
295314
monthlyPrice: countrySpecific.plans["mdn_plus_10m"].monthlyPriceInCents,
296315
},
297316
discounted: {
298317
...PLUS_10.discounted,
299-
ctaLink: `${MDN_PLUS_SUBSCRIBE_BASE}?plan=${countrySpecific.plans["mdn_plus_10y"].id}`,
318+
ctaLink: MDN_PLUS_USE_SP3
319+
? MDN_PLUS_SUBSCRIBE_10Y_URL_SP3
320+
: `${MDN_PLUS_SUBSCRIBE_BASE}?plan=${countrySpecific.plans["mdn_plus_10y"].id}`,
300321
monthlyPrice: countrySpecific.plans["mdn_plus_10y"].monthlyPriceInCents,
301322
},
302323
},

docs/envvars.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,3 +370,24 @@ included this value for `geo.country_iso`.
370370
**Default: `https://observatory-api.mdn.allizom.net`**
371371

372372
- Base url for the Observatory API server.
373+
374+
## Subscription Platform
375+
376+
### REACT_APP_MDN_PLUS_SUBSCRIBE_URL_SP3_BASE
377+
378+
**Example: `https://payments.firefox.com`**
379+
380+
- Base URL for the subscription platform.
381+
382+
### REACT_APP_MDN_PLUS_5M_SP3_ID
383+
384+
### REACT_APP_MDN_PLUS_5Y_SP3_ID
385+
386+
### REACT_APP_MDN_PLUS_10M_SP3_ID
387+
388+
### REACT_APP_MDN_PLUS_10Y_SP3_ID
389+
390+
**Example: mdnplus5m**
391+
392+
- Subscription ID for the 4 different plans (5 and 10 USD monthly or yearly
393+
payment)

0 commit comments

Comments
 (0)