@wirexapp/card-wallet-topup-web 1.1.0-beta.2 → 1.1.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +37 -0
- package/dist/index.d.ts +13 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -6
- package/dist/index.js.map +1 -1
- package/dist/walletElement.d.ts +46 -10
- package/dist/walletElement.d.ts.map +1 -1
- package/dist/walletElement.js +31 -6
- package/dist/walletElement.js.map +1 -1
- package/dist/walletPopup.d.ts +12 -7
- package/dist/walletPopup.d.ts.map +1 -1
- package/dist/walletPopup.js +42 -8
- package/dist/walletPopup.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,42 @@
|
|
|
1
1
|
# @wirexapp/card-wallet-topup-web
|
|
2
2
|
|
|
3
|
+
## 1.1.0-beta.4
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 731da3e: Wallet checkout TOKEN MODE (WPAY-4431): pass the backend's short-lived top-up
|
|
8
|
+
token as `auth.checkoutToken` and the hosted checkout executes the top-up
|
|
9
|
+
itself, reporting `onExecuted` / `onExecuteFailed` (`wallet-executed` /
|
|
10
|
+
`wallet-execute-failed` on the wire) — the wallet payment token never leaves
|
|
11
|
+
the frame. Legacy tokenize-and-return (`onToken`) is unchanged without `auth`.
|
|
12
|
+
|
|
13
|
+
Token mode also brings Google Pay to desktop (`googlePayHandoff: 'qr' | 'none'`,
|
|
14
|
+
probe flag `googlePayHandoff`): the frame draws a QR that carries the checkout
|
|
15
|
+
itself — the token, the quote and the estimate's `provider` name (new init /
|
|
16
|
+
`arm()` / `update()` field) — and an Android phone opens the same checkout
|
|
17
|
+
top-level, pays and executes. Nothing is stored on the frames service and the
|
|
18
|
+
desktop never learns the outcome: hosts reconcile by their own status reads
|
|
19
|
+
after `wallet-state: handoff-pending`. `arm(quote, config, auth?, provider?)` /
|
|
20
|
+
`update(quote, config?, auth?, provider?)`; `wallet-update` carries `auth` and
|
|
21
|
+
`provider`; new `wallet-state` values `executing`, `handoff-pending`.
|
|
22
|
+
|
|
23
|
+
`buildWalletLaunchFragment` / `buildWalletLaunchUrl` (core) build the same
|
|
24
|
+
compact fragment for a Chrome Custom Tab launch (`#t=&e=&s=&p=[&r=]`); the page
|
|
25
|
+
resolves the provider block from the public BaaS config by name.
|
|
26
|
+
|
|
27
|
+
### Patch Changes
|
|
28
|
+
|
|
29
|
+
- Updated dependencies [731da3e]
|
|
30
|
+
- @wirexapp/card-sdk-core@1.1.0-beta.4
|
|
31
|
+
|
|
32
|
+
## 1.1.0-beta.3
|
|
33
|
+
|
|
34
|
+
### Patch Changes
|
|
35
|
+
|
|
36
|
+
- Updated dependencies [390c416]
|
|
37
|
+
- Updated dependencies [d4654e9]
|
|
38
|
+
- @wirexapp/card-sdk-core@1.1.0-beta.3
|
|
39
|
+
|
|
3
40
|
## 1.1.0-beta.2
|
|
4
41
|
|
|
5
42
|
### Minor Changes
|
package/dist/index.d.ts
CHANGED
|
@@ -12,9 +12,14 @@
|
|
|
12
12
|
* 3. `createWalletTopUpForm(...).mount(container)` — the frame renders the
|
|
13
13
|
* review screen from your quote and the wallet buttons under Wirex's
|
|
14
14
|
* merchant identity. No Apple/Google registration, no certificates.
|
|
15
|
-
* 4.
|
|
16
|
-
* VERBATIM as the execute call's
|
|
17
|
-
*
|
|
15
|
+
* 4. Legacy mode: the payment sheet's encrypted payload arrives in
|
|
16
|
+
* `onToken` — relay it VERBATIM as the execute call's
|
|
17
|
+
* `wallet_payment_token`. Token mode (`auth`: the backend's short-lived
|
|
18
|
+
* top-up token from `POST /api/v1/cards/topup/token`): the FRAME
|
|
19
|
+
* executes and reports `onExecuted` / `onExecuteFailed`; this is what
|
|
20
|
+
* also unlocks the desktop Google Pay QR (`googlePayHandoff`). No 3DS
|
|
21
|
+
* ever happens on this path; reconcile the money-moved truth on your
|
|
22
|
+
* backend.
|
|
18
23
|
*/
|
|
19
24
|
import { type PciSdkConfig, type PciWalletAvailability, type PciWalletProviderConfig } from '@wirexapp/card-sdk-core';
|
|
20
25
|
import { probeWalletAvailability, PciWalletTopUpElement, type PciWalletTopUpElementConfig } from './walletElement.js';
|
|
@@ -67,8 +72,11 @@ export { PciFrameRequestError } from '@wirexapp/card-sdk-core';
|
|
|
67
72
|
* domain. Apple binds merchant sessions to the top-level page's domain — in
|
|
68
73
|
* a popup that is the frames origin itself (already Apple-verified), so
|
|
69
74
|
* hosts need NO Apple domain registration or association file in this mode.
|
|
70
|
-
* MUST be called synchronously from a click handler (popup blockers).
|
|
71
|
-
* encrypted token
|
|
75
|
+
* MUST be called synchronously from a click handler (popup blockers). Legacy
|
|
76
|
+
* mode: the encrypted token arrives in `onToken` and the host executes.
|
|
77
|
+
* Token mode (`auth`, or `arm(quote, walletConfig, auth)`): the popup
|
|
78
|
+
* executes and reports `onExecuted` / `onExecuteFailed`; on desktop it draws
|
|
79
|
+
* the Google Pay QR for the user's phone. */
|
|
72
80
|
/** @beta Wallet top-up is in beta — breaking changes may land in beta releases. */
|
|
73
81
|
export declare const openWalletCheckoutPopup: (sdk: PciSdkConfig, config: PciWalletTopUpPopupConfig) => PciWalletTopUpPopup;
|
|
74
82
|
export type { PciWalletTopUpPopup as WalletTopUpPopup, PciWalletTopUpPopupConfig as WalletTopUpPopupConfig };
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,KAAK,2BAA2B,EACjC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC/B,MAAM,eAAe,CAAC;AAMvB,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,GACrB,CAAC;AACF,YAAY,EACV,2BAA2B,EAC3B,mBAAmB,EACnB,yBAAyB,GAC1B,CAAC;AACF,YAAY,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7D,yEAAyE;AACzE,MAAM,MAAM,qBAAqB,GAAG,2BAA2B,CAAC;AAChE,MAAM,MAAM,eAAe,GAAG,qBAAqB,CAAC;AASpD;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IAC1C,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACpC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,8BAA8B;IAC7C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;yDAEqD;IACrD,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC;;;;2EAIuE;IACvE,KAAK,CAAC,EAAE,2BAA2B,GAAG,IAAI,CAAC;CAC5C;AAwDD;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,GAClC,KAAK,YAAY,EACjB,UAAU,8BAA8B,KACvC,OAAO,CAAC,qBAAqB,CAmC/B,CAAC;AAEF,kFAAkF;AAClF,mFAAmF;AACnF,eAAO,MAAM,qBAAqB,GAChC,KAAK,YAAY,EACjB,QAAQ,qBAAqB,KAC5B,eAA2F,CAAC;AAI/F,mBAAmB,yBAAyB,CAAC;AAG7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D;;;;;;;;8CAQ8C;AAC9C,mFAAmF;AACnF,eAAO,MAAM,uBAAuB,GAClC,KAAK,YAAY,EACjB,QAAQ,yBAAyB,KAChC,mBAA0F,CAAC;AAE9F,YAAY,EAAE,mBAAmB,IAAI,gBAAgB,EAAE,yBAAyB,IAAI,sBAAsB,EAAE,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -12,9 +12,14 @@
|
|
|
12
12
|
* 3. `createWalletTopUpForm(...).mount(container)` — the frame renders the
|
|
13
13
|
* review screen from your quote and the wallet buttons under Wirex's
|
|
14
14
|
* merchant identity. No Apple/Google registration, no certificates.
|
|
15
|
-
* 4.
|
|
16
|
-
* VERBATIM as the execute call's
|
|
17
|
-
*
|
|
15
|
+
* 4. Legacy mode: the payment sheet's encrypted payload arrives in
|
|
16
|
+
* `onToken` — relay it VERBATIM as the execute call's
|
|
17
|
+
* `wallet_payment_token`. Token mode (`auth`: the backend's short-lived
|
|
18
|
+
* top-up token from `POST /api/v1/cards/topup/token`): the FRAME
|
|
19
|
+
* executes and reports `onExecuted` / `onExecuteFailed`; this is what
|
|
20
|
+
* also unlocks the desktop Google Pay QR (`googlePayHandoff`). No 3DS
|
|
21
|
+
* ever happens on this path; reconcile the money-moved truth on your
|
|
22
|
+
* backend.
|
|
18
23
|
*/
|
|
19
24
|
import { buildFrameUrl, } from '@wirexapp/card-sdk-core';
|
|
20
25
|
import { probeWalletAvailability, PciWalletTopUpElement, } from './walletElement.js';
|
|
@@ -57,7 +62,11 @@ const readPersistedAvailability = (cache, key) => {
|
|
|
57
62
|
return null;
|
|
58
63
|
const parsed = JSON.parse(raw);
|
|
59
64
|
if (typeof parsed.applePay === 'boolean' && typeof parsed.googlePay === 'boolean') {
|
|
60
|
-
return {
|
|
65
|
+
return {
|
|
66
|
+
applePay: parsed.applePay,
|
|
67
|
+
googlePay: parsed.googlePay,
|
|
68
|
+
...(typeof parsed.googlePayHandoff === 'boolean' ? { googlePayHandoff: parsed.googlePayHandoff } : {}),
|
|
69
|
+
};
|
|
61
70
|
}
|
|
62
71
|
}
|
|
63
72
|
catch {
|
|
@@ -127,8 +136,11 @@ export { PciFrameRequestError } from '@wirexapp/card-sdk-core';
|
|
|
127
136
|
* domain. Apple binds merchant sessions to the top-level page's domain — in
|
|
128
137
|
* a popup that is the frames origin itself (already Apple-verified), so
|
|
129
138
|
* hosts need NO Apple domain registration or association file in this mode.
|
|
130
|
-
* MUST be called synchronously from a click handler (popup blockers).
|
|
131
|
-
* encrypted token
|
|
139
|
+
* MUST be called synchronously from a click handler (popup blockers). Legacy
|
|
140
|
+
* mode: the encrypted token arrives in `onToken` and the host executes.
|
|
141
|
+
* Token mode (`auth`, or `arm(quote, walletConfig, auth)`): the popup
|
|
142
|
+
* executes and reports `onExecuted` / `onExecuteFailed`; on desktop it draws
|
|
143
|
+
* the Google Pay QR for the user's phone. */
|
|
132
144
|
/** @beta Wallet top-up is in beta — breaking changes may land in beta releases. */
|
|
133
145
|
export const openWalletCheckoutPopup = (sdk, config) => openWalletTopUpPopup(buildFrameUrl(sdk, 'wallet-checkout'), config);
|
|
134
146
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EACL,aAAa,GAId,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,uBAAuB,EACvB,qBAAqB,GAEtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,oBAAoB,GAGrB,MAAM,eAAe,CAAC;AAEvB,6EAA6E;AAC7E,0EAA0E;AAC1E,4EAA4E;AAC5E,0CAA0C;AAC1C,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,GACrB,CAAC;AAYF;;;;cAIc;AACd,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAA0C,CAAC;AA2B5E,MAAM,yBAAyB,GAAG,qCAAqC,CAAC;AAExE;4DAC4D;AAC5D,MAAM,wBAAwB,GAAG,GAAuC,EAAE;IACxE,IAAI,CAAC;QACH,OAAO,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,QAAgB,EAAU,EAAE;IACxD,IAAI,CAAC;QACH,oEAAoE;QACpE,OAAO,yBAAyB,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACpF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,yBAAyB,GAAG,QAAQ,CAAC;IAC9C,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAChC,KAAkC,EAClC,GAAW,EACmB,EAAE;IAChC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4E,CAAC;QAC1G,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAClF,OAAO;gBACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,GAAG,CAAC,OAAO,MAAM,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvG,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;IACzE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,0BAA0B,GAAG,CACjC,KAAkC,EAClC,GAAW,EACX,KAA4B,EACtB,EAAE;IACR,IAAI,CAAC;QACH,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,gEAAgE;IAClE,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,GAAiB,EACjB,OAAwC,EACR,EAAE;IAClC,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IACpD,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;IAC5B,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACxF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAEhD,MAAM,KAAK,GAAG,uBAAuB,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC;SAC7D,IAAI,CAAC,KAAK,CAAC,EAAE;QACZ,IAAI,KAAK;YAAE,0BAA0B,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC9D,sEAAsE;QACtE,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACxD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QACxB,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;IAEL,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,yBAAyB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/F,IAAI,SAAS,EAAE,CAAC;QACd,uEAAuE;QACvE,oEAAoE;QACpE,mEAAmE;QACnE,kBAAkB;QAClB,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC3C,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACzC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACvC,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,kFAAkF;AAClF,mFAAmF;AACnF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,GAAiB,EACjB,MAA6B,EACZ,EAAE,CAAC,IAAI,qBAAqB,CAAC,aAAa,CAAC,GAAG,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAAC;AAK/F,wEAAwE;AACxE,8BAA8B;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D;;;;;;;;8CAQ8C;AAC9C,mFAAmF;AACnF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,GAAiB,EACjB,MAAiC,EACZ,EAAE,CAAC,oBAAoB,CAAC,aAAa,CAAC,GAAG,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAAC"}
|
package/dist/walletElement.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PciAppearance, PciFrameStrings, PciWalletAvailability, PciWalletBrandingConfig, PciWalletButtonAppearance, PciWalletCheckoutState, PciWalletPaymentTokenDto, PciWalletProviderConfig, PciWalletQuote } from '@wirexapp/card-sdk-core';
|
|
1
|
+
import type { PciAppearance, PciFrameStrings, PciWalletAvailability, PciWalletBrandingConfig, PciWalletButtonAppearance, PciWalletCheckoutAuth, PciWalletCheckoutState, PciWalletExecuteError, PciWalletExecuteResult, PciWalletGooglePayHandoff, PciWalletPaymentTokenDto, PciWalletProviderConfig, PciWalletQuote } from '@wirexapp/card-sdk-core';
|
|
2
2
|
export type PciWalletPaymentToken = PciWalletPaymentTokenDto;
|
|
3
3
|
export interface PciWalletTopUpElementConfig {
|
|
4
4
|
/** From your estimate call (a wallet `payment_method`, no card id). */
|
|
@@ -6,6 +6,23 @@ export interface PciWalletTopUpElementConfig {
|
|
|
6
6
|
/** The provider block of the app config's `topup` section, selected by the
|
|
7
7
|
* ESTIMATE's `provider` field — passed to the frame verbatim. */
|
|
8
8
|
walletConfig: PciWalletProviderConfig;
|
|
9
|
+
/**
|
|
10
|
+
* TOKEN MODE: the backend's short-lived top-up token
|
|
11
|
+
* (`POST /api/v1/cards/topup/token` → `token`), minted for this checkout.
|
|
12
|
+
* With it the FRAME executes the top-up itself after the sheet authorizes
|
|
13
|
+
* and reports `onExecuted` / `onExecuteFailed`; `onToken` is never called.
|
|
14
|
+
* It also enables the desktop Google Pay QR handoff. Opaque to the SDK —
|
|
15
|
+
* never log it, never pass a full user session token in production.
|
|
16
|
+
* Omit for the legacy tokenize-and-return flow.
|
|
17
|
+
*/
|
|
18
|
+
auth?: PciWalletCheckoutAuth;
|
|
19
|
+
/** Token mode only: `qr` (default) draws a scan-with-your-phone code where
|
|
20
|
+
* Google Pay cannot tokenize natively (desktop); `none` hides Google Pay
|
|
21
|
+
* there instead. */
|
|
22
|
+
googlePayHandoff?: PciWalletGooglePayHandoff;
|
|
23
|
+
/** The estimate's `provider` name — required for the desktop Google Pay QR
|
|
24
|
+
* (the phone resolves the provider block by name); harmless otherwise. */
|
|
25
|
+
provider?: string;
|
|
9
26
|
appearance?: PciAppearance;
|
|
10
27
|
buttons?: PciWalletButtonAppearance;
|
|
11
28
|
/** `compact` when the host renders its own review UI — the frame shows only
|
|
@@ -21,6 +38,9 @@ export interface PciWalletTopUpElementConfig {
|
|
|
21
38
|
strings?: PciFrameStrings;
|
|
22
39
|
/** Review screen rendered, buttons live. */
|
|
23
40
|
onReady?: () => void;
|
|
41
|
+
/** `loading` → `ready` → `sheet-open`; token mode adds `executing` and
|
|
42
|
+
* `handoff-pending` (desktop QR on screen — the phone pays; reconcile by
|
|
43
|
+
* your own status reads, the frame never learns the outcome). */
|
|
24
44
|
onStateChange?: (state: PciWalletCheckoutState) => void;
|
|
25
45
|
/** The user dismissed the wallet sheet — nothing was tokenized. */
|
|
26
46
|
onCancel?: () => void;
|
|
@@ -28,16 +48,28 @@ export interface PciWalletTopUpElementConfig {
|
|
|
28
48
|
* failure). `reason` is a stable slug for messaging/analytics. */
|
|
29
49
|
onAttemptFailed?: (reason: string) => void;
|
|
30
50
|
/** The quote expired in view. Re-estimate through your backend and call
|
|
31
|
-
* `update()` with the fresh quote
|
|
51
|
+
* `update()` with the fresh quote (and a fresh `auth` in token mode) — no
|
|
52
|
+
* remount needed. */
|
|
32
53
|
onEstimationExpired?: () => void;
|
|
33
54
|
/**
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
55
|
+
* LEGACY MODE (no `auth`): the payment sheet authorized. Relay
|
|
56
|
+
* `walletPaymentToken` VERBATIM as the execute call's
|
|
57
|
+
* `wallet_payment_token` (never parse, reshape or log it). The sheet has
|
|
58
|
+
* already closed successfully — its success means "tokenized"; the execute
|
|
59
|
+
* response and your status feed own the top-up outcome. `three_ds_state`
|
|
60
|
+
* is never present on a wallet top-up. Required unless `auth` is set.
|
|
39
61
|
*/
|
|
40
|
-
onToken
|
|
62
|
+
onToken?: (token: PciWalletPaymentToken) => void;
|
|
63
|
+
/** TOKEN MODE: the frame executed the top-up. `result.status` is the
|
|
64
|
+
* execute response's status — treat it like your card top-up flow's and
|
|
65
|
+
* reconcile through your status feed. A payment made on the user's phone
|
|
66
|
+
* after the desktop QR never reaches this callback — see `onStateChange`
|
|
67
|
+
* `handoff-pending`. */
|
|
68
|
+
onExecuted?: (result: PciWalletExecuteResult) => void;
|
|
69
|
+
/** TOKEN MODE: the execute call failed (`reason` slug + HTTP status +
|
|
70
|
+
* sanitized message). The frame keeps its buttons disabled until
|
|
71
|
+
* `update()` re-arms it with a fresh quote. */
|
|
72
|
+
onExecuteFailed?: (error: PciWalletExecuteError) => void;
|
|
41
73
|
/** DEV ONLY: arm the frame's diagnostics channel — in-frame JS errors and
|
|
42
74
|
* console output arrive in `onDebug`. Never enable in production. */
|
|
43
75
|
debug?: boolean;
|
|
@@ -54,12 +86,16 @@ export declare class PciWalletTopUpElement {
|
|
|
54
86
|
private readonly channel;
|
|
55
87
|
/** One token per payment attempt; re-armed when a new sheet opens. */
|
|
56
88
|
private attemptSettled;
|
|
89
|
+
/** The token in play (token mode) — `update()` may replace it. */
|
|
90
|
+
private auth;
|
|
57
91
|
constructor(frameUrl: string, config: PciWalletTopUpElementConfig);
|
|
58
92
|
mount(container: HTMLElement): Promise<void>;
|
|
59
93
|
/** Re-arm a mounted element with a fresh quote (typically after
|
|
60
94
|
* `onEstimationExpired`) — re-renders in place. Pass `walletConfig` when
|
|
61
|
-
* the fresh estimate's `provider` selects a different config block
|
|
62
|
-
|
|
95
|
+
* the fresh estimate's `provider` selects a different config block, and a
|
|
96
|
+
* fresh `auth` in token mode when the previous token expired with the
|
|
97
|
+
* quote (omitted = the mounted token stays). */
|
|
98
|
+
update(quote: PciWalletQuote, walletConfig?: PciWalletProviderConfig, auth?: PciWalletCheckoutAuth, provider?: string): Promise<void>;
|
|
63
99
|
destroy(): void;
|
|
64
100
|
}
|
|
65
101
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walletElement.d.ts","sourceRoot":"","sources":["../src/walletElement.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"walletElement.d.ts","sourceRoot":"","sources":["../src/walletElement.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,cAAc,EACf,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,qBAAqB,GAAG,wBAAwB,CAAC;AAE7D,MAAM,WAAW,2BAA2B;IAC1C,uEAAuE;IACvE,KAAK,EAAE,cAAc,CAAC;IACtB;sEACkE;IAClE,YAAY,EAAE,uBAAuB,CAAC;IACtC;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,qBAAqB,CAAC;IAC7B;;yBAEqB;IACrB,gBAAgB,CAAC,EAAE,yBAAyB,CAAC;IAC7C;+EAC2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,OAAO,CAAC,EAAE,yBAAyB,CAAC;IACpC;2EACuE;IACvE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B;;;0EAGsE;IACtE,eAAe,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IACrC,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IACnC,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;sEAEkE;IAClE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACxD,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;uEACmE;IACnE,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C;;0BAEsB;IACtB,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACjD;;;;6BAIyB;IACzB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACtD;;oDAEgD;IAChD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACzD;0EACsE;IACtE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACtE;AAED;;;;;GAKG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8B;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,sEAAsE;IACtE,OAAO,CAAC,cAAc,CAAS;IAC/B,kEAAkE;IAClE,OAAO,CAAC,IAAI,CAAoC;gBAEpC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,2BAA2B;IA4C3D,KAAK,CAAC,SAAS,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBlD;;;;qDAIiD;IAC3C,MAAM,CACV,KAAK,EAAE,cAAc,EACrB,YAAY,CAAC,EAAE,uBAAuB,EACtC,IAAI,CAAC,EAAE,qBAAqB,EAC5B,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC;IAWhB,OAAO,IAAI,IAAI;CAGhB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,GAClC,UAAU,MAAM,EAChB,SAAS,uBAAuB,KAC/B,OAAO,CAAC,qBAAqB,CAqB/B,CAAC"}
|
package/dist/walletElement.js
CHANGED
|
@@ -7,9 +7,15 @@
|
|
|
7
7
|
* Unlike collect/reveal this is not CHD isolation — wallet tokens are
|
|
8
8
|
* encrypted, gateway-bound blobs. The frame exists for Apple Pay's origin
|
|
9
9
|
* binding: the wallet JS must run on a Wirex-registered domain, so partners
|
|
10
|
-
* skip Apple onboarding entirely.
|
|
11
|
-
*
|
|
12
|
-
*
|
|
10
|
+
* skip Apple onboarding entirely. Two modes (protocol.ts):
|
|
11
|
+
* - LEGACY — the frame TOKENIZES AND RETURNS: the sheet's encrypted payload
|
|
12
|
+
* arrives in `onToken`, and the HOST calls the execute endpoint with it
|
|
13
|
+
* (`wallet_payment_token`).
|
|
14
|
+
* - TOKEN MODE (`auth`, WPAY-4431) — the host passes the backend's
|
|
15
|
+
* short-lived top-up token and the FRAME executes; the outcome arrives in
|
|
16
|
+
* `onExecuted` / `onExecuteFailed`. This is also what unlocks the desktop
|
|
17
|
+
* Google Pay QR (the phone finishes the top-up on its own).
|
|
18
|
+
* There is no 3DS on this path.
|
|
13
19
|
*/
|
|
14
20
|
import { PciFrameChannel } from '@wirexapp/card-sdk-core';
|
|
15
21
|
/**
|
|
@@ -23,6 +29,10 @@ export class PciWalletTopUpElement {
|
|
|
23
29
|
/** One token per payment attempt; re-armed when a new sheet opens. */
|
|
24
30
|
this.attemptSettled = false;
|
|
25
31
|
this.config = config;
|
|
32
|
+
this.auth = config.auth;
|
|
33
|
+
if (!config.auth && !config.onToken) {
|
|
34
|
+
console.warn('[card-wallet-topup] neither `auth` (token mode) nor `onToken` (legacy mode) is set — the wallet token would be dropped');
|
|
35
|
+
}
|
|
26
36
|
this.channel = new PciFrameChannel(frameUrl, {}, { allowPayment: true });
|
|
27
37
|
this.channel.onMessage(message => {
|
|
28
38
|
switch (message.type) {
|
|
@@ -47,7 +57,13 @@ export class PciWalletTopUpElement {
|
|
|
47
57
|
if (this.attemptSettled)
|
|
48
58
|
break;
|
|
49
59
|
this.attemptSettled = true;
|
|
50
|
-
this.config.onToken(message.token);
|
|
60
|
+
this.config.onToken?.(message.token);
|
|
61
|
+
break;
|
|
62
|
+
case 'wallet-executed':
|
|
63
|
+
this.config.onExecuted?.(message.result);
|
|
64
|
+
break;
|
|
65
|
+
case 'wallet-execute-failed':
|
|
66
|
+
this.config.onExecuteFailed?.(message.error);
|
|
51
67
|
break;
|
|
52
68
|
default:
|
|
53
69
|
break;
|
|
@@ -68,6 +84,9 @@ export class PciWalletTopUpElement {
|
|
|
68
84
|
buttons: this.config.buttons,
|
|
69
85
|
branding: this.config.branding,
|
|
70
86
|
strings: this.config.strings,
|
|
87
|
+
auth: this.auth,
|
|
88
|
+
googlePayHandoff: this.config.googlePayHandoff,
|
|
89
|
+
provider: this.config.provider,
|
|
71
90
|
debug: this.config.debug,
|
|
72
91
|
},
|
|
73
92
|
});
|
|
@@ -75,12 +94,18 @@ export class PciWalletTopUpElement {
|
|
|
75
94
|
}
|
|
76
95
|
/** Re-arm a mounted element with a fresh quote (typically after
|
|
77
96
|
* `onEstimationExpired`) — re-renders in place. Pass `walletConfig` when
|
|
78
|
-
* the fresh estimate's `provider` selects a different config block
|
|
79
|
-
|
|
97
|
+
* the fresh estimate's `provider` selects a different config block, and a
|
|
98
|
+
* fresh `auth` in token mode when the previous token expired with the
|
|
99
|
+
* quote (omitted = the mounted token stays). */
|
|
100
|
+
async update(quote, walletConfig, auth, provider) {
|
|
101
|
+
if (auth)
|
|
102
|
+
this.auth = auth;
|
|
80
103
|
await this.channel.request({
|
|
81
104
|
type: 'wallet-update',
|
|
82
105
|
quote,
|
|
83
106
|
config: walletConfig ?? this.config.walletConfig,
|
|
107
|
+
...(auth ? { auth } : {}),
|
|
108
|
+
...(provider ? { provider } : {}),
|
|
84
109
|
});
|
|
85
110
|
}
|
|
86
111
|
destroy() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walletElement.js","sourceRoot":"","sources":["../src/walletElement.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"walletElement.js","sourceRoot":"","sources":["../src/walletElement.ts"],"names":[],"mappings":"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"}
|
package/dist/walletPopup.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { PciWalletCheckoutAuth } from '@wirexapp/card-sdk-core';
|
|
1
2
|
import type { PciWalletTopUpElementConfig } from './walletElement.js';
|
|
2
3
|
export interface PciWalletTopUpPopupConfig extends Omit<PciWalletTopUpElementConfig, 'quote' | 'walletConfig'> {
|
|
3
4
|
/** The quote may be OMITTED at open time: `window.open` must run
|
|
@@ -6,8 +7,9 @@ export interface PciWalletTopUpPopupConfig extends Omit<PciWalletTopUpElementCon
|
|
|
6
7
|
* the estimate lands. Providing both here arms immediately. */
|
|
7
8
|
quote?: PciWalletTopUpElementConfig['quote'];
|
|
8
9
|
walletConfig?: PciWalletTopUpElementConfig['walletConfig'];
|
|
9
|
-
/** The popup was closed (by the user or programmatically) without a
|
|
10
|
-
* Not fired after `onToken`
|
|
10
|
+
/** The popup was closed (by the user or programmatically) without a
|
|
11
|
+
* token / outcome. Not fired after `onToken` or `onExecuted` — those close
|
|
12
|
+
* the popup too. It IS fired after `onExecuteFailed`. */
|
|
11
13
|
onClose?: () => void;
|
|
12
14
|
/** The popup failed to boot: blocked by the browser (call `open` from a
|
|
13
15
|
* click handler), or the frame never became ready. */
|
|
@@ -16,12 +18,15 @@ export interface PciWalletTopUpPopupConfig extends Omit<PciWalletTopUpElementCon
|
|
|
16
18
|
export interface PciWalletTopUpPopup {
|
|
17
19
|
/** Deliver the quote when it wasn't available at open time (the estimate
|
|
18
20
|
* resolved after the click). First call initializes the checkout; later
|
|
19
|
-
* calls behave like `update`. No-op after the popup closed.
|
|
20
|
-
|
|
21
|
+
* calls behave like `update`. No-op after the popup closed. Token mode:
|
|
22
|
+
* pass the top-up token minted for this quote as `auth` (it may also be
|
|
23
|
+
* given once in the open config). */
|
|
24
|
+
arm(quote: PciWalletTopUpElementConfig['quote'], walletConfig: PciWalletTopUpElementConfig['walletConfig'], auth?: PciWalletCheckoutAuth, provider?: string): void;
|
|
21
25
|
/** Re-arm with a fresh quote (after `onEstimationExpired`) — re-renders in
|
|
22
|
-
* place, the popup stays open.
|
|
23
|
-
|
|
24
|
-
|
|
26
|
+
* place, the popup stays open. Token mode: pass a fresh `auth` when the
|
|
27
|
+
* previous token expired with the quote. */
|
|
28
|
+
update(quote: PciWalletTopUpElementConfig['quote'], walletConfig?: PciWalletTopUpElementConfig['walletConfig'], auth?: PciWalletCheckoutAuth, provider?: string): Promise<void>;
|
|
29
|
+
/** Close the popup. Fires `onClose` if nothing was tokenized / executed yet. */
|
|
25
30
|
close(): void;
|
|
26
31
|
}
|
|
27
32
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walletPopup.d.ts","sourceRoot":"","sources":["../src/walletPopup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"walletPopup.d.ts","sourceRoot":"","sources":["../src/walletPopup.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AA0BnE,MAAM,WAAW,yBAA0B,SAAQ,IAAI,CAAC,2BAA2B,EAAE,OAAO,GAAG,cAAc,CAAC;IAC5G;;;oEAGgE;IAChE,KAAK,CAAC,EAAE,2BAA2B,CAAC,OAAO,CAAC,CAAC;IAC7C,YAAY,CAAC,EAAE,2BAA2B,CAAC,cAAc,CAAC,CAAC;IAC3D;;8DAE0D;IAC1D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;2DACuD;IACvD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,mBAAmB;IAClC;;;;0CAIsC;IACtC,GAAG,CACD,KAAK,EAAE,2BAA2B,CAAC,OAAO,CAAC,EAC3C,YAAY,EAAE,2BAA2B,CAAC,cAAc,CAAC,EACzD,IAAI,CAAC,EAAE,qBAAqB,EAC5B,QAAQ,CAAC,EAAE,MAAM,GAChB,IAAI,CAAC;IACR;;iDAE6C;IAC7C,MAAM,CACJ,KAAK,EAAE,2BAA2B,CAAC,OAAO,CAAC,EAC3C,YAAY,CAAC,EAAE,2BAA2B,CAAC,cAAc,CAAC,EAC1D,IAAI,CAAC,EAAE,qBAAqB,EAC5B,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,gFAAgF;IAChF,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAC/B,UAAU,MAAM,EAChB,QAAQ,yBAAyB,KAChC,mBAkNF,CAAC"}
|
package/dist/walletPopup.js
CHANGED
|
@@ -11,9 +11,11 @@
|
|
|
11
11
|
* origin itself, which is already verified — partners need NO Apple steps at
|
|
12
12
|
* all. The trade-off is the user briefly leaving the host page.
|
|
13
13
|
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
14
|
+
* Legacy mode: the sheet's encrypted payload arrives in `onToken` and the
|
|
15
|
+
* HOST calls execute; the popup closes itself once the token is handed off.
|
|
16
|
+
* Token mode (`auth`): the popup executes itself and closes on `onExecuted`
|
|
17
|
+
* (and on `onExecuteFailed`, after reporting it). On desktop it draws the
|
|
18
|
+
* Google Pay QR; the phone's payment surfaces through the same callbacks.
|
|
17
19
|
*/
|
|
18
20
|
import { PCI_PROTOCOL_VERSION } from '@wirexapp/card-sdk-core';
|
|
19
21
|
const READY_TIMEOUT_MS = 15000;
|
|
@@ -52,7 +54,7 @@ export const openWalletTopUpPopup = (frameUrl, config) => {
|
|
|
52
54
|
const url = `${frameUrl}#channel=${channelId}&parent=${encodeURIComponent(window.location.origin)}${appearanceFragment}`;
|
|
53
55
|
const popup = window.open(url, '_blank', popupFeatures());
|
|
54
56
|
const pending = new Map();
|
|
55
|
-
let settled = false; // a token was handed off
|
|
57
|
+
let settled = false; // a token was handed off, or the frame executed
|
|
56
58
|
let closed = false;
|
|
57
59
|
let closePoll = null;
|
|
58
60
|
let readyTimer = null;
|
|
@@ -65,6 +67,8 @@ export const openWalletTopUpPopup = (frameUrl, config) => {
|
|
|
65
67
|
let initialized = false;
|
|
66
68
|
let armedQuote = config.quote ?? null;
|
|
67
69
|
let armedWalletConfig = config.walletConfig ?? null;
|
|
70
|
+
let armedAuth = config.auth;
|
|
71
|
+
let armedProvider = config.provider;
|
|
68
72
|
const cleanup = () => {
|
|
69
73
|
if (closed)
|
|
70
74
|
return;
|
|
@@ -120,12 +124,26 @@ export const openWalletTopUpPopup = (frameUrl, config) => {
|
|
|
120
124
|
buttons: config.buttons,
|
|
121
125
|
branding: config.branding,
|
|
122
126
|
strings: config.strings,
|
|
127
|
+
auth: armedAuth,
|
|
128
|
+
googlePayHandoff: config.googlePayHandoff,
|
|
129
|
+
provider: armedProvider,
|
|
123
130
|
debug: config.debug,
|
|
124
131
|
},
|
|
125
132
|
})
|
|
126
133
|
.then(() => config.onReady?.())
|
|
127
134
|
.catch((error) => config.onMountError?.(error));
|
|
128
135
|
};
|
|
136
|
+
const sendUpdate = (quote, walletConfig, auth, provider) => {
|
|
137
|
+
if (auth)
|
|
138
|
+
armedAuth = auth;
|
|
139
|
+
return request({
|
|
140
|
+
type: 'wallet-update',
|
|
141
|
+
quote,
|
|
142
|
+
config: walletConfig,
|
|
143
|
+
...(auth ? { auth } : {}),
|
|
144
|
+
...(provider ? { provider } : {}),
|
|
145
|
+
});
|
|
146
|
+
};
|
|
129
147
|
const onWindowMessage = (event) => {
|
|
130
148
|
// Provenance: our popup window + the frames origin + our channel id.
|
|
131
149
|
if (!popup || event.source !== popup)
|
|
@@ -178,7 +196,19 @@ export const openWalletTopUpPopup = (frameUrl, config) => {
|
|
|
178
196
|
attemptSettled = true;
|
|
179
197
|
settled = true;
|
|
180
198
|
// Hand the token to the host FIRST, then close — the host executes.
|
|
181
|
-
config.onToken(message.token);
|
|
199
|
+
config.onToken?.(message.token);
|
|
200
|
+
closePopup();
|
|
201
|
+
break;
|
|
202
|
+
case 'wallet-executed':
|
|
203
|
+
// Token mode: the frame executed — report, then close (no onClose).
|
|
204
|
+
settled = true;
|
|
205
|
+
config.onExecuted?.(message.result);
|
|
206
|
+
closePopup();
|
|
207
|
+
break;
|
|
208
|
+
case 'wallet-execute-failed':
|
|
209
|
+
// Token mode: report the failure, then close as an unsettled popup
|
|
210
|
+
// so hosts that only track `onClose` still leave their waiting state.
|
|
211
|
+
config.onExecuteFailed?.(message.error);
|
|
182
212
|
closePopup();
|
|
183
213
|
break;
|
|
184
214
|
default:
|
|
@@ -205,21 +235,25 @@ export const openWalletTopUpPopup = (frameUrl, config) => {
|
|
|
205
235
|
closePopup();
|
|
206
236
|
}, CLOSE_POLL_MS);
|
|
207
237
|
return {
|
|
208
|
-
arm: (quote, walletConfig) => {
|
|
238
|
+
arm: (quote, walletConfig, auth, provider) => {
|
|
239
|
+
if (provider)
|
|
240
|
+
armedProvider = provider;
|
|
209
241
|
if (closed)
|
|
210
242
|
return;
|
|
211
243
|
if (initialized) {
|
|
212
244
|
// Already armed once — behave like update (fresh estimate).
|
|
213
245
|
armedQuote = quote;
|
|
214
246
|
armedWalletConfig = walletConfig;
|
|
215
|
-
void
|
|
247
|
+
void sendUpdate(quote, walletConfig, auth).catch(() => undefined);
|
|
216
248
|
return;
|
|
217
249
|
}
|
|
218
250
|
armedQuote = quote;
|
|
219
251
|
armedWalletConfig = walletConfig;
|
|
252
|
+
if (auth)
|
|
253
|
+
armedAuth = auth;
|
|
220
254
|
sendInit();
|
|
221
255
|
},
|
|
222
|
-
update: (quote, walletConfig) =>
|
|
256
|
+
update: (quote, walletConfig, auth, provider) => sendUpdate(quote, walletConfig ?? armedWalletConfig ?? undefined, auth, provider).then(() => undefined),
|
|
223
257
|
close: closePopup,
|
|
224
258
|
};
|
|
225
259
|
};
|
package/dist/walletPopup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walletPopup.js","sourceRoot":"","sources":["../src/walletPopup.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"walletPopup.js","sourceRoot":"","sources":["../src/walletPopup.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wirexapp/card-wallet-topup-web",
|
|
3
|
-
"version": "1.1.0-beta.
|
|
3
|
+
"version": "1.1.0-beta.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Top up via Apple Pay / Google Pay inside a Wirex-served checkout iframe — review screen + wallet buttons under Wirex's merchant identity; the payment sheet's encrypted token is returned to the host, which executes the top-up. No wallet onboarding on the partner side.",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -37,6 +37,6 @@
|
|
|
37
37
|
"prepublishOnly": "yarn clean && yarn build"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@wirexapp/card-sdk-core": "1.1.0-beta.
|
|
40
|
+
"@wirexapp/card-sdk-core": "1.1.0-beta.4"
|
|
41
41
|
}
|
|
42
42
|
}
|