@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.
@@ -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$logger3;
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 = 14;
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
- _context3.next = 9;
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 9:
404
+ case 43:
301
405
  res = _context3.sent;
302
406
  _this.setPayStatus(res);
303
407
  resolve(res);
304
- _context3.next = 16;
408
+ _context3.next = 50;
305
409
  break;
306
- case 14:
307
- (_this$logger3 = _this.logger) === null || _this$logger3 === void 0 || _this$logger3.logError({
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 16:
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$logger4;
324
- (_this$logger4 = _this.logger) === null || _this$logger4 === void 0 || _this$logger4.logError({
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$logger5;
329
- (_this$logger5 = _this.logger) === null || _this$logger5 === void 0 || _this$logger5.logInfo({
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, _this$parseData3, _this$parseData4;
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
- value: this.merchantAmount || ((_this$parseData3 = this.parseData) === null || _this$parseData3 === void 0 || (_this$parseData3 = _this$parseData3.paymentSessionFactor) === null || _this$parseData3 === void 0 || (_this$parseData3 = _this$parseData3.paymentAmount) === null || _this$parseData3 === void 0 ? void 0 : _this$parseData3.value),
364
- currency: this.merchantCurrency || ((_this$parseData4 = this.parseData) === null || _this$parseData4 === void 0 || (_this$parseData4 = _this$parseData4.paymentSessionFactor) === null || _this$parseData4 === void 0 || (_this$parseData4 = _this$parseData4.paymentAmount) === null || _this$parseData4 === void 0 ? void 0 : _this$parseData4.currency)
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$session2, _this$session2$comple;
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$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, payStatus[status]);
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$logger7, _this$parseData5, _this$logger6, _ref4, recurringInfo, version, _this$logger8;
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$logger6 = this.logger) === null || _this$logger6 === void 0 || _this$logger6.logError({
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$logger7 = this.logger) === null || _this$logger7 === void 0 || _this$logger7.logInfo({
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$parseData5 = this.parseData) === null || _this$parseData5 === void 0 ? void 0 : _this$parseData5.paymentSessionFactor) || {}, recurringInfo = _ref4.recurringInfo;
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$logger8 = this.logger) === null || _this$logger8 === void 0 || _this$logger8.logError({
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$session3;
597
+ var _this$session$abort, _this$session5;
491
598
  this.paymentStatus = PAYMENT_STATUS.NORMAL;
492
- this.session && ((_this$session$abort = (_this$session3 = this.session).abort) === null || _this$session$abort === void 0 ? void 0 : _this$session$abort.call(_this$session3));
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$parseData6;
503
- var _ref5 = ((_this$parseData6 = this.parseData) === null || _this$parseData6 === void 0 ? void 0 : _this$parseData6.paymentSessionFactor) || {},
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$parseData7;
554
- var _ref6 = ((_this$parseData7 = this.parseData) === null || _this$parseData7 === void 0 ? void 0 : _this$parseData7.paymentSessionFactor) || {},
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$parseData8;
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$parseData8 = this.parseData) === null || _this$parseData8 === void 0 || (_this$parseData8 = _this$parseData8.paymentSessionConfig) === null || _this$parseData8 === void 0 ? void 0 : _this$parseData8.productScene
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: ''
@@ -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, 'value' | 'currency'>;
578
+ paymentAmount?: Pick<IAmount, 'amount' | 'currency'>;
579
579
  }
580
580
  export interface CashierSdkActionQueryResult {
581
581
  supportedLanguages?: any[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alipay/ams-checkout",
3
- "version": "0.0.1781004142-dev.11",
3
+ "version": "0.0.1781004142-dev.13",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "exports": {