@alipay/ams-checkout 0.0.1783663570-dev.5 → 0.0.1784095668-dev.0

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.
@@ -1,7 +1,4 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
3
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
5
2
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6
3
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
7
4
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
@@ -14,10 +11,8 @@ import { ProductSceneEnum } from "../../types";
14
11
  import { getWebAppUrl, getWebAppV2Url } from "../utils/web_app_url_utils";
15
12
  import { ProductInfoCacheUtil } from "../utils/payment_product_utils";
16
13
  import { getWebAppVersion } from "./payment_context_utils";
17
- import { getSecurityConfigStorageKey, getSecurityHost, getSecurityScene, Security, mapEnvironment } from "../../util/security";
14
+ import { getSecurityConfigStorageKey, getSecurityHost, getSecurityScene, Security } from "../../util/security";
18
15
  import { getOrSetStorageId, safeJson } from "../../util";
19
- import { SecuritySdkRegistry } from "../../util/security-registry";
20
- import { ApdidLoader } from "../../util/jshield-apdid";
21
16
  var MAX_CLEAR_TIME = 10000;
22
17
  var PreloadHelper = /*#__PURE__*/function () {
23
18
  function PreloadHelper() {
@@ -55,128 +50,42 @@ var PreloadHelper = /*#__PURE__*/function () {
55
50
  console.error('[web-sdk] preload web app failed', error);
56
51
  }
57
52
  }
58
-
59
- /**
60
- * Preload security SDK asynchronously.
61
- * Triggers ApdidLoader.load() for async script loading and registers in SecuritySdkRegistry.
62
- */
63
53
  }, {
64
54
  key: "preloadSecuritySDK",
65
- value: (function () {
66
- var _preloadSecuritySDK = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(product) {
67
- var _this = this;
68
- var securityRegion,
69
- environment,
70
- storage,
71
- scene,
72
- h5gateway,
73
- existing,
74
- apdidEnv,
75
- loader,
76
- securitySdk,
77
- loadingPromise,
78
- _args = arguments;
79
- return _regeneratorRuntime().wrap(function _callee$(_context) {
80
- while (1) switch (_context.prev = _context.next) {
81
- case 0:
82
- securityRegion = _args.length > 1 && _args[1] !== undefined ? _args[1] : 'SG';
83
- environment = _args.length > 2 ? _args[2] : undefined;
84
- _context.prev = 2;
85
- if (!this.isSecuritySDKPreloaded) {
86
- _context.next = 6;
87
- break;
88
- }
89
- console.log('[web-sdk] security sdk is already loaded');
90
- return _context.abrupt("return");
91
- case 6:
92
- storage = PreloadHelper.getSecurityConfigStorage(product);
93
- scene = storage.scene || getSecurityScene(product);
94
- console.log('getSecurityScene', scene);
95
- h5gateway = storage.h5gateway || getSecurityHost(securityRegion);
96
- console.log('preloadSecuritySDK', scene);
97
-
98
- // Check if already in registry
99
- if (!SecuritySdkRegistry.isReady(scene)) {
100
- _context.next = 15;
101
- break;
102
- }
103
- console.log('[web-sdk] security sdk already ready in registry');
104
- this.isSecuritySDKPreloaded = true;
105
- return _context.abrupt("return");
106
- case 15:
107
- if (!SecuritySdkRegistry.isLoading(scene)) {
108
- _context.next = 30;
109
- break;
110
- }
111
- console.log('[web-sdk] security sdk is already loading, waiting...');
112
- existing = SecuritySdkRegistry.get(scene);
113
- if (!(existing && existing.status === 'loading')) {
114
- _context.next = 29;
115
- break;
116
- }
117
- _context.prev = 19;
118
- _context.next = 22;
119
- return existing.loadingPromise;
120
- case 22:
121
- this.isSecuritySDKPreloaded = true;
122
- console.log('[web-sdk] preload security sdk succeed (waited for existing load)');
123
- _context.next = 29;
124
- break;
125
- case 26:
126
- _context.prev = 26;
127
- _context.t0 = _context["catch"](19);
128
- console.error('[web-sdk] preload security sdk failed (existing load failed)');
129
- case 29:
130
- return _context.abrupt("return");
131
- case 30:
132
- // 非阻塞调度 ApdidLoader 加载,preload 立即返回,不阻塞主流程
133
- // Security 内部的 ensureApdidLoaded() 会在需要 token 时按需等待加载完成
134
- apdidEnv = mapEnvironment(environment);
135
- loader = ApdidLoader.getInstance();
136
- loader.scheduleLoad({
137
- environment: apdidEnv
138
- });
139
-
140
- // Create Security instance and register in registry
141
- securitySdk = new Security({
142
- scene: scene,
143
- h5gateway: h5gateway,
144
- environment: environment
145
- });
146
- loadingPromise = new Promise(function (resolveLoading, rejectLoading) {
147
- securitySdk.initSecurity(function () {
148
- SecuritySdkRegistry.setReady(scene, securitySdk);
149
- _this.isSecuritySDKPreloaded = true;
150
- console.log('[web-sdk] preload security sdk succeed');
151
- resolveLoading(securitySdk);
152
- }, function () {
153
- SecuritySdkRegistry.setFailed(scene, new Error('Preload security sdk init failed'));
154
- console.error('[web-sdk] preload security sdk failed');
155
- rejectLoading(new Error('Preload security sdk init failed'));
156
- });
157
- });
158
- SecuritySdkRegistry.setLoading(scene, loadingPromise);
159
- _context.next = 41;
160
- break;
161
- case 38:
162
- _context.prev = 38;
163
- _context.t1 = _context["catch"](2);
164
- console.error('[web-sdk] preload security sdk failed', _context.t1);
165
- case 41:
166
- case "end":
167
- return _context.stop();
168
- }
169
- }, _callee, this, [[2, 38], [19, 26]]);
170
- }));
171
- function preloadSecuritySDK(_x) {
172
- return _preloadSecuritySDK.apply(this, arguments);
55
+ value: function preloadSecuritySDK(product) {
56
+ var _this = this;
57
+ var securityRegion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'SG';
58
+ try {
59
+ if (this.isSecuritySDKPreloaded) {
60
+ console.log('[web-sdk] security sdk is already loaded');
61
+ return;
62
+ }
63
+ var storage = PreloadHelper.getSecurityConfigStorage(product);
64
+ var scene = storage.scene || getSecurityScene(product);
65
+ console.log('getSecurityScene', scene);
66
+ var h5gateway = storage.h5gateway || getSecurityHost(securityRegion);
67
+ console.log('preloadSecuritySDK', scene);
68
+ var securitySdk = new Security({
69
+ scene: scene,
70
+ h5gateway: h5gateway
71
+ });
72
+ securitySdk.initSecurity(function () {
73
+ console.log(_this.securitySdkMap, 'this.securitySdkMap');
74
+ _this.securitySdkMap.set(scene, securitySdk);
75
+ _this.isSecuritySDKPreloaded = true;
76
+ console.log('[web-sdk] preload security sdk succeed');
77
+ }, function () {
78
+ console.error('[web-sdk] preload security sdk failed');
79
+ });
80
+ } catch (error) {
81
+ console.error('[web-sdk] preload security sdk failed', error);
173
82
  }
174
- return preloadSecuritySDK;
175
- }())
83
+ }
176
84
  }, {
177
85
  key: "getSecuritySdk",
178
86
  value: function getSecuritySdk(scene) {
179
- return SecuritySdkRegistry.getReadyInstance(scene);
87
+ var result = this.securitySdkMap.get(scene);
88
+ return result;
180
89
  }
181
90
  }, {
182
91
  key: "buildWebAppPreloadUrl",
@@ -234,4 +143,5 @@ var PreloadHelper = /*#__PURE__*/function () {
234
143
  }();
235
144
  _defineProperty(PreloadHelper, "isWebAppPreloaded", false);
236
145
  _defineProperty(PreloadHelper, "isSecuritySDKPreloaded", false);
146
+ _defineProperty(PreloadHelper, "securitySdkMap", new Map());
237
147
  export { PreloadHelper as default };
package/esm/main.js CHANGED
@@ -77,7 +77,7 @@ export var AMSAutoDebitPay = /*#__PURE__*/function (_AMSCheckout) {
77
77
  environment: 'prod'
78
78
  };
79
79
  PreloadHelper.preloadWebApp(ProductSceneEnum.AUTO_DEBIT_PAY, PaymentMethodCategoryTypeEnum.WALLET, options.environment);
80
- PreloadHelper.preloadSecuritySDK(ProductSceneEnum.AUTO_DEBIT_PAY, options.securityRegion, options.environment);
80
+ PreloadHelper.preloadSecuritySDK(ProductSceneEnum.AUTO_DEBIT_PAY, options.securityRegion);
81
81
  }
82
82
  }]);
83
83
  return AMSAutoDebitPay;
@@ -164,7 +164,7 @@ export var AMSCashierPayment = /*#__PURE__*/function (_AMSCheckout2) {
164
164
  } catch (error) {
165
165
  console.error('[web-sdk] preload web app error', error);
166
166
  }
167
- PreloadHelper.preloadSecuritySDK(ProductSceneEnum.CASHIER_PAYMENT, options.securityRegion, options.environment);
167
+ PreloadHelper.preloadSecuritySDK(ProductSceneEnum.CASHIER_PAYMENT, options.securityRegion);
168
168
  }
169
169
  }]);
170
170
  return AMSCashierPayment;
@@ -188,7 +188,7 @@ export var AMSVaulting = /*#__PURE__*/function (_AMSCheckout3) {
188
188
  environment: 'prod'
189
189
  };
190
190
  PreloadHelper.preloadWebApp(ProductSceneEnum.CASHIER_PAYMENT, PaymentMethodCategoryTypeEnum.CARD, options.environment);
191
- PreloadHelper.preloadSecuritySDK(ProductSceneEnum.VAULTING, options.securityRegion, options.environment);
191
+ PreloadHelper.preloadSecuritySDK(ProductSceneEnum.VAULTING, options.securityRegion);
192
192
  }
193
193
  }]);
194
194
  return AMSVaulting;
@@ -336,7 +336,7 @@ export var AMSAutoDebit = /*#__PURE__*/function () {
336
336
  environment: 'prod'
337
337
  };
338
338
  PreloadHelper.preloadWebApp(ProductSceneEnum.AUTO_DEBIT, PaymentMethodCategoryTypeEnum.WALLET, options.environment);
339
- PreloadHelper.preloadSecuritySDK(ProductSceneEnum.AUTO_DEBIT, options.securityRegion, options.environment);
339
+ PreloadHelper.preloadSecuritySDK(ProductSceneEnum.AUTO_DEBIT, options.securityRegion);
340
340
  }
341
341
  }]);
342
342
  return AMSAutoDebit;
@@ -15,7 +15,7 @@ import { createLoader } from '@antglobal/create-sdk-loader';
15
15
 
16
16
  import { stageName } from "./stageName";
17
17
  var SDKURL = {
18
- DEV: "https://sdk-dev.marmot-cloud.com/package/ams-checkout/".concat("dev-1783663570", "/ams-checkout.js"),
18
+ DEV: "https://sdk-dev.marmot-cloud.com/package/ams-checkout/".concat("dev-1784095668", "/ams-checkout.js"),
19
19
  LOCAL: "http://localhost:3000/ams-checkout.min.js",
20
20
  PROD: 'https://js.antom.com/v2/ams-checkout.js'
21
21
  };
@@ -32,7 +32,7 @@ export declare class ApplePaySdk {
32
32
  */
33
33
  private paymentStatus;
34
34
  /**
35
- * @description oncancel 原因标记,用于区分用户主动取消 vs 商户通过 onBeforeConfirm 中止/超时
35
+ * @description oncancel 原因标记,用于区分用户主动取消 vs 商户通过 onBeforeConfirm 中止
36
36
  */
37
37
  private cancelReason;
38
38
  private logger;
@@ -40,7 +40,7 @@ export declare class ApplePaySdk {
40
40
  private shipping?;
41
41
  private merchantAmount;
42
42
  private merchantCurrency;
43
- private onBeforeConfirm;
43
+ private onBeforeConfirm?;
44
44
  constructor({ paymentSessionData, parseData, logger, env, shipping, merchantAmount, merchantCurrency, }: {
45
45
  paymentSessionData: string;
46
46
  parseData: IPaymentSessionMetaData;
@@ -17,7 +17,7 @@ import { getDoubleFaUrlFromSession } from "../../foundation/utils/web_app_url_ut
17
17
  import { getApplePayPaymentSession, submitPayInfo } from "../../service";
18
18
  import { EnvironmentEnum } from "../../types";
19
19
  import { device, isEmpty } from "../../util";
20
- import { executeWithTimeout, BEFORE_CONFIRM_TIMEOUT_MS, MERCHANT_CONFIRM_ABORT_CODE, MERCHANT_CONFIRM_TIMEOUT_CODE } from "../../util/beforeConfirm";
20
+ import { executeWithTimeout, BEFORE_CONFIRM_TIMEOUT_MS } from "../../util/beforeConfirm";
21
21
  import { APPLE_PAY_RECURRING_VERSION, APPLE_PAY_VERSION } from "../applepay/interface";
22
22
  var APPLEPAYERRORENUM = /*#__PURE__*/function (APPLEPAYERRORENUM) {
23
23
  APPLEPAYERRORENUM["APPLE_PAY_MISSING_DATA"] = "APPLE_PAY_MISSING_DATA";
@@ -155,7 +155,7 @@ export var ApplePaySdk = /*#__PURE__*/function () {
155
155
  */
156
156
  _defineProperty(this, "paymentStatus", void 0);
157
157
  /**
158
- * @description oncancel 原因标记,用于区分用户主动取消 vs 商户通过 onBeforeConfirm 中止/超时
158
+ * @description oncancel 原因标记,用于区分用户主动取消 vs 商户通过 onBeforeConfirm 中止
159
159
  */
160
160
  _defineProperty(this, "cancelReason", null);
161
161
  _defineProperty(this, "logger", void 0);
@@ -163,7 +163,7 @@ export var ApplePaySdk = /*#__PURE__*/function () {
163
163
  _defineProperty(this, "shipping", void 0);
164
164
  _defineProperty(this, "merchantAmount", void 0);
165
165
  _defineProperty(this, "merchantCurrency", void 0);
166
- _defineProperty(this, "onBeforeConfirm", null);
166
+ _defineProperty(this, "onBeforeConfirm", void 0);
167
167
  this.paymentSessionData = paymentSessionData;
168
168
  this.parseData = parseData;
169
169
  this.env = env;
@@ -213,7 +213,6 @@ export var ApplePaySdk = /*#__PURE__*/function () {
213
213
  try {
214
214
  if (!_this.session) return;
215
215
  _this.paymentStatus = PAYMENT_STATUS.PENDING;
216
- _this.cancelReason = 'USER_CANCEL';
217
216
  _this.session.onvalidatemerchant = /*#__PURE__*/function () {
218
217
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(event) {
219
218
  var requestParams, res, merchantSession, _this$logger, _this$logger2;
@@ -283,7 +282,7 @@ export var ApplePaySdk = /*#__PURE__*/function () {
283
282
  }();
284
283
  _this.session.onpaymentauthorized = /*#__PURE__*/function () {
285
284
  var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(event) {
286
- var exception, _event$payment, token, billingContact, shippingContact, _this$parseData, obj, _this$parseData$payme, requiredBillingContactFields, requiredShippingContactFields, _this$logger3, _this$logger4, _this$logger6, startTime, _yield$executeWithTim, rawResult, timedOut, shouldContinue, isTimeout, _this$logger5, _this$session2, _this$session2$comple, _this$logger7, _this$session3, _this$session3$comple, res, _this$logger8;
285
+ var exception, _event$payment, token, billingContact, shippingContact, _this$parseData, obj, _this$parseData$payme, requiredBillingContactFields, requiredShippingContactFields, _this$logger3, _this$logger4, _this$logger6, startTime, _yield$executeWithTim, rawResult, timedOut, shouldContinue, _this$logger5, _this$session2, _this$session2$comple, _this$logger7, _this$session3, _this$session3$comple, res, _this$logger8;
287
286
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
288
287
  while (1) switch (_context3.prev = _context3.next) {
289
288
  case 0:
@@ -324,25 +323,26 @@ export var ApplePaySdk = /*#__PURE__*/function () {
324
323
  _context3.next = 39;
325
324
  break;
326
325
  case 11:
326
+ // 清空回原始状态
327
+ _this.cancelReason = 'USER_CANCEL';
327
328
  (_this$logger4 = _this.logger) === null || _this$logger4 === void 0 || _this$logger4.logInfo({
328
329
  title: 'sdk_before_confirm_start'
329
330
  }, {
330
331
  paymentMethodType: 'APPLEPAY',
331
332
  path: 'applePay_chrome_sdk'
332
333
  });
333
- _context3.prev = 12;
334
+ _context3.prev = 13;
334
335
  startTime = Date.now();
335
- _context3.next = 16;
336
+ _context3.next = 17;
336
337
  return executeWithTimeout(function () {
337
338
  return _this.onBeforeConfirm();
338
339
  });
339
- case 16:
340
+ case 17:
340
341
  _yield$executeWithTim = _context3.sent;
341
342
  rawResult = _yield$executeWithTim.result;
342
343
  timedOut = _yield$executeWithTim.timedOut;
343
344
  shouldContinue = rawResult;
344
- isTimeout = timedOut || Date.now() - startTime >= BEFORE_CONFIRM_TIMEOUT_MS;
345
- if (isTimeout) {
345
+ if (timedOut || Date.now() - startTime >= BEFORE_CONFIRM_TIMEOUT_MS) {
346
346
  (_this$logger5 = _this.logger) === null || _this$logger5 === void 0 || _this$logger5.logError({
347
347
  title: 'sdk_before_confirm_timeout'
348
348
  });
@@ -357,11 +357,11 @@ export var ApplePaySdk = /*#__PURE__*/function () {
357
357
  _context3.next = 29;
358
358
  break;
359
359
  }
360
- _this.cancelReason = isTimeout ? 'MERCHANT_TIMEOUT' : 'MERCHANT_ABORT';
360
+ _this.cancelReason = 'MERCHANT_ABORT';
361
361
  (_this$session2 = _this.session) === null || _this$session2 === void 0 || (_this$session2$comple = _this$session2.completePayment) === null || _this$session2$comple === void 0 || _this$session2$comple.call(_this$session2, window.ApplePaySession.STATUS_FAILURE);
362
362
  _this.abortSession();
363
363
  reject({
364
- errorCode: isTimeout ? MERCHANT_CONFIRM_TIMEOUT_CODE : MERCHANT_CONFIRM_ABORT_CODE
364
+ errorCode: 'MERCHANT_CONFIRM_ABORT'
365
365
  });
366
366
  return _context3.abrupt("return");
367
367
  case 29:
@@ -369,7 +369,7 @@ export var ApplePaySdk = /*#__PURE__*/function () {
369
369
  break;
370
370
  case 31:
371
371
  _context3.prev = 31;
372
- _context3.t0 = _context3["catch"](12);
372
+ _context3.t0 = _context3["catch"](13);
373
373
  (_this$logger7 = _this.logger) === null || _this$logger7 === void 0 || _this$logger7.logError({
374
374
  title: 'sdk_before_confirm_error'
375
375
  }, {
@@ -381,7 +381,7 @@ export var ApplePaySdk = /*#__PURE__*/function () {
381
381
  (_this$session3 = _this.session) === null || _this$session3 === void 0 || (_this$session3$comple = _this$session3.completePayment) === null || _this$session3$comple === void 0 || _this$session3$comple.call(_this$session3, window.ApplePaySession.STATUS_FAILURE);
382
382
  _this.abortSession();
383
383
  reject({
384
- errorCode: MERCHANT_CONFIRM_ABORT_CODE
384
+ errorCode: 'MERCHANT_CONFIRM_ABORT'
385
385
  });
386
386
  return _context3.abrupt("return");
387
387
  case 39:
@@ -402,7 +402,7 @@ export var ApplePaySdk = /*#__PURE__*/function () {
402
402
  case "end":
403
403
  return _context3.stop();
404
404
  }
405
- }, _callee3, null, [[12, 31]]);
405
+ }, _callee3, null, [[13, 31]]);
406
406
  }));
407
407
  return function (_x2) {
408
408
  return _ref3.apply(this, arguments);
@@ -420,10 +420,10 @@ export var ApplePaySdk = /*#__PURE__*/function () {
420
420
  title: 'a3753.b103030.c386485.d507498'
421
421
  });
422
422
  }
423
- // cancelReason 标识 onBeforeConfirm 主动中止/超时;其他情况视为用户主动取消付款界面
424
- var merchantCancelErrorCode = _this.cancelReason === 'MERCHANT_TIMEOUT' ? MERCHANT_CONFIRM_TIMEOUT_CODE : MERCHANT_CONFIRM_ABORT_CODE;
423
+ // cancelReason === 'MERCHANT_ABORT': onBeforeConfirm 返回 false 或异常,由商户主动中止
424
+ // 其他:用户主动取消付款界面
425
425
  reject({
426
- errorCode: _this.cancelReason === 'MERCHANT_ABORT' || _this.cancelReason === 'MERCHANT_TIMEOUT' ? merchantCancelErrorCode : APPLEPAYERRORENUM.APPLE_PAY_CANCEL
426
+ errorCode: _this.cancelReason === 'MERCHANT_ABORT' ? 'MERCHANT_CONFIRM_ABORT' : APPLEPAYERRORENUM.APPLE_PAY_CANCEL
427
427
  });
428
428
  };
429
429
  _this.session.begin();
@@ -156,28 +156,24 @@ var ComponentApp = /*#__PURE__*/function () {
156
156
  var securitySDK = this.AMSSDK._getSecuritySDKByProductScene({
157
157
  product: product
158
158
  });
159
- if (securitySDK) {
160
- // Already ready
161
- return;
162
- }
163
-
164
- // Use _newSecuritySDKByScene which handles loading/ready/failed states internally
165
- this.AMSSDK.logger.logInfo({
166
- title: 'sdk_event_securitySdkInit'
167
- });
168
- this.AMSSDK._newSecuritySDKByScene({
169
- product: product
170
- }, function () {
171
- _this.AMSSDK.logger.logInfo({
172
- title: 'sdk_event_securitySdkInitSuccess'
159
+ if (!securitySDK) {
160
+ this.AMSSDK.logger.logInfo({
161
+ title: 'sdk_event_securitySdkInit'
173
162
  });
174
- }, function () {
175
- _this.AMSSDK.logger.logError({
176
- title: 'sdk_error_securitySdkInitFailed'
177
- }, {
178
- sign: 'SDK internal initialization'
163
+ this.AMSSDK._newSecuritySDKByScene({
164
+ product: product
165
+ }, function () {
166
+ _this.AMSSDK.logger.logInfo({
167
+ title: 'sdk_event_securitySdkInitSuccess'
168
+ });
169
+ }, function () {
170
+ _this.AMSSDK.logger.logError({
171
+ title: 'sdk_error_securitySdkInitFailed'
172
+ }, {
173
+ sign: 'SDK internal initialization'
174
+ });
179
175
  });
180
- });
176
+ }
181
177
  }
182
178
  }, {
183
179
  key: "logDeviceId",
@@ -212,39 +208,36 @@ var ComponentApp = /*#__PURE__*/function () {
212
208
  while (1) switch (_context.prev = _context.next) {
213
209
  case 0:
214
210
  productScene = (_this2$_renderParams = _this2._renderParams) === null || _this2$_renderParams === void 0 || (_this2$_renderParams = _this2$_renderParams.paymentSessionMetaData) === null || _this2$_renderParams === void 0 || (_this2$_renderParams = _this2$_renderParams.paymentSessionConfig) === null || _this2$_renderParams === void 0 ? void 0 : _this2$_renderParams.productScene;
215
- getDeviceIdStartTime = Date.now(); // Use async version to handle loading state
216
- _context.next = 4;
217
- return _this2.AMSSDK._awaitSecuritySDKByProductScene({
211
+ getDeviceIdStartTime = Date.now();
212
+ securitySDK = _this2.AMSSDK._getSecuritySDKByProductScene({
218
213
  product: (deviceIdParameter === null || deviceIdParameter === void 0 ? void 0 : deviceIdParameter.productScene) || productScene
219
214
  });
220
- case 4:
221
- securitySDK = _context.sent;
222
215
  deviceId = '';
223
216
  if (!securitySDK) {
224
- _context.next = 18;
217
+ _context.next = 16;
225
218
  break;
226
219
  }
227
220
  if (!(isPolling && parseInt(deviceIdParameter === null || deviceIdParameter === void 0 ? void 0 : deviceIdParameter.tokenCollectTime) > 0)) {
228
- _context.next = 13;
221
+ _context.next = 11;
229
222
  break;
230
223
  }
231
- _context.next = 10;
224
+ _context.next = 8;
232
225
  return securitySDK.pollingGetApdidToken(deviceIdParameter);
233
- case 10:
226
+ case 8:
234
227
  _context.t0 = _context.sent;
235
- _context.next = 16;
228
+ _context.next = 14;
236
229
  break;
237
- case 13:
238
- _context.next = 15;
230
+ case 11:
231
+ _context.next = 13;
239
232
  return securitySDK.getApdidToken();
240
- case 15:
233
+ case 13:
241
234
  _context.t0 = _context.sent;
242
- case 16:
235
+ case 14:
243
236
  deviceId = _context.t0;
244
237
  _this2.logDeviceId(deviceId, getDeviceIdStartTime);
245
- case 18:
238
+ case 16:
246
239
  resolve(deviceId);
247
- case 19:
240
+ case 17:
248
241
  case "end":
249
242
  return _context.stop();
250
243
  }
@@ -1,11 +1,9 @@
1
- export declare const BEFORE_CONFIRM_TIMEOUT_MS = 20000;
2
- export declare const MERCHANT_CONFIRM_ABORT_CODE = "MERCHANT_CONFIRM_ABORT";
3
- export declare const MERCHANT_CONFIRM_TIMEOUT_CODE = "MERCHANT_CONFIRM_TIMEOUT";
1
+ export declare const BEFORE_CONFIRM_TIMEOUT_MS = 15000;
4
2
  /**
5
3
  * 带超时的异步执行,始终清理定时器避免 unhandled promise rejection。
6
4
  *
7
5
  * @param fn - 要执行的异步函数
8
- * @param timeoutMs - 超时时间(毫秒),默认 20000
6
+ * @param timeoutMs - 超时时间(毫秒),默认 15000
9
7
  * @returns result 为 fn 的返回值(超时时为 undefined),timedOut 表示是否因超时返回
10
8
  */
11
9
  export declare function executeWithTimeout<T>(fn: () => Promise<T>, timeoutMs?: number): Promise<{
@@ -2,16 +2,13 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
2
2
  function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
3
3
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4
4
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
5
- export var BEFORE_CONFIRM_TIMEOUT_MS = 20000;
6
- export var MERCHANT_CONFIRM_ABORT_CODE = 'MERCHANT_CONFIRM_ABORT';
7
- export var MERCHANT_CONFIRM_TIMEOUT_CODE = 'MERCHANT_CONFIRM_TIMEOUT';
8
- var BEFORE_CONFIRM_TIMEOUT_SIGNAL = Symbol('BEFORE_CONFIRM_TIMEOUT');
5
+ export var BEFORE_CONFIRM_TIMEOUT_MS = 15000;
9
6
 
10
7
  /**
11
8
  * 带超时的异步执行,始终清理定时器避免 unhandled promise rejection。
12
- *
9
+ *
13
10
  * @param fn - 要执行的异步函数
14
- * @param timeoutMs - 超时时间(毫秒),默认 20000
11
+ * @param timeoutMs - 超时时间(毫秒),默认 15000
15
12
  * @returns result 为 fn 的返回值(超时时为 undefined),timedOut 表示是否因超时返回
16
13
  */
17
14
  export function executeWithTimeout(_x) {
@@ -23,6 +20,7 @@ function _executeWithTimeout() {
23
20
  timerId,
24
21
  timeoutPromise,
25
22
  result,
23
+ isTimeout,
26
24
  _args = arguments;
27
25
  return _regeneratorRuntime().wrap(function _callee$(_context) {
28
26
  while (1) switch (_context.prev = _context.next) {
@@ -30,7 +28,7 @@ function _executeWithTimeout() {
30
28
  timeoutMs = _args.length > 1 && _args[1] !== undefined ? _args[1] : BEFORE_CONFIRM_TIMEOUT_MS;
31
29
  timeoutPromise = new Promise(function (_, reject) {
32
30
  timerId = setTimeout(function () {
33
- return reject(BEFORE_CONFIRM_TIMEOUT_SIGNAL);
31
+ return reject(new Error('timed out'));
34
32
  }, timeoutMs);
35
33
  });
36
34
  _context.prev = 2;
@@ -45,25 +43,26 @@ function _executeWithTimeout() {
45
43
  case 9:
46
44
  _context.prev = 9;
47
45
  _context.t0 = _context["catch"](2);
48
- if (!(_context.t0 === BEFORE_CONFIRM_TIMEOUT_SIGNAL)) {
49
- _context.next = 13;
46
+ isTimeout = _context.t0 instanceof Error && _context.t0.message === 'timed out';
47
+ if (!isTimeout) {
48
+ _context.next = 14;
50
49
  break;
51
50
  }
52
51
  return _context.abrupt("return", {
53
52
  result: undefined,
54
53
  timedOut: true
55
54
  });
56
- case 13:
57
- throw _context.t0;
58
55
  case 14:
59
- _context.prev = 14;
56
+ throw _context.t0;
57
+ case 15:
58
+ _context.prev = 15;
60
59
  clearTimeout(timerId);
61
- return _context.finish(14);
62
- case 17:
60
+ return _context.finish(15);
61
+ case 18:
63
62
  case "end":
64
63
  return _context.stop();
65
64
  }
66
- }, _callee, null, [[2, 9, 14, 17]]);
65
+ }, _callee, null, [[2, 9, 15, 18]]);
67
66
  }));
68
67
  return _executeWithTimeout.apply(this, arguments);
69
68
  }
@@ -1,5 +1,4 @@
1
1
  import { IsecurityConfig, ProductSceneEnum, DeviceIdParameter } from '../types';
2
- import type { ApdidEnvironment } from './jshield-apdid';
3
2
  export declare const getSecurityConfigStorageKey: (scene: ProductSceneEnum) => string;
4
3
  export declare enum SecurityRegionEnum {
5
4
  SG = "SG",
@@ -24,30 +23,10 @@ export declare const sceneMap: {
24
23
  };
25
24
  export declare const getSecurityHost: (region: string) => string;
26
25
  export declare const getSecurityScene: (product: string) => string;
27
- /**
28
- * Map SDK environment string to ApdidEnvironment for CDN URL selection.
29
- */
30
- export declare const mapEnvironment: (env?: string) => ApdidEnvironment;
31
26
  export declare class Security {
32
27
  scene: string;
33
28
  h5gateway: string;
34
- private environment?;
35
- private apdidLoaded;
36
- private apdidLoadFailed;
37
- constructor(options: IsecurityConfig & {
38
- environment?: string;
39
- });
40
- /**
41
- * Ensure the apdid-core script is loaded async.
42
- * Returns true if loaded successfully, false otherwise.
43
- * On failure, sets apdidLoadFailed flag for graceful degradation.
44
- */
45
- private ensureApdidLoaded;
46
- /**
47
- * Get the APDID module from the loader.
48
- * Returns undefined if not loaded.
49
- */
50
- private getAPDIDModule;
29
+ constructor(options: IsecurityConfig);
51
30
  initSecurity(successCallback: any, failCallback: any): void;
52
31
  private initToken;
53
32
  pollingGetApdidToken(config?: DeviceIdParameter): Promise<string>;