@alipay/ams-checkout 0.0.1781004142-dev.11 → 0.0.1781004142-dev.13
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/core/component/element/elementProcessor/paymentProcessor.js +6 -0
- package/esm/plugin/component/channel.d.ts +7 -0
- package/esm/plugin/component/channel.js +142 -35
- package/esm/types/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -70,6 +70,10 @@ var PaymentProcessor = /*#__PURE__*/function (_BaseElementProcessor) {
|
|
|
70
70
|
key: "setOnBeforeConfirm",
|
|
71
71
|
value: function setOnBeforeConfirm(callback) {
|
|
72
72
|
this._onBeforeConfirm = callback;
|
|
73
|
+
// 展码链路:同步设置 onBeforeConfirm 到 ApplePaySdk,确保 Chrome 展码支付时能调用商户回调
|
|
74
|
+
if (this.ApplePayService) {
|
|
75
|
+
this.ApplePayService.setOnBeforeConfirm(callback);
|
|
76
|
+
}
|
|
73
77
|
}
|
|
74
78
|
}, {
|
|
75
79
|
key: "setMerchantAmountOverride",
|
|
@@ -166,6 +170,8 @@ var PaymentProcessor = /*#__PURE__*/function (_BaseElementProcessor) {
|
|
|
166
170
|
merchantAmount: _this2._merchantAmount,
|
|
167
171
|
merchantCurrency: _this2._merchantCurrency
|
|
168
172
|
});
|
|
173
|
+
// Chrome 展码链路:同步 onBeforeConfirm 到当前 ApplePaySdk 实例
|
|
174
|
+
applePayService.setOnBeforeConfirm(_this2._onBeforeConfirm);
|
|
169
175
|
applePayService.startPay().then(function (res) {
|
|
170
176
|
_this2.eventCenter.dispatchToApp({
|
|
171
177
|
event: 'getApplePayToken',
|
|
@@ -31,11 +31,16 @@ 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;
|
|
38
42
|
private merchantCurrency;
|
|
43
|
+
private onBeforeConfirm?;
|
|
39
44
|
constructor({ paymentSessionData, parseData, logger, env, shipping, merchantAmount, merchantCurrency, }: {
|
|
40
45
|
paymentSessionData: string;
|
|
41
46
|
parseData: IPaymentSessionMetaData;
|
|
@@ -45,6 +50,8 @@ export declare class ApplePaySdk {
|
|
|
45
50
|
merchantAmount?: string | null;
|
|
46
51
|
merchantCurrency?: string | null;
|
|
47
52
|
});
|
|
53
|
+
/** 设置商户 onBeforeConfirm 回调(展码链路使用) */
|
|
54
|
+
setOnBeforeConfirm(callback: (() => Promise<boolean>) | null): void;
|
|
48
55
|
startPay(): Promise<unknown>;
|
|
49
56
|
begin(): Promise<unknown>;
|
|
50
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); }); }; }
|
|
@@ -151,11 +153,16 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
151
153
|
* @description 支付状态,pending:支付中,normal:正常
|
|
152
154
|
*/
|
|
153
155
|
_defineProperty(this, "paymentStatus", void 0);
|
|
156
|
+
/**
|
|
157
|
+
* @description oncancel 原因标记,用于区分用户主动取消 vs 商户通过 onBeforeConfirm 中止
|
|
158
|
+
*/
|
|
159
|
+
_defineProperty(this, "cancelReason", null);
|
|
154
160
|
_defineProperty(this, "logger", void 0);
|
|
155
161
|
_defineProperty(this, "env", void 0);
|
|
156
162
|
_defineProperty(this, "shipping", void 0);
|
|
157
163
|
_defineProperty(this, "merchantAmount", void 0);
|
|
158
164
|
_defineProperty(this, "merchantCurrency", void 0);
|
|
165
|
+
_defineProperty(this, "onBeforeConfirm", void 0);
|
|
159
166
|
this.paymentSessionData = paymentSessionData;
|
|
160
167
|
this.parseData = parseData;
|
|
161
168
|
this.env = env;
|
|
@@ -164,7 +171,13 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
164
171
|
this.merchantAmount = merchantAmount;
|
|
165
172
|
this.merchantCurrency = merchantCurrency;
|
|
166
173
|
}
|
|
174
|
+
/** 设置商户 onBeforeConfirm 回调(展码链路使用) */
|
|
167
175
|
_createClass(ApplePaySdk, [{
|
|
176
|
+
key: "setOnBeforeConfirm",
|
|
177
|
+
value: function setOnBeforeConfirm(callback) {
|
|
178
|
+
this.onBeforeConfirm = callback;
|
|
179
|
+
}
|
|
180
|
+
}, {
|
|
168
181
|
key: "startPay",
|
|
169
182
|
value: function () {
|
|
170
183
|
var _startPay = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
@@ -199,6 +212,7 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
199
212
|
try {
|
|
200
213
|
if (!_this.session) return;
|
|
201
214
|
_this.paymentStatus = PAYMENT_STATUS.PENDING;
|
|
215
|
+
_this.session.begin();
|
|
202
216
|
_this.session.onvalidatemerchant = /*#__PURE__*/function () {
|
|
203
217
|
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(event) {
|
|
204
218
|
var requestParams, res, merchantSession, _this$logger, _this$logger2;
|
|
@@ -268,7 +282,7 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
268
282
|
}();
|
|
269
283
|
_this.session.onpaymentauthorized = /*#__PURE__*/function () {
|
|
270
284
|
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(event) {
|
|
271
|
-
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, BEFORE_CONFIRM_TIMEOUT_MS, _this$logger6, timerId, timeoutPromise, startTime, shouldContinue, _this$logger5, _this$session2, _this$session2$comple, _this$session3, _this$session3$comple, isTimeout, _this$logger7, _this$logger8, res, _this$logger9;
|
|
272
286
|
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
273
287
|
while (1) switch (_context3.prev = _context3.next) {
|
|
274
288
|
case 0:
|
|
@@ -282,7 +296,7 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
282
296
|
};
|
|
283
297
|
_event$payment = event === null || event === void 0 ? void 0 : event.payment, token = _event$payment.token, billingContact = _event$payment.billingContact, shippingContact = _event$payment.shippingContact;
|
|
284
298
|
if (!token) {
|
|
285
|
-
_context3.next =
|
|
299
|
+
_context3.next = 48;
|
|
286
300
|
break;
|
|
287
301
|
}
|
|
288
302
|
obj = {
|
|
@@ -295,24 +309,114 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
295
309
|
if (!isEmpty(requiredShippingContactFields) && shippingContact) {
|
|
296
310
|
obj['applePayShippingContact'] = JSON.stringify(shippingContact);
|
|
297
311
|
}
|
|
298
|
-
|
|
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 = 41;
|
|
324
|
+
break;
|
|
325
|
+
case 11:
|
|
326
|
+
// 清空回原始状态
|
|
327
|
+
_this.cancelReason = 'USER_CANCEL';
|
|
328
|
+
BEFORE_CONFIRM_TIMEOUT_MS = 15000;
|
|
329
|
+
(_this$logger4 = _this.logger) === null || _this$logger4 === void 0 || _this$logger4.logInfo({
|
|
330
|
+
title: 'sdk_before_confirm_start'
|
|
331
|
+
}, {
|
|
332
|
+
paymentMethodType: 'APPLEPAY',
|
|
333
|
+
path: 'applePay_chrome_sdk'
|
|
334
|
+
});
|
|
335
|
+
_context3.prev = 14;
|
|
336
|
+
timerId = null;
|
|
337
|
+
timeoutPromise = new Promise(function (_, reject) {
|
|
338
|
+
timerId = setTimeout(function () {
|
|
339
|
+
return reject(new Error('onBeforeConfirm timed out'));
|
|
340
|
+
}, BEFORE_CONFIRM_TIMEOUT_MS);
|
|
341
|
+
});
|
|
342
|
+
startTime = Date.now();
|
|
343
|
+
_context3.next = 20;
|
|
344
|
+
return Promise.race([_this.onBeforeConfirm(), timeoutPromise]);
|
|
345
|
+
case 20:
|
|
346
|
+
shouldContinue = _context3.sent;
|
|
347
|
+
// 正常返回时清除超时定时器,避免 unhandled promise rejection
|
|
348
|
+
if (timerId !== null) clearTimeout(timerId);
|
|
349
|
+
if (Date.now() - startTime >= BEFORE_CONFIRM_TIMEOUT_MS) {
|
|
350
|
+
(_this$logger5 = _this.logger) === null || _this$logger5 === void 0 || _this$logger5.logError({
|
|
351
|
+
title: 'sdk_before_confirm_timeout'
|
|
352
|
+
});
|
|
353
|
+
shouldContinue = false;
|
|
354
|
+
}
|
|
355
|
+
(_this$logger6 = _this.logger) === null || _this$logger6 === void 0 || _this$logger6.logInfo({
|
|
356
|
+
title: 'sdk_element_beforeConfirm_callback_result'
|
|
357
|
+
}, {
|
|
358
|
+
shouldContinue: shouldContinue
|
|
359
|
+
});
|
|
360
|
+
if (shouldContinue) {
|
|
361
|
+
_context3.next = 30;
|
|
362
|
+
break;
|
|
363
|
+
}
|
|
364
|
+
_this.cancelReason = 'MERCHANT_ABORT';
|
|
365
|
+
(_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);
|
|
366
|
+
_this.abortSession();
|
|
367
|
+
reject({
|
|
368
|
+
errorCode: 'MERCHANT_CONFIRM_ABORT'
|
|
369
|
+
});
|
|
370
|
+
return _context3.abrupt("return");
|
|
371
|
+
case 30:
|
|
372
|
+
_context3.next = 41;
|
|
373
|
+
break;
|
|
374
|
+
case 32:
|
|
375
|
+
_context3.prev = 32;
|
|
376
|
+
_context3.t0 = _context3["catch"](14);
|
|
377
|
+
isTimeout = _context3.t0 instanceof Error && _context3.t0.message === 'onBeforeConfirm timed out';
|
|
378
|
+
if (isTimeout) {
|
|
379
|
+
(_this$logger7 = _this.logger) === null || _this$logger7 === void 0 || _this$logger7.logError({
|
|
380
|
+
title: 'sdk_before_confirm_timeout'
|
|
381
|
+
}, {
|
|
382
|
+
paymentMethodType: 'APPLEPAY',
|
|
383
|
+
path: 'applePay_chrome_sdk'
|
|
384
|
+
});
|
|
385
|
+
} else {
|
|
386
|
+
(_this$logger8 = _this.logger) === null || _this$logger8 === void 0 || _this$logger8.logError({
|
|
387
|
+
title: 'sdk_before_confirm_error'
|
|
388
|
+
}, {
|
|
389
|
+
paymentMethodType: 'APPLEPAY',
|
|
390
|
+
path: 'applePay_chrome_sdk',
|
|
391
|
+
errorMessage: String((_context3.t0 === null || _context3.t0 === void 0 ? void 0 : _context3.t0.message) || _context3.t0).slice(0, 200)
|
|
392
|
+
});
|
|
393
|
+
}
|
|
394
|
+
_this.cancelReason = 'MERCHANT_ABORT';
|
|
395
|
+
(_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);
|
|
396
|
+
_this.abortSession();
|
|
397
|
+
reject({
|
|
398
|
+
errorCode: 'MERCHANT_CONFIRM_ABORT'
|
|
399
|
+
});
|
|
400
|
+
return _context3.abrupt("return");
|
|
401
|
+
case 41:
|
|
402
|
+
_context3.next = 43;
|
|
299
403
|
return _this.submitPay(obj);
|
|
300
|
-
case
|
|
404
|
+
case 43:
|
|
301
405
|
res = _context3.sent;
|
|
302
406
|
_this.setPayStatus(res);
|
|
303
407
|
resolve(res);
|
|
304
|
-
_context3.next =
|
|
408
|
+
_context3.next = 50;
|
|
305
409
|
break;
|
|
306
|
-
case
|
|
307
|
-
(_this$
|
|
410
|
+
case 48:
|
|
411
|
+
(_this$logger9 = _this.logger) === null || _this$logger9 === void 0 || _this$logger9.logError({
|
|
308
412
|
title: 'a3753.b103030.c386485.d507486'
|
|
309
413
|
});
|
|
310
414
|
exception();
|
|
311
|
-
case
|
|
415
|
+
case 50:
|
|
312
416
|
case "end":
|
|
313
417
|
return _context3.stop();
|
|
314
418
|
}
|
|
315
|
-
}, _callee3);
|
|
419
|
+
}, _callee3, null, [[14, 32]]);
|
|
316
420
|
}));
|
|
317
421
|
return function (_x2) {
|
|
318
422
|
return _ref3.apply(this, arguments);
|
|
@@ -320,18 +424,20 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
320
424
|
}();
|
|
321
425
|
_this.session.oncancel = function () {
|
|
322
426
|
if (_this.paymentStatus === PAYMENT_STATUS.PENDING) {
|
|
323
|
-
var _this$
|
|
324
|
-
(_this$
|
|
427
|
+
var _this$logger10;
|
|
428
|
+
(_this$logger10 = _this.logger) === null || _this$logger10 === void 0 || _this$logger10.logError({
|
|
325
429
|
title: 'a3753.b103030.c386485.d507497'
|
|
326
430
|
});
|
|
327
431
|
} else {
|
|
328
|
-
var _this$
|
|
329
|
-
(_this$
|
|
432
|
+
var _this$logger11;
|
|
433
|
+
(_this$logger11 = _this.logger) === null || _this$logger11 === void 0 || _this$logger11.logInfo({
|
|
330
434
|
title: 'a3753.b103030.c386485.d507498'
|
|
331
435
|
});
|
|
332
436
|
}
|
|
437
|
+
// cancelReason === 'MERCHANT_ABORT': onBeforeConfirm 返回 false 或异常,由商户主动中止
|
|
438
|
+
// 其他:用户主动取消付款界面
|
|
333
439
|
reject({
|
|
334
|
-
errorCode: APPLEPAYERRORENUM.APPLE_PAY_CANCEL
|
|
440
|
+
errorCode: _this.cancelReason === 'MERCHANT_ABORT' ? 'MERCHANT_CONFIRM_ABORT' : APPLEPAYERRORENUM.APPLE_PAY_CANCEL
|
|
335
441
|
});
|
|
336
442
|
};
|
|
337
443
|
_this.session.begin();
|
|
@@ -345,25 +451,26 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
345
451
|
key: "submitPay",
|
|
346
452
|
value: function () {
|
|
347
453
|
var _submitPay = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(params) {
|
|
348
|
-
var _this$parseData2
|
|
454
|
+
var _this$parseData2;
|
|
349
455
|
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
350
456
|
while (1) switch (_context4.prev = _context4.next) {
|
|
351
457
|
case 0:
|
|
352
458
|
_context4.prev = 0;
|
|
353
459
|
_context4.t0 = submitPayInfo;
|
|
354
|
-
_context4.t1 = {
|
|
460
|
+
_context4.t1 = _objectSpread({
|
|
355
461
|
paymentSessionConfig: (_this$parseData2 = this.parseData) === null || _this$parseData2 === void 0 ? void 0 : _this$parseData2.paymentSessionConfig,
|
|
356
462
|
paymentSessionData: this.paymentSessionData,
|
|
357
463
|
paymentFactors: params,
|
|
358
464
|
paymentMethod: {
|
|
359
465
|
paymentMethodType: 'APPLEPAY'
|
|
360
466
|
},
|
|
361
|
-
shipping: this.shipping
|
|
467
|
+
shipping: this.shipping
|
|
468
|
+
}, this.merchantAmount && this.merchantCurrency ? {
|
|
362
469
|
paymentAmount: {
|
|
363
|
-
|
|
364
|
-
currency: this.merchantCurrency
|
|
470
|
+
amount: this.merchantAmount,
|
|
471
|
+
currency: this.merchantCurrency
|
|
365
472
|
}
|
|
366
|
-
};
|
|
473
|
+
} : {});
|
|
367
474
|
_context4.t2 = this.env;
|
|
368
475
|
_context4.next = 6;
|
|
369
476
|
return this.getDeviceId();
|
|
@@ -399,7 +506,7 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
399
506
|
}, {
|
|
400
507
|
key: "setPayStatus",
|
|
401
508
|
value: function setPayStatus(result) {
|
|
402
|
-
var _this$
|
|
509
|
+
var _this$session4, _this$session4$comple;
|
|
403
510
|
var payStatus = {
|
|
404
511
|
success: window.ApplePaySession.STATUS_SUCCESS,
|
|
405
512
|
fail: window.ApplePaySession.STATUS_FAILURE
|
|
@@ -411,13 +518,13 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
411
518
|
status = 'fail';
|
|
412
519
|
}
|
|
413
520
|
this.paymentStatus = PAYMENT_STATUS.NORMAL;
|
|
414
|
-
(_this$
|
|
521
|
+
(_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]);
|
|
415
522
|
}
|
|
416
523
|
}, {
|
|
417
524
|
key: "initApplePaySession",
|
|
418
525
|
value: function () {
|
|
419
526
|
var _initApplePaySession = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
|
|
420
|
-
var _this$
|
|
527
|
+
var _this$logger13, _this$parseData3, _this$logger12, _ref4, recurringInfo, version, _this$logger14;
|
|
421
528
|
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
422
529
|
while (1) switch (_context5.prev = _context5.next) {
|
|
423
530
|
case 0:
|
|
@@ -432,7 +539,7 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
432
539
|
_context5.next = 7;
|
|
433
540
|
break;
|
|
434
541
|
}
|
|
435
|
-
(_this$
|
|
542
|
+
(_this$logger12 = this.logger) === null || _this$logger12 === void 0 || _this$logger12.logError({
|
|
436
543
|
title: 'a3753.b103030.c386485.d507448'
|
|
437
544
|
});
|
|
438
545
|
this.paymentStatus = PAYMENT_STATUS.NORMAL;
|
|
@@ -440,7 +547,7 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
440
547
|
errorCode: APPLEPAYERRORENUM.APPLE_PAY_MISSING_DATA
|
|
441
548
|
}));
|
|
442
549
|
case 7:
|
|
443
|
-
(_this$
|
|
550
|
+
(_this$logger13 = this.logger) === null || _this$logger13 === void 0 || _this$logger13.logInfo({
|
|
444
551
|
title: 'a3753.b103030.c386485.d507459'
|
|
445
552
|
});
|
|
446
553
|
_context5.next = 10;
|
|
@@ -452,7 +559,7 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
452
559
|
}
|
|
453
560
|
throw new Error('Apple Pay not supported');
|
|
454
561
|
case 12:
|
|
455
|
-
_ref4 = ((_this$
|
|
562
|
+
_ref4 = ((_this$parseData3 = this.parseData) === null || _this$parseData3 === void 0 ? void 0 : _this$parseData3.paymentSessionFactor) || {}, recurringInfo = _ref4.recurringInfo;
|
|
456
563
|
version = recurringInfo ? APPLE_PAY_RECURRING_VERSION : APPLE_PAY_VERSION;
|
|
457
564
|
if (this.isCanMakePayments(version)) {
|
|
458
565
|
_context5.next = 16;
|
|
@@ -466,7 +573,7 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
466
573
|
case 19:
|
|
467
574
|
_context5.prev = 19;
|
|
468
575
|
_context5.t0 = _context5["catch"](0);
|
|
469
|
-
(_this$
|
|
576
|
+
(_this$logger14 = this.logger) === null || _this$logger14 === void 0 || _this$logger14.logError({
|
|
470
577
|
title: 'a3753.b103030.c386485.d507471'
|
|
471
578
|
});
|
|
472
579
|
return _context5.abrupt("return", Promise.reject({
|
|
@@ -487,9 +594,9 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
487
594
|
key: "abortSession",
|
|
488
595
|
value: function abortSession() {
|
|
489
596
|
try {
|
|
490
|
-
var _this$session$abort, _this$
|
|
597
|
+
var _this$session$abort, _this$session5;
|
|
491
598
|
this.paymentStatus = PAYMENT_STATUS.NORMAL;
|
|
492
|
-
this.session && ((_this$session$abort = (_this$
|
|
599
|
+
this.session && ((_this$session$abort = (_this$session5 = this.session).abort) === null || _this$session$abort === void 0 ? void 0 : _this$session$abort.call(_this$session5));
|
|
493
600
|
} catch (e) {
|
|
494
601
|
console.error('abortPaySession error', e);
|
|
495
602
|
} finally {
|
|
@@ -499,8 +606,8 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
499
606
|
}, {
|
|
500
607
|
key: "initSessionParams",
|
|
501
608
|
get: function get() {
|
|
502
|
-
var _this$
|
|
503
|
-
var _ref5 = ((_this$
|
|
609
|
+
var _this$parseData4;
|
|
610
|
+
var _ref5 = ((_this$parseData4 = this.parseData) === null || _this$parseData4 === void 0 ? void 0 : _this$parseData4.paymentSessionFactor) || {},
|
|
504
611
|
merchantInfo = _ref5.merchantInfo,
|
|
505
612
|
order = _ref5.order,
|
|
506
613
|
paymentAmount = _ref5.paymentAmount,
|
|
@@ -550,8 +657,8 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
550
657
|
}, {
|
|
551
658
|
key: "isRequiredParameters",
|
|
552
659
|
get: function get() {
|
|
553
|
-
var _this$
|
|
554
|
-
var _ref6 = ((_this$
|
|
660
|
+
var _this$parseData5;
|
|
661
|
+
var _ref6 = ((_this$parseData5 = this.parseData) === null || _this$parseData5 === void 0 ? void 0 : _this$parseData5.paymentSessionFactor) || {},
|
|
555
662
|
merchantInfo = _ref6.merchantInfo,
|
|
556
663
|
extendInfo = _ref6.extendInfo,
|
|
557
664
|
paymentAmount = _ref6.paymentAmount;
|
|
@@ -624,14 +731,14 @@ export var ApplePaySdk = /*#__PURE__*/function () {
|
|
|
624
731
|
key: "getDeviceId",
|
|
625
732
|
value: function () {
|
|
626
733
|
var _getDeviceId = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {
|
|
627
|
-
var _yield$BusManager$pub, _this$
|
|
734
|
+
var _yield$BusManager$pub, _this$parseData6;
|
|
628
735
|
return _regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
629
736
|
while (1) switch (_context6.prev = _context6.next) {
|
|
630
737
|
case 0:
|
|
631
738
|
_context6.next = 2;
|
|
632
739
|
return BusManager.publishForResult(new BusMessage(SecuritySDKActionEnum.getSecurityDeviceId, JSON.stringify({
|
|
633
740
|
deviceIdParameter: {
|
|
634
|
-
productScene: (_this$
|
|
741
|
+
productScene: (_this$parseData6 = this.parseData) === null || _this$parseData6 === void 0 || (_this$parseData6 = _this$parseData6.paymentSessionConfig) === null || _this$parseData6 === void 0 ? void 0 : _this$parseData6.productScene
|
|
635
742
|
}
|
|
636
743
|
})), {
|
|
637
744
|
fallback: ''
|
package/esm/types/index.d.ts
CHANGED
|
@@ -575,7 +575,7 @@ export interface CashierSubmitPayRequest {
|
|
|
575
575
|
shipping?: import('../core/component/element/type').CKPShipping;
|
|
576
576
|
extParams?: any;
|
|
577
577
|
/** 支付金额 */
|
|
578
|
-
paymentAmount?: Pick<IAmount, '
|
|
578
|
+
paymentAmount?: Pick<IAmount, 'amount' | 'currency'>;
|
|
579
579
|
}
|
|
580
580
|
export interface CashierSdkActionQueryResult {
|
|
581
581
|
supportedLanguages?: any[];
|