@alipay/ams-checkout 2.0.17 → 2.0.18
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/ams-checkout.js +3 -3
- package/dist/ams-checkout.min.js +1 -1
- package/esm/constant/index.d.ts +3 -0
- package/esm/constant/index.js +4 -0
- package/esm/core/component/element/elementController/index.d.ts +2 -0
- package/esm/core/component/element/elementController/index.js +163 -24
- package/esm/core/component/element/elementProcessor/paymentProcessor.d.ts +10 -0
- package/esm/core/component/element/elementProcessor/paymentProcessor.js +152 -36
- package/esm/core/component/element/type.d.ts +20 -0
- package/esm/modern/index.js +1 -1
- package/esm/plugin/component/channel.d.ts +12 -1
- package/esm/plugin/component/channel.js +132 -27
- package/esm/tsdoc-metadata.json +1 -1
- package/esm/types/index.d.ts +2 -7
- package/esm/util/beforeConfirm.d.ts +12 -0
- package/esm/util/beforeConfirm.js +68 -0
- package/esm/util/spm-map.d.ts +6 -0
- package/esm/util/spm-map.js +7 -1
- package/package.json +1 -1
- package/types.d.ts +3 -1
- package/types.untrimmed.d.ts +3 -1
package/esm/modern/index.js
CHANGED
|
@@ -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("2.0.
|
|
18
|
+
DEV: "https://sdk-dev.marmot-cloud.com/package/ams-checkout/".concat("2.0.18", "/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
|
};
|
|
@@ -31,16 +31,27 @@ export declare class ApplePaySdk {
|
|
|
31
31
|
* @description 支付状态,pending:支付中,normal:正常
|
|
32
32
|
*/
|
|
33
33
|
private paymentStatus;
|
|
34
|
+
/**
|
|
35
|
+
* @description oncancel 原因标记,用于区分用户主动取消 vs 商户通过 onBeforeConfirm 中止
|
|
36
|
+
*/
|
|
37
|
+
private cancelReason;
|
|
34
38
|
private logger;
|
|
35
39
|
private env;
|
|
36
40
|
private shipping?;
|
|
37
|
-
|
|
41
|
+
private merchantAmount;
|
|
42
|
+
private merchantCurrency;
|
|
43
|
+
private onBeforeConfirm?;
|
|
44
|
+
constructor({ paymentSessionData, parseData, logger, env, shipping, merchantAmount, merchantCurrency, }: {
|
|
38
45
|
paymentSessionData: string;
|
|
39
46
|
parseData: IPaymentSessionMetaData;
|
|
40
47
|
logger: Logger;
|
|
41
48
|
env?: string;
|
|
42
49
|
shipping?: CKPShipping;
|
|
50
|
+
merchantAmount?: string | null;
|
|
51
|
+
merchantCurrency?: string | null;
|
|
43
52
|
});
|
|
53
|
+
/** 设置商户 onBeforeConfirm 回调(展码链路使用) */
|
|
54
|
+
setOnBeforeConfirm(callback: (() => Promise<boolean>) | null): void;
|
|
44
55
|
startPay(): Promise<unknown>;
|
|
45
56
|
begin(): Promise<unknown>;
|
|
46
57
|
private submitPay;
|
|
@@ -1,4 +1,6 @@
|
|
|
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 ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
2
4
|
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
5
|
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
6
|
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); }); }; }
|
|
@@ -15,6 +17,7 @@ import { getDoubleFaUrlFromSession } from "../../foundation/utils/web_app_url_ut
|
|
|
15
17
|
import { getApplePayPaymentSession, submitPayInfo } from "../../service";
|
|
16
18
|
import { EnvironmentEnum } from "../../types";
|
|
17
19
|
import { device, isEmpty } from "../../util";
|
|
20
|
+
import { executeWithTimeout, BEFORE_CONFIRM_TIMEOUT_MS } from "../../util/beforeConfirm";
|
|
18
21
|
import { APPLE_PAY_RECURRING_VERSION, APPLE_PAY_VERSION } from "../applepay/interface";
|
|
19
22
|
var APPLEPAYERRORENUM = /*#__PURE__*/function (APPLEPAYERRORENUM) {
|
|
20
23
|
APPLEPAYERRORENUM["APPLE_PAY_MISSING_DATA"] = "APPLE_PAY_MISSING_DATA";
|
|
@@ -137,7 +140,11 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
137
140
|
logger = _ref.logger,
|
|
138
141
|
_ref$env = _ref.env,
|
|
139
142
|
env = _ref$env === void 0 ? EnvironmentEnum.prod : _ref$env,
|
|
140
|
-
shipping = _ref.shipping
|
|
143
|
+
shipping = _ref.shipping,
|
|
144
|
+
_ref$merchantAmount = _ref.merchantAmount,
|
|
145
|
+
merchantAmount = _ref$merchantAmount === void 0 ? null : _ref$merchantAmount,
|
|
146
|
+
_ref$merchantCurrency = _ref.merchantCurrency,
|
|
147
|
+
merchantCurrency = _ref$merchantCurrency === void 0 ? null : _ref$merchantCurrency;
|
|
141
148
|
_classCallCheck(this, ApplePaySdk);
|
|
142
149
|
_defineProperty(this, "APPLESDKURL", 'https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js');
|
|
143
150
|
_defineProperty(this, "session", null);
|
|
@@ -147,16 +154,31 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
147
154
|
* @description 支付状态,pending:支付中,normal:正常
|
|
148
155
|
*/
|
|
149
156
|
_defineProperty(this, "paymentStatus", void 0);
|
|
157
|
+
/**
|
|
158
|
+
* @description oncancel 原因标记,用于区分用户主动取消 vs 商户通过 onBeforeConfirm 中止
|
|
159
|
+
*/
|
|
160
|
+
_defineProperty(this, "cancelReason", null);
|
|
150
161
|
_defineProperty(this, "logger", void 0);
|
|
151
162
|
_defineProperty(this, "env", void 0);
|
|
152
163
|
_defineProperty(this, "shipping", void 0);
|
|
164
|
+
_defineProperty(this, "merchantAmount", void 0);
|
|
165
|
+
_defineProperty(this, "merchantCurrency", void 0);
|
|
166
|
+
_defineProperty(this, "onBeforeConfirm", void 0);
|
|
153
167
|
this.paymentSessionData = paymentSessionData;
|
|
154
168
|
this.parseData = parseData;
|
|
155
169
|
this.env = env;
|
|
156
170
|
this.logger = logger;
|
|
157
171
|
this.shipping = shipping;
|
|
172
|
+
this.merchantAmount = merchantAmount;
|
|
173
|
+
this.merchantCurrency = merchantCurrency;
|
|
158
174
|
}
|
|
175
|
+
/** 设置商户 onBeforeConfirm 回调(展码链路使用) */
|
|
159
176
|
_createClass(ApplePaySdk, [{
|
|
177
|
+
key: "setOnBeforeConfirm",
|
|
178
|
+
value: function setOnBeforeConfirm(callback) {
|
|
179
|
+
this.onBeforeConfirm = callback;
|
|
180
|
+
}
|
|
181
|
+
}, {
|
|
160
182
|
key: "startPay",
|
|
161
183
|
value: function () {
|
|
162
184
|
var _startPay = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
@@ -260,7 +282,7 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
260
282
|
}();
|
|
261
283
|
_this.session.onpaymentauthorized = /*#__PURE__*/function () {
|
|
262
284
|
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(event) {
|
|
263
|
-
var exception, _event$payment, token, billingContact, shippingContact, _this$parseData, obj, _this$parseData$payme, requiredBillingContactFields, requiredShippingContactFields, res, _this$
|
|
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;
|
|
264
286
|
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
265
287
|
while (1) switch (_context3.prev = _context3.next) {
|
|
266
288
|
case 0:
|
|
@@ -274,7 +296,7 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
274
296
|
};
|
|
275
297
|
_event$payment = event === null || event === void 0 ? void 0 : event.payment, token = _event$payment.token, billingContact = _event$payment.billingContact, shippingContact = _event$payment.shippingContact;
|
|
276
298
|
if (!token) {
|
|
277
|
-
_context3.next =
|
|
299
|
+
_context3.next = 46;
|
|
278
300
|
break;
|
|
279
301
|
}
|
|
280
302
|
obj = {
|
|
@@ -287,24 +309,100 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
287
309
|
if (!isEmpty(requiredShippingContactFields) && shippingContact) {
|
|
288
310
|
obj['applePayShippingContact'] = JSON.stringify(shippingContact);
|
|
289
311
|
}
|
|
290
|
-
|
|
312
|
+
// Chrome 展码链路:在 submitPay 之前调用商户的 onBeforeConfirm 回调,与 Safari 链路对齐
|
|
313
|
+
if (_this.onBeforeConfirm) {
|
|
314
|
+
_context3.next = 11;
|
|
315
|
+
break;
|
|
316
|
+
}
|
|
317
|
+
(_this$logger3 = _this.logger) === null || _this$logger3 === void 0 || _this$logger3.logInfo({
|
|
318
|
+
title: 'sdk_before_confirm_skip'
|
|
319
|
+
}, {
|
|
320
|
+
paymentMethodType: 'APPLEPAY',
|
|
321
|
+
path: 'applePay_chrome_sdk'
|
|
322
|
+
});
|
|
323
|
+
_context3.next = 39;
|
|
324
|
+
break;
|
|
325
|
+
case 11:
|
|
326
|
+
// 清空回原始状态
|
|
327
|
+
_this.cancelReason = 'USER_CANCEL';
|
|
328
|
+
(_this$logger4 = _this.logger) === null || _this$logger4 === void 0 || _this$logger4.logInfo({
|
|
329
|
+
title: 'sdk_before_confirm_start'
|
|
330
|
+
}, {
|
|
331
|
+
paymentMethodType: 'APPLEPAY',
|
|
332
|
+
path: 'applePay_chrome_sdk'
|
|
333
|
+
});
|
|
334
|
+
_context3.prev = 13;
|
|
335
|
+
startTime = Date.now();
|
|
336
|
+
_context3.next = 17;
|
|
337
|
+
return executeWithTimeout(function () {
|
|
338
|
+
return _this.onBeforeConfirm();
|
|
339
|
+
});
|
|
340
|
+
case 17:
|
|
341
|
+
_yield$executeWithTim = _context3.sent;
|
|
342
|
+
rawResult = _yield$executeWithTim.result;
|
|
343
|
+
timedOut = _yield$executeWithTim.timedOut;
|
|
344
|
+
shouldContinue = rawResult;
|
|
345
|
+
if (timedOut || Date.now() - startTime >= BEFORE_CONFIRM_TIMEOUT_MS) {
|
|
346
|
+
(_this$logger5 = _this.logger) === null || _this$logger5 === void 0 || _this$logger5.logError({
|
|
347
|
+
title: 'sdk_before_confirm_timeout'
|
|
348
|
+
});
|
|
349
|
+
shouldContinue = false;
|
|
350
|
+
}
|
|
351
|
+
(_this$logger6 = _this.logger) === null || _this$logger6 === void 0 || _this$logger6.logInfo({
|
|
352
|
+
title: 'sdk_element_beforeConfirm_callback_result'
|
|
353
|
+
}, {
|
|
354
|
+
shouldContinue: shouldContinue
|
|
355
|
+
});
|
|
356
|
+
if (shouldContinue) {
|
|
357
|
+
_context3.next = 29;
|
|
358
|
+
break;
|
|
359
|
+
}
|
|
360
|
+
_this.cancelReason = 'MERCHANT_ABORT';
|
|
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
|
+
_this.abortSession();
|
|
363
|
+
reject({
|
|
364
|
+
errorCode: 'MERCHANT_CONFIRM_ABORT'
|
|
365
|
+
});
|
|
366
|
+
return _context3.abrupt("return");
|
|
367
|
+
case 29:
|
|
368
|
+
_context3.next = 39;
|
|
369
|
+
break;
|
|
370
|
+
case 31:
|
|
371
|
+
_context3.prev = 31;
|
|
372
|
+
_context3.t0 = _context3["catch"](13);
|
|
373
|
+
(_this$logger7 = _this.logger) === null || _this$logger7 === void 0 || _this$logger7.logError({
|
|
374
|
+
title: 'sdk_before_confirm_error'
|
|
375
|
+
}, {
|
|
376
|
+
paymentMethodType: 'APPLEPAY',
|
|
377
|
+
path: 'applePay_chrome_sdk',
|
|
378
|
+
errorMessage: String((_context3.t0 === null || _context3.t0 === void 0 ? void 0 : _context3.t0.message) || _context3.t0).slice(0, 200)
|
|
379
|
+
});
|
|
380
|
+
_this.cancelReason = 'MERCHANT_ABORT';
|
|
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
|
+
_this.abortSession();
|
|
383
|
+
reject({
|
|
384
|
+
errorCode: 'MERCHANT_CONFIRM_ABORT'
|
|
385
|
+
});
|
|
386
|
+
return _context3.abrupt("return");
|
|
387
|
+
case 39:
|
|
388
|
+
_context3.next = 41;
|
|
291
389
|
return _this.submitPay(obj);
|
|
292
|
-
case
|
|
390
|
+
case 41:
|
|
293
391
|
res = _context3.sent;
|
|
294
392
|
_this.setPayStatus(res);
|
|
295
393
|
resolve(res);
|
|
296
|
-
_context3.next =
|
|
394
|
+
_context3.next = 48;
|
|
297
395
|
break;
|
|
298
|
-
case
|
|
299
|
-
(_this$
|
|
396
|
+
case 46:
|
|
397
|
+
(_this$logger8 = _this.logger) === null || _this$logger8 === void 0 || _this$logger8.logError({
|
|
300
398
|
title: 'a3753.b103030.c386485.d507486'
|
|
301
399
|
});
|
|
302
400
|
exception();
|
|
303
|
-
case
|
|
401
|
+
case 48:
|
|
304
402
|
case "end":
|
|
305
403
|
return _context3.stop();
|
|
306
404
|
}
|
|
307
|
-
}, _callee3);
|
|
405
|
+
}, _callee3, null, [[13, 31]]);
|
|
308
406
|
}));
|
|
309
407
|
return function (_x2) {
|
|
310
408
|
return _ref3.apply(this, arguments);
|
|
@@ -312,18 +410,20 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
312
410
|
}();
|
|
313
411
|
_this.session.oncancel = function () {
|
|
314
412
|
if (_this.paymentStatus === PAYMENT_STATUS.PENDING) {
|
|
315
|
-
var _this$
|
|
316
|
-
(_this$
|
|
413
|
+
var _this$logger9;
|
|
414
|
+
(_this$logger9 = _this.logger) === null || _this$logger9 === void 0 || _this$logger9.logError({
|
|
317
415
|
title: 'a3753.b103030.c386485.d507497'
|
|
318
416
|
});
|
|
319
417
|
} else {
|
|
320
|
-
var _this$
|
|
321
|
-
(_this$
|
|
418
|
+
var _this$logger10;
|
|
419
|
+
(_this$logger10 = _this.logger) === null || _this$logger10 === void 0 || _this$logger10.logInfo({
|
|
322
420
|
title: 'a3753.b103030.c386485.d507498'
|
|
323
421
|
});
|
|
324
422
|
}
|
|
423
|
+
// cancelReason === 'MERCHANT_ABORT': onBeforeConfirm 返回 false 或异常,由商户主动中止
|
|
424
|
+
// 其他:用户主动取消付款界面
|
|
325
425
|
reject({
|
|
326
|
-
errorCode: APPLEPAYERRORENUM.APPLE_PAY_CANCEL
|
|
426
|
+
errorCode: _this.cancelReason === 'MERCHANT_ABORT' ? 'MERCHANT_CONFIRM_ABORT' : APPLEPAYERRORENUM.APPLE_PAY_CANCEL
|
|
327
427
|
});
|
|
328
428
|
};
|
|
329
429
|
_this.session.begin();
|
|
@@ -343,7 +443,7 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
343
443
|
case 0:
|
|
344
444
|
_context4.prev = 0;
|
|
345
445
|
_context4.t0 = submitPayInfo;
|
|
346
|
-
_context4.t1 = {
|
|
446
|
+
_context4.t1 = _objectSpread({
|
|
347
447
|
paymentSessionConfig: (_this$parseData2 = this.parseData) === null || _this$parseData2 === void 0 ? void 0 : _this$parseData2.paymentSessionConfig,
|
|
348
448
|
paymentSessionData: this.paymentSessionData,
|
|
349
449
|
paymentFactors: params,
|
|
@@ -351,7 +451,12 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
351
451
|
paymentMethodType: 'APPLEPAY'
|
|
352
452
|
},
|
|
353
453
|
shipping: this.shipping
|
|
354
|
-
}
|
|
454
|
+
}, this.merchantAmount && this.merchantCurrency ? {
|
|
455
|
+
paymentAmount: {
|
|
456
|
+
amount: this.merchantAmount,
|
|
457
|
+
currency: this.merchantCurrency
|
|
458
|
+
}
|
|
459
|
+
} : {});
|
|
355
460
|
_context4.t2 = this.env;
|
|
356
461
|
_context4.next = 6;
|
|
357
462
|
return this.getDeviceId();
|
|
@@ -387,7 +492,7 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
387
492
|
}, {
|
|
388
493
|
key: "setPayStatus",
|
|
389
494
|
value: function setPayStatus(result) {
|
|
390
|
-
var _this$
|
|
495
|
+
var _this$session4, _this$session4$comple;
|
|
391
496
|
var payStatus = {
|
|
392
497
|
success: window.ApplePaySession.STATUS_SUCCESS,
|
|
393
498
|
fail: window.ApplePaySession.STATUS_FAILURE
|
|
@@ -399,13 +504,13 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
399
504
|
status = 'fail';
|
|
400
505
|
}
|
|
401
506
|
this.paymentStatus = PAYMENT_STATUS.NORMAL;
|
|
402
|
-
(_this$
|
|
507
|
+
(_this$session4 = this.session) === null || _this$session4 === void 0 || (_this$session4$comple = _this$session4.completePayment) === null || _this$session4$comple === void 0 || _this$session4$comple.call(_this$session4, payStatus[status]);
|
|
403
508
|
}
|
|
404
509
|
}, {
|
|
405
510
|
key: "initApplePaySession",
|
|
406
511
|
value: function () {
|
|
407
512
|
var _initApplePaySession = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
|
|
408
|
-
var _this$
|
|
513
|
+
var _this$logger12, _this$parseData3, _this$logger11, _ref4, recurringInfo, version, _this$logger13;
|
|
409
514
|
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
410
515
|
while (1) switch (_context5.prev = _context5.next) {
|
|
411
516
|
case 0:
|
|
@@ -420,7 +525,7 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
420
525
|
_context5.next = 7;
|
|
421
526
|
break;
|
|
422
527
|
}
|
|
423
|
-
(_this$
|
|
528
|
+
(_this$logger11 = this.logger) === null || _this$logger11 === void 0 || _this$logger11.logError({
|
|
424
529
|
title: 'a3753.b103030.c386485.d507448'
|
|
425
530
|
});
|
|
426
531
|
this.paymentStatus = PAYMENT_STATUS.NORMAL;
|
|
@@ -428,7 +533,7 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
428
533
|
errorCode: APPLEPAYERRORENUM.APPLE_PAY_MISSING_DATA
|
|
429
534
|
}));
|
|
430
535
|
case 7:
|
|
431
|
-
(_this$
|
|
536
|
+
(_this$logger12 = this.logger) === null || _this$logger12 === void 0 || _this$logger12.logInfo({
|
|
432
537
|
title: 'a3753.b103030.c386485.d507459'
|
|
433
538
|
});
|
|
434
539
|
_context5.next = 10;
|
|
@@ -454,7 +559,7 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
454
559
|
case 19:
|
|
455
560
|
_context5.prev = 19;
|
|
456
561
|
_context5.t0 = _context5["catch"](0);
|
|
457
|
-
(_this$
|
|
562
|
+
(_this$logger13 = this.logger) === null || _this$logger13 === void 0 || _this$logger13.logError({
|
|
458
563
|
title: 'a3753.b103030.c386485.d507471'
|
|
459
564
|
});
|
|
460
565
|
return _context5.abrupt("return", Promise.reject({
|
|
@@ -475,9 +580,9 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
475
580
|
key: "abortSession",
|
|
476
581
|
value: function abortSession() {
|
|
477
582
|
try {
|
|
478
|
-
var _this$session$abort, _this$
|
|
583
|
+
var _this$session$abort, _this$session5;
|
|
479
584
|
this.paymentStatus = PAYMENT_STATUS.NORMAL;
|
|
480
|
-
this.session && ((_this$session$abort = (_this$
|
|
585
|
+
this.session && ((_this$session$abort = (_this$session5 = this.session).abort) === null || _this$session$abort === void 0 ? void 0 : _this$session$abort.call(_this$session5));
|
|
481
586
|
} catch (e) {
|
|
482
587
|
console.error('abortPaySession error', e);
|
|
483
588
|
} finally {
|
|
@@ -496,13 +601,13 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
496
601
|
extendInfo = _ref5.extendInfo;
|
|
497
602
|
var request = {
|
|
498
603
|
countryCode: merchantInfo === null || merchantInfo === void 0 ? void 0 : merchantInfo.registeredCountry,
|
|
499
|
-
currencyCode: paymentAmount === null || paymentAmount === void 0 ? void 0 : paymentAmount.currency,
|
|
604
|
+
currencyCode: this.merchantCurrency || (paymentAmount === null || paymentAmount === void 0 ? void 0 : paymentAmount.currency),
|
|
500
605
|
merchantCapabilities: extendInfo === null || extendInfo === void 0 ? void 0 : extendInfo.merchantCapabilities,
|
|
501
606
|
supportedNetworks: extendInfo === null || extendInfo === void 0 ? void 0 : extendInfo.supportedNetworks,
|
|
502
607
|
total: {
|
|
503
608
|
label: merchantInfo === null || merchantInfo === void 0 ? void 0 : merchantInfo.merchantName,
|
|
504
609
|
type: 'final',
|
|
505
|
-
amount: paymentAmount === null || paymentAmount === void 0 ? void 0 : paymentAmount.value
|
|
610
|
+
amount: this.merchantAmount || (paymentAmount === null || paymentAmount === void 0 ? void 0 : paymentAmount.value)
|
|
506
611
|
},
|
|
507
612
|
requiredBillingContactFields: extendInfo === null || extendInfo === void 0 ? void 0 : extendInfo.requiredBillingContactFields,
|
|
508
613
|
requiredShippingContactFields: extendInfo === null || extendInfo === void 0 ? void 0 : extendInfo.requiredShippingContactFields
|
package/esm/tsdoc-metadata.json
CHANGED
package/esm/types/index.d.ts
CHANGED
|
@@ -573,14 +573,9 @@ export interface CashierSubmitPayRequest {
|
|
|
573
573
|
category?: string;
|
|
574
574
|
};
|
|
575
575
|
shipping?: import('../core/component/element/type').CKPShipping;
|
|
576
|
-
}
|
|
577
|
-
export interface CashierSubmitPayRequest {
|
|
578
|
-
paymentMethodType?: string;
|
|
579
|
-
paymentFactors?: Record<string, string>;
|
|
580
|
-
verifyFactors?: Record<string, string>;
|
|
581
|
-
paymentSessionData: string;
|
|
582
|
-
paymentSessionConfig?: any;
|
|
583
576
|
extParams?: any;
|
|
577
|
+
/** 支付金额 */
|
|
578
|
+
paymentAmount?: Pick<IAmount, 'amount' | 'currency'>;
|
|
584
579
|
}
|
|
585
580
|
export interface CashierSdkActionQueryResult {
|
|
586
581
|
supportedLanguages?: any[];
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const BEFORE_CONFIRM_TIMEOUT_MS = 15000;
|
|
2
|
+
/**
|
|
3
|
+
* 带超时的异步执行,始终清理定时器避免 unhandled promise rejection。
|
|
4
|
+
*
|
|
5
|
+
* @param fn - 要执行的异步函数
|
|
6
|
+
* @param timeoutMs - 超时时间(毫秒),默认 15000
|
|
7
|
+
* @returns result 为 fn 的返回值(超时时为 undefined),timedOut 表示是否因超时返回
|
|
8
|
+
*/
|
|
9
|
+
export declare function executeWithTimeout<T>(fn: () => Promise<T>, timeoutMs?: number): Promise<{
|
|
10
|
+
result: T | undefined;
|
|
11
|
+
timedOut: boolean;
|
|
12
|
+
}>;
|
|
@@ -0,0 +1,68 @@
|
|
|
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
|
+
export var BEFORE_CONFIRM_TIMEOUT_MS = 15000;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* 带超时的异步执行,始终清理定时器避免 unhandled promise rejection。
|
|
9
|
+
*
|
|
10
|
+
* @param fn - 要执行的异步函数
|
|
11
|
+
* @param timeoutMs - 超时时间(毫秒),默认 15000
|
|
12
|
+
* @returns result 为 fn 的返回值(超时时为 undefined),timedOut 表示是否因超时返回
|
|
13
|
+
*/
|
|
14
|
+
export function executeWithTimeout(_x) {
|
|
15
|
+
return _executeWithTimeout.apply(this, arguments);
|
|
16
|
+
}
|
|
17
|
+
function _executeWithTimeout() {
|
|
18
|
+
_executeWithTimeout = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(fn) {
|
|
19
|
+
var timeoutMs,
|
|
20
|
+
timerId,
|
|
21
|
+
timeoutPromise,
|
|
22
|
+
result,
|
|
23
|
+
isTimeout,
|
|
24
|
+
_args = arguments;
|
|
25
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
26
|
+
while (1) switch (_context.prev = _context.next) {
|
|
27
|
+
case 0:
|
|
28
|
+
timeoutMs = _args.length > 1 && _args[1] !== undefined ? _args[1] : BEFORE_CONFIRM_TIMEOUT_MS;
|
|
29
|
+
timeoutPromise = new Promise(function (_, reject) {
|
|
30
|
+
timerId = setTimeout(function () {
|
|
31
|
+
return reject(new Error('timed out'));
|
|
32
|
+
}, timeoutMs);
|
|
33
|
+
});
|
|
34
|
+
_context.prev = 2;
|
|
35
|
+
_context.next = 5;
|
|
36
|
+
return Promise.race([fn(), timeoutPromise]);
|
|
37
|
+
case 5:
|
|
38
|
+
result = _context.sent;
|
|
39
|
+
return _context.abrupt("return", {
|
|
40
|
+
result: result,
|
|
41
|
+
timedOut: false
|
|
42
|
+
});
|
|
43
|
+
case 9:
|
|
44
|
+
_context.prev = 9;
|
|
45
|
+
_context.t0 = _context["catch"](2);
|
|
46
|
+
isTimeout = _context.t0 instanceof Error && _context.t0.message === 'timed out';
|
|
47
|
+
if (!isTimeout) {
|
|
48
|
+
_context.next = 14;
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
return _context.abrupt("return", {
|
|
52
|
+
result: undefined,
|
|
53
|
+
timedOut: true
|
|
54
|
+
});
|
|
55
|
+
case 14:
|
|
56
|
+
throw _context.t0;
|
|
57
|
+
case 15:
|
|
58
|
+
_context.prev = 15;
|
|
59
|
+
clearTimeout(timerId);
|
|
60
|
+
return _context.finish(15);
|
|
61
|
+
case 18:
|
|
62
|
+
case "end":
|
|
63
|
+
return _context.stop();
|
|
64
|
+
}
|
|
65
|
+
}, _callee, null, [[2, 9, 15, 18]]);
|
|
66
|
+
}));
|
|
67
|
+
return _executeWithTimeout.apply(this, arguments);
|
|
68
|
+
}
|
package/esm/util/spm-map.d.ts
CHANGED
|
@@ -208,4 +208,10 @@ export declare const SPM_MAP: {
|
|
|
208
208
|
'Abnormal params recurringInfo': string;
|
|
209
209
|
'Payment processing but user dismissed the sheet': string;
|
|
210
210
|
'User dismissed the sheet': string;
|
|
211
|
+
sdk_before_confirm_start: string;
|
|
212
|
+
sdk_before_confirm_success: string;
|
|
213
|
+
sdk_before_confirm_abort: string;
|
|
214
|
+
sdk_before_confirm_error: string;
|
|
215
|
+
sdk_before_confirm_timeout: string;
|
|
216
|
+
sdk_before_confirm_skip: string;
|
|
211
217
|
};
|
package/esm/util/spm-map.js
CHANGED
|
@@ -198,5 +198,11 @@ export var SPM_MAP = _objectSpread({
|
|
|
198
198
|
'Abnormal params paymentSessionFactor': 'a3753.b101271.c388189.d518377',
|
|
199
199
|
'Abnormal params recurringInfo': 'a3753.b101271.c388189.d518377',
|
|
200
200
|
'Payment processing but user dismissed the sheet': 'a3753.b101271.c388189.d518377',
|
|
201
|
-
'User dismissed the sheet': 'a3753.b101271.c388189.d518377'
|
|
201
|
+
'User dismissed the sheet': 'a3753.b101271.c388189.d518377',
|
|
202
|
+
sdk_before_confirm_start: 'a3753.b204577.c480929',
|
|
203
|
+
sdk_before_confirm_success: 'a3753.b204577.c480930',
|
|
204
|
+
sdk_before_confirm_abort: 'a3753.b204577.c480931',
|
|
205
|
+
sdk_before_confirm_error: 'a3753.b204577.c480932',
|
|
206
|
+
sdk_before_confirm_timeout: 'a3753.b204577.c480933',
|
|
207
|
+
sdk_before_confirm_skip: 'a3753.b204577.c480934'
|
|
202
208
|
}, ELEMENT_SPM_MAP);
|
package/package.json
CHANGED
package/types.d.ts
CHANGED
|
@@ -621,7 +621,9 @@ declare class AxiosHeaders {
|
|
|
621
621
|
...targets: Array<AxiosHeaders | RawAxiosHeaders | string | undefined | null>
|
|
622
622
|
): AxiosHeaders;
|
|
623
623
|
|
|
624
|
-
toJSON(asStrings
|
|
624
|
+
toJSON(asStrings: true): Record<string, string>;
|
|
625
|
+
toJSON(asStrings?: false): Record<string, string | string[]>;
|
|
626
|
+
toJSON(asStrings?: boolean): Record<string, string | string[]>;
|
|
625
627
|
|
|
626
628
|
static from(thing?: AxiosHeaders | RawAxiosHeaders | string): AxiosHeaders;
|
|
627
629
|
|
package/types.untrimmed.d.ts
CHANGED
|
@@ -648,7 +648,9 @@ declare class AxiosHeaders {
|
|
|
648
648
|
...targets: Array<AxiosHeaders | RawAxiosHeaders | string | undefined | null>
|
|
649
649
|
): AxiosHeaders;
|
|
650
650
|
|
|
651
|
-
toJSON(asStrings
|
|
651
|
+
toJSON(asStrings: true): Record<string, string>;
|
|
652
|
+
toJSON(asStrings?: false): Record<string, string | string[]>;
|
|
653
|
+
toJSON(asStrings?: boolean): Record<string, string | string[]>;
|
|
652
654
|
|
|
653
655
|
static from(thing?: AxiosHeaders | RawAxiosHeaders | string): AxiosHeaders;
|
|
654
656
|
|