@alipay/ams-checkout 1.7.1 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,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,7 +17,7 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
15
17
  * 2. If applicable, the use of the Software is also subject to the terms and conditions of any non-disclosure agreement signed by you and the relevant Ant Group entity.
16
18
  */
17
19
  /* eslint-disable @typescript-eslint/no-explicit-any */
18
- import { COMPONENTPLUGINID, COMPONENT_CLOSE_BLOCK_ID, COMPONENT_CONTAINER_ID, COMPONENT_RETENTION_ID, COMPONENT_SECTION_ID, ERRORMESSAGE, EVENT, LISTENER_PREFIX, LOADING_ID, LOADTIME_LIMIT, MOCKUP_ID, POPUP_LOADTIME_LOG_LIMIT } from "../../constant";
20
+ import { COMPONENTPLUGINID, COMPONENT_CLOSE_BLOCK_ID, COMPONENT_CONTAINER_ID, COMPONENT_RETENTION_ID, COMPONENT_SECTION_ID, ERRORMESSAGE, EVENT, LISTENER_PREFIX, LOADING_ID, LOADTIME_LIMIT, MOCKUP_ID, POPUP_LOADTIME_LOG_LIMIT, TIMEOUT_WEB_APP_HEART_BEAT, TIME_DELAY_SEND_HEART_BEAT } from "../../constant";
19
21
  import { queryPaymentInfo, submitPayInfo } from "../../service";
20
22
  import { componentSignEnum, eventCodeEnum, messageName, platformEnum, productSceneEnum, RedirectType, renderDisplayTypeEnum, targetEnum } from "../../types";
21
23
  import { getType, isJsonString, isPC } from "../../util";
@@ -48,7 +50,10 @@ var ComponentApp = /*#__PURE__*/function () {
48
50
  _defineProperty(this, "_appLocationSearch", void 0);
49
51
  _defineProperty(this, "_renderDisplayType", renderDisplayTypeEnum.popup);
50
52
  _defineProperty(this, "_multipleCallbackEvents", void 0);
51
- this._appVersion = '1.7.1';
53
+ _defineProperty(this, "_merchantAppointParam", void 0);
54
+ _defineProperty(this, "_webAppHeartBeatTimeoutId", void 0);
55
+ _defineProperty(this, "_webAppHeartBeatTimeoutFn", void 0);
56
+ this._appVersion = '1.9.0';
52
57
  this._isInitComponent = false;
53
58
  this._selector = "#".concat(COMPONENT_SECTION_ID);
54
59
  this.createIframeNode = function () {
@@ -120,6 +125,7 @@ var ComponentApp = /*#__PURE__*/function () {
120
125
  var _this$_renderParams3,
121
126
  _this = this;
122
127
  var product = (_this$_renderParams3 = this._renderParams) === null || _this$_renderParams3 === void 0 || (_this$_renderParams3 = _this$_renderParams3.paymentSessionMetaData) === null || _this$_renderParams3 === void 0 || (_this$_renderParams3 = _this$_renderParams3.paymentSessionConfig) === null || _this$_renderParams3 === void 0 ? void 0 : _this$_renderParams3.productScene;
128
+ if (componentSignEnum.CASHIER_PAYMENT_APM === this._componentSign) return;
123
129
  if (componentSignEnum.CASHIER_PAYMENT_BANK === this._componentSign) {
124
130
  this.AMSSDK.logger.logInfo({
125
131
  title: 'sdk_event_security_unneeded_scenarios'
@@ -240,11 +246,9 @@ var ComponentApp = /*#__PURE__*/function () {
240
246
  this._componentSign = componentSign;
241
247
  if ((_renderParams = renderParams) !== null && _renderParams !== void 0 && _renderParams.selector) this._selector = renderParams.selector;
242
248
  this._renderDisplayType = renderParams.renderDisplayType;
249
+ this._merchantAppointParam = renderParams.merchantAppointParam;
243
250
  var insertedNode = this._renderDisplayType === renderDisplayTypeEnum.inline ? "#".concat(COMPONENT_CONTAINER_ID) : this._selector;
244
251
  this.initLoggerMeta();
245
- this.AMSSDK.logger.logInfo({
246
- title: 'sdk_event_createComponent'
247
- }).send();
248
252
  this.initSecurity();
249
253
  this._performanceData.push({
250
254
  key: 'sdk_create_component',
@@ -339,7 +343,7 @@ var ComponentApp = /*#__PURE__*/function () {
339
343
  this._actionQueryPromise = new Promise( /*#__PURE__*/function () {
340
344
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(resolve, reject) {
341
345
  var _this5$_renderParams, _this5$_renderParams2, _this5$_renderParams3, _this5$_renderParams4;
342
- var envInfo, params, search, _this5$_renderParams5, _ref3, _ref3$productSceneVer, productSceneVersion, _ref3$productScene, productScene, _ref4, _ref4$action, _ref4$action2, _ref4$action2$autoDeb, autoDebitWithToken, _this5$_renderParams6, _action$web, _action$wap, action, signType;
346
+ var envInfo, params, _this5$_renderParams5, _ref3, _ref3$productSceneVer, productSceneVersion, _ref3$productScene, productScene, _ref4, _ref4$action, _ref4$action2, _ref4$action2$autoDeb, autoDebitWithToken, _this5$_renderParams6, _action$web, _action$wap, action, signType;
343
347
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
344
348
  while (1) switch (_context2.prev = _context2.next) {
345
349
  case 0:
@@ -349,7 +353,8 @@ var ComponentApp = /*#__PURE__*/function () {
349
353
  params = {
350
354
  paymentSessionData: _this5._renderParams && ((_this5$_renderParams = _this5._renderParams) === null || _this5$_renderParams === void 0 ? void 0 : _this5$_renderParams.sessionData) || '',
351
355
  paymentSessionConfig: (_this5$_renderParams2 = _this5._renderParams) === null || _this5$_renderParams2 === void 0 || (_this5$_renderParams2 = _this5$_renderParams2.paymentSessionMetaData) === null || _this5$_renderParams2 === void 0 ? void 0 : _this5$_renderParams2.paymentSessionConfig,
352
- notRedirectAfterComplete: ((_this5$_renderParams3 = _this5._renderParams) === null || _this5$_renderParams3 === void 0 ? void 0 : _this5$_renderParams3.notRedirectAfterComplete) === true
356
+ notRedirectAfterComplete: ((_this5$_renderParams3 = _this5._renderParams) === null || _this5$_renderParams3 === void 0 ? void 0 : _this5$_renderParams3.notRedirectAfterComplete) === true,
357
+ merchantAppointParam: _this5._merchantAppointParam
353
358
  };
354
359
  /**
355
360
  * @description Simulated or unnecessary scenarios
@@ -364,7 +369,7 @@ var ComponentApp = /*#__PURE__*/function () {
364
369
  }));
365
370
  case 4:
366
371
  if (!(componentSignEnum.CASHIER_PAYMENT_CARD === _this5._componentSign || componentSignEnum.VAULTING_CARD === _this5._componentSign)) {
367
- _context2.next = 11;
372
+ _context2.next = 10;
368
373
  break;
369
374
  }
370
375
  params.paymentMethodType = 'CARD';
@@ -372,62 +377,60 @@ var ComponentApp = /*#__PURE__*/function () {
372
377
  return _this5.getDeviceIdAndLog();
373
378
  case 8:
374
379
  envInfo.deviceId = _context2.sent;
375
- // TODO 加一个后门 判断是否为小程序环境
376
- search = window.location.search;
377
- if (window.navigator.userAgent.indexOf('miniProgram') > -1 || search.indexOf('miniProgram') > -1) {
380
+ if (window.navigator.userAgent.indexOf('miniProgram') > -1) {
378
381
  envInfo.extendInfo = {
379
382
  WAP_SUB_TYPE: 'WECHAT_MINI_PROGRAM'
380
383
  };
381
384
  }
382
- case 11:
385
+ case 10:
383
386
  if (!(componentSignEnum.EASY_PAY_WALLET === _this5._componentSign)) {
384
- _context2.next = 19;
387
+ _context2.next = 18;
385
388
  break;
386
389
  }
387
390
  _ref3 = params.paymentSessionConfig || {}, _ref3$productSceneVer = _ref3.productSceneVersion, productSceneVersion = _ref3$productSceneVer === void 0 ? '' : _ref3$productSceneVer, _ref3$productScene = _ref3.productScene, productScene = _ref3$productScene === void 0 ? '' : _ref3$productScene;
388
391
  _ref4 = ((_this5$_renderParams5 = _this5._renderParams) === null || _this5$_renderParams5 === void 0 ? void 0 : _this5$_renderParams5.paymentSessionMetaData) || {}, _ref4$action = _ref4.action, _ref4$action2 = _ref4$action === void 0 ? {} : _ref4$action, _ref4$action2$autoDeb = _ref4$action2.autoDebitWithToken, autoDebitWithToken = _ref4$action2$autoDeb === void 0 ? false : _ref4$action2$autoDeb;
389
392
  if (!(productScene === productSceneEnum.EASY_PAY && productSceneVersion === '2.0' && !autoDebitWithToken)) {
390
- _context2.next = 16;
393
+ _context2.next = 15;
391
394
  break;
392
395
  }
393
396
  return _context2.abrupt("return", resolve({
394
397
  message: 'sdk no need to make query request',
395
398
  success: true
396
399
  }));
397
- case 16:
398
- _context2.next = 18;
400
+ case 15:
401
+ _context2.next = 17;
399
402
  return _this5.getDeviceIdAndLog();
400
- case 18:
403
+ case 17:
401
404
  envInfo.deviceId = _context2.sent;
402
- case 19:
405
+ case 18:
403
406
  if (!(componentSignEnum.AUTO_DEBIT_WALLET === _this5._componentSign)) {
404
- _context2.next = 29;
407
+ _context2.next = 28;
405
408
  break;
406
409
  }
407
410
  action = ((_this5$_renderParams6 = _this5._renderParams) === null || _this5$_renderParams6 === void 0 || (_this5$_renderParams6 = _this5$_renderParams6.paymentSessionMetaData) === null || _this5$_renderParams6 === void 0 ? void 0 : _this5$_renderParams6.action) || {};
408
411
  signType = isPC() ? action === null || action === void 0 || (_action$web = action.web) === null || _action$web === void 0 ? void 0 : _action$web.signType : action === null || action === void 0 || (_action$wap = action.wap) === null || _action$wap === void 0 ? void 0 : _action$wap.signType;
409
412
  if (!(signType === 'SMS')) {
410
- _context2.next = 24;
413
+ _context2.next = 23;
411
414
  break;
412
415
  }
413
416
  return _context2.abrupt("return", resolve({
414
417
  message: 'sdk no need to make query request',
415
418
  success: true
416
419
  }));
417
- case 24:
420
+ case 23:
418
421
  if (!(!signType || signType !== 'REDIRECT')) {
419
- _context2.next = 26;
422
+ _context2.next = 25;
420
423
  break;
421
424
  }
422
425
  return _context2.abrupt("return", resolve({
423
426
  success: false
424
427
  }));
425
- case 26:
426
- _context2.next = 28;
428
+ case 25:
429
+ _context2.next = 27;
427
430
  return _this5.getDeviceIdAndLog();
428
- case 28:
431
+ case 27:
429
432
  envInfo.deviceId = _context2.sent;
430
- case 29:
433
+ case 28:
431
434
  _this5.AMSSDK.logger.logInfo({
432
435
  title: 'sdk_event_sdkQuery'
433
436
  }, {
@@ -447,7 +450,7 @@ var ComponentApp = /*#__PURE__*/function () {
447
450
  resolve(res);
448
451
  }
449
452
  }).catch(function (err) {
450
- if ([componentSignEnum.CASHIER_PAYMENT_CARD, componentSignEnum.VAULTING_CARD].includes(_this5._componentSign)) {
453
+ if ([componentSignEnum.CASHIER_PAYMENT_CARD, componentSignEnum.VAULTING_CARD, componentSignEnum.CASHIER_PAYMENT_APM].includes(_this5._componentSign)) {
451
454
  return resolve({
452
455
  success: false
453
456
  });
@@ -463,7 +466,7 @@ var ComponentApp = /*#__PURE__*/function () {
463
466
  paymentSessionConfig: JSON.stringify(params.paymentSessionConfig)
464
467
  }).send();
465
468
  });
466
- case 31:
469
+ case 30:
467
470
  case "end":
468
471
  return _context2.stop();
469
472
  }
@@ -785,8 +788,7 @@ var ComponentApp = /*#__PURE__*/function () {
785
788
  event: 'appEventCallback',
786
789
  eventCallbackId: eventContext === null || eventContext === void 0 ? void 0 : eventContext.eventCallbackId,
787
790
  data: {
788
- // TODO 预发前删除window.location.search,这个是用于调试配置的后门
789
- userAgent: window.navigator.userAgent + window.location.search
791
+ userAgent: window.navigator.userAgent
790
792
  }
791
793
  }
792
794
  });
@@ -902,6 +904,7 @@ var ComponentApp = /*#__PURE__*/function () {
902
904
  }
903
905
  if (data.context.event === EVENT.dismissLoading.name) {
904
906
  var _data$context$data3;
907
+ this.dismissLoadingFunc(false);
905
908
  this.dispatchToSDK(EVENT.eventCallback.name, {
906
909
  code: 'SDK_END_OF_LOADING',
907
910
  message: ((_data$context$data3 = data.context.data) === null || _data$context$data3 === void 0 ? void 0 : _data$context$data3.message) || ''
@@ -954,6 +957,10 @@ var ComponentApp = /*#__PURE__*/function () {
954
957
  this._multipleCallbackEvents = data.context.data;
955
958
  return;
956
959
  }
960
+ if (data.context.event === EVENT.appHeartBeat.name) {
961
+ this.handleAppHeartBeat();
962
+ return;
963
+ }
957
964
  if (data.context.event === EVENT.eventCallback.name) {
958
965
  this.AMSSDK.logger.logInfo({
959
966
  title: 'sdk_event_event_callback'
@@ -963,24 +970,31 @@ var ComponentApp = /*#__PURE__*/function () {
963
970
  // The plug-in communicates with the sdk after processing
964
971
  this.dispatchToSDK(data.context.event, data.context.data, data.context.eventCallbackId);
965
972
  }
973
+ }, {
974
+ key: "dismissLoadingFunc",
975
+ value: function dismissLoadingFunc() {
976
+ var _document$getElementB2;
977
+ var isShowMockup = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
978
+ var mockup = document.getElementById(MOCKUP_ID);
979
+ if (mockup) {
980
+ mockup.style.background = 'rgb(0, 0, 0, 0.6)';
981
+ mockup.style.display = isShowMockup ? 'block' : 'none';
982
+ }
983
+ (_document$getElementB2 = document.getElementById(LOADING_ID)) === null || _document$getElementB2 === void 0 || _document$getElementB2.remove();
984
+ }
966
985
  }, {
967
986
  key: "handleSizeChanged",
968
987
  value: function handleSizeChanged(data) {
969
988
  var _data$context$data4;
970
- if (((_data$context$data4 = data.context.data) === null || _data$context$data4 === void 0 ? void 0 : _data$context$data4.height) <= 1) return;
971
989
  var cashier = document.getElementById(COMPONENT_CONTAINER_ID);
990
+ if (((_data$context$data4 = data.context.data) === null || _data$context$data4 === void 0 ? void 0 : _data$context$data4.height) <= 1 || data.context.data.height === parseInt(cashier.style.height)) return;
972
991
  cashier.style.height = "".concat(data.context.data.height, "px");
992
+ this.app.style.opacity = '1';
973
993
  if (this._renderDisplayType === renderDisplayTypeEnum.popup) {
974
- var _document$getElementB2;
975
- var mockup = document.getElementById(MOCKUP_ID);
976
- if (mockup) {
977
- mockup.style.background = 'rgb(0, 0, 0, 0.6)';
978
- mockup.style.display = 'block';
979
- }
980
- (_document$getElementB2 = document.getElementById(LOADING_ID)) === null || _document$getElementB2 === void 0 || _document$getElementB2.remove();
981
994
  if (this.platform === 'desktop') {
982
- cashier.classList.add("".concat(COMPONENT_CONTAINER_ID, "-").concat(this.platform, "-animation"));
983
995
  if (data.context.data.width) cashier.style.width = "".concat(data.context.data.width, "px");
996
+ cashier.classList.add("".concat(COMPONENT_CONTAINER_ID, "-").concat(this.platform, "-animation"));
997
+ this.app.style.height = "".concat(data.context.data.height, "px");
984
998
  }
985
999
  if (this.platform === 'mobile') {
986
1000
  cashier.classList.add("".concat(COMPONENT_CONTAINER_ID, "-").concat(this.platform, "-animation"));
@@ -988,6 +1002,9 @@ var ComponentApp = /*#__PURE__*/function () {
988
1002
  var animationStyle = document.getElementById(animationStyleId);
989
1003
  if (animationStyle) animationStyle === null || animationStyle === void 0 || animationStyle.remove();
990
1004
 
1005
+ // 此style用于弹窗出现和高度变化时动画,动画不同,属性不同
1006
+ this.app.style.height = parseInt(this.app.style.height) > 0 ? '100%' : "".concat(data.context.data.height, "px");
1007
+
991
1008
  // 弹出和弹入动画
992
1009
  var runkeyframes = "@keyframes ".concat(COMPONENT_CONTAINER_ID, "-slide-in {\n 0% {\n height: 1px;\n }\n 100% {\n height: ").concat(data.context.data.height, "px;\n }\n }\n @keyframes ").concat(COMPONENT_CONTAINER_ID, "-slide-out {\n 0% {\n height: ").concat(data.context.data.height, "px;\n opacity: 1;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n height: 1px;\n opacity: 0;\n }\n }");
993
1010
  // 创建style标签
@@ -1005,31 +1022,32 @@ var ComponentApp = /*#__PURE__*/function () {
1005
1022
  cashier.style.transition = 'height 0.28s ease-in-out';
1006
1023
  }, 500);
1007
1024
  }
1025
+ // 关闭loading,保留蒙层
1026
+ this.dismissLoadingFunc();
1008
1027
  }
1009
1028
  if (this._renderDisplayType === renderDisplayTypeEnum.inline) {
1010
1029
  var _document$getElementB3;
1011
1030
  (_document$getElementB3 = document.getElementById(LOADING_ID)) === null || _document$getElementB3 === void 0 || _document$getElementB3.remove();
1031
+ this.app.style.height = "".concat(data.context.data.height, "px");
1012
1032
  }
1013
- this.app.style.height = "".concat(data.context.data.height, "px");
1014
- this.app.style.opacity = '1';
1015
1033
  }
1016
1034
  }, {
1017
1035
  key: "handleRedirect",
1018
1036
  value: function handleRedirect(data) {
1019
- var _this7 = this;
1037
+ var _data$isDestroy,
1038
+ _this7 = this;
1020
1039
  var _data = typeof data === 'string' ? {
1021
1040
  normalUrl: data
1022
- } : {
1041
+ } : _objectSpread(_objectSpread({}, data), {}, {
1023
1042
  applinkUrl: (data === null || data === void 0 ? void 0 : data.applinkUrl) || '',
1024
1043
  schemeUrl: (data === null || data === void 0 ? void 0 : data.schemeUrl) || '',
1025
1044
  normalUrl: (data === null || data === void 0 ? void 0 : data.normalUrl) || '',
1026
- target: data === null || data === void 0 ? void 0 : data.target
1027
- };
1045
+ target: data === null || data === void 0 ? void 0 : data.target,
1046
+ isDestroy: (_data$isDestroy = data === null || data === void 0 ? void 0 : data.isDestroy) !== null && _data$isDestroy !== void 0 ? _data$isDestroy : true
1047
+ });
1028
1048
  this.AMSSDK.logger.logInfo({
1029
1049
  title: 'sdk_event_call_url_start'
1030
- }, {
1031
- redirectInfo: JSON.stringify(_data)
1032
- }).send();
1050
+ }, _objectSpread({}, data)).send();
1033
1051
  var successCallback = function successCallback(type, url) {
1034
1052
  _this7.dispatchToSDK(EVENT.eventCallback.name, {
1035
1053
  code: eventCodeEnum.SDK_CALL_URL_SUCCESS,
@@ -1064,20 +1082,27 @@ var ComponentApp = /*#__PURE__*/function () {
1064
1082
  window.open(_data.normalUrl);
1065
1083
  return;
1066
1084
  }
1067
- this.cleanContainer();
1085
+ if (_data.target === targetEnum.REPLACE && !(_data !== null && _data !== void 0 && _data.applinkUrl) && !(_data !== null && _data !== void 0 && _data.schemeUrl)) {
1086
+ if (!_data.normalUrl) return failCallback(RedirectType.NormalUrl, '');
1087
+ successCallback(RedirectType.NormalUrl, _data.normalUrl);
1088
+ window.location.replace(_data.normalUrl);
1089
+ return;
1090
+ }
1091
+ // 销毁iframe和全局loading
1092
+ if (_data !== null && _data !== void 0 && _data.isDestroy) this.cleanContainer();
1068
1093
  this.AMSSDK._redirect({
1069
1094
  applinkUrl: _data === null || _data === void 0 ? void 0 : _data.applinkUrl
1070
1095
  }).then(function () {
1071
1096
  successCallback(RedirectType.ApplinkUrl, _data === null || _data === void 0 ? void 0 : _data.applinkUrl);
1072
1097
  }).catch(function () {
1073
- failCallback(RedirectType.ApplinkUrl, _data === null || _data === void 0 ? void 0 : _data.applinkUrl);
1098
+ if (_data !== null && _data !== void 0 && _data.applinkUrl) failCallback(RedirectType.ApplinkUrl, _data === null || _data === void 0 ? void 0 : _data.applinkUrl);
1074
1099
  return _this7.AMSSDK._redirect({
1075
1100
  schemeUrl: _data === null || _data === void 0 ? void 0 : _data.schemeUrl
1076
1101
  });
1077
1102
  }).then(function () {
1078
1103
  successCallback(RedirectType.SchemeUrl, _data === null || _data === void 0 ? void 0 : _data.schemeUrl);
1079
1104
  }).catch(function () {
1080
- failCallback(RedirectType.SchemeUrl, _data === null || _data === void 0 ? void 0 : _data.schemeUrl);
1105
+ if (_data !== null && _data !== void 0 && _data.schemeUrl) failCallback(RedirectType.SchemeUrl, _data === null || _data === void 0 ? void 0 : _data.schemeUrl);
1081
1106
  return _this7.AMSSDK._redirect({
1082
1107
  normalUrl: _data === null || _data === void 0 ? void 0 : _data.normalUrl
1083
1108
  });
@@ -1106,7 +1131,7 @@ var ComponentApp = /*#__PURE__*/function () {
1106
1131
  this.dispatchToSDK(EVENT.eventCallback.name, {
1107
1132
  code: eventInfo.eventName,
1108
1133
  result: {
1109
- result: eventInfo.eventResult
1134
+ result: eventInfo.eventResult || {}
1110
1135
  }
1111
1136
  });
1112
1137
  }
@@ -1114,6 +1139,56 @@ var ComponentApp = /*#__PURE__*/function () {
1114
1139
  console.log("not valid ".concat(eventInfoName, " in "), this._multipleCallbackEvents);
1115
1140
  }
1116
1141
  }
1142
+ }, {
1143
+ key: "handleAppHeartBeat",
1144
+ value: function handleAppHeartBeat() {
1145
+ var _this8 = this;
1146
+ try {
1147
+ if (!this._webAppHeartBeatTimeoutFn) {
1148
+ this._webAppHeartBeatTimeoutFn = function () {
1149
+ if (_this8.isAppAttached()) {
1150
+ _this8.AMSSDK.logger.logError({
1151
+ title: 'sdk_error_appHeartBeatTimeout'
1152
+ });
1153
+ }
1154
+ };
1155
+ }
1156
+ if (this._webAppHeartBeatTimeoutId) {
1157
+ clearTimeout(this._webAppHeartBeatTimeoutId);
1158
+ this._webAppHeartBeatTimeoutId = null;
1159
+ }
1160
+ if (this._webAppHeartBeatTimeoutFn) {
1161
+ this._webAppHeartBeatTimeoutId = setTimeout(this._webAppHeartBeatTimeoutFn, TIMEOUT_WEB_APP_HEART_BEAT);
1162
+ }
1163
+ setTimeout(function () {
1164
+ if (_this8.isAppAttached()) {
1165
+ _this8.dispatchToApp({
1166
+ context: {
1167
+ event: 'sdkHeartBeat',
1168
+ data: {}
1169
+ }
1170
+ });
1171
+ }
1172
+ }, TIME_DELAY_SEND_HEART_BEAT);
1173
+ } catch (error) {
1174
+ this.AMSSDK.logger.logError({
1175
+ title: 'sdk_error_handleAppHeartBeat'
1176
+ }, {
1177
+ errorMessage: error.message
1178
+ });
1179
+ }
1180
+ }
1181
+ }, {
1182
+ key: "isAppAttached",
1183
+ value: function isAppAttached() {
1184
+ return this.app || this.popupApp;
1185
+ }
1186
+ }, {
1187
+ key: "isWindowVisible",
1188
+ value: function isWindowVisible() {
1189
+ var _document;
1190
+ return ((_document = document) === null || _document === void 0 ? void 0 : _document.visibilityState) === 'visible';
1191
+ }
1117
1192
  }, {
1118
1193
  key: "handleCloseBtnShow",
1119
1194
  value: function handleCloseBtnShow(showClose) {
@@ -1222,6 +1297,7 @@ var ComponentApp = /*#__PURE__*/function () {
1222
1297
  renderDisplayType: (_this$_renderParams8 = this._renderParams) === null || _this$_renderParams8 === void 0 ? void 0 : _this$_renderParams8.renderDisplayType,
1223
1298
  appearance: (_this$_renderParams9 = this._renderParams) === null || _this$_renderParams9 === void 0 ? void 0 : _this$_renderParams9.appearance,
1224
1299
  notRedirectAfterComplete: ((_this$_renderParams10 = this._renderParams) === null || _this$_renderParams10 === void 0 ? void 0 : _this$_renderParams10.notRedirectAfterComplete) === true,
1300
+ merchantAppointParam: this._merchantAppointParam,
1225
1301
  envInfo: {
1226
1302
  screenHeight: screen.height,
1227
1303
  screenWidth: screen.width
@@ -1229,6 +1305,9 @@ var ComponentApp = /*#__PURE__*/function () {
1229
1305
  }
1230
1306
  }
1231
1307
  });
1308
+ this.AMSSDK.logger.logInfo({
1309
+ title: 'sdk_event_renderComponent'
1310
+ });
1232
1311
  this.dispatchToApp({
1233
1312
  context: {
1234
1313
  event: 'web-sdk-performance',
@@ -1238,16 +1317,16 @@ var ComponentApp = /*#__PURE__*/function () {
1238
1317
  }
1239
1318
  });
1240
1319
  // eslint-disable-next-line no-empty
1241
- _context8.next = 16;
1320
+ _context8.next = 17;
1242
1321
  break;
1243
- case 14:
1244
- _context8.prev = 14;
1322
+ case 15:
1323
+ _context8.prev = 15;
1245
1324
  _context8.t0 = _context8["catch"](0);
1246
- case 16:
1325
+ case 17:
1247
1326
  case "end":
1248
1327
  return _context8.stop();
1249
1328
  }
1250
- }, _callee8, this, [[0, 14]]);
1329
+ }, _callee8, this, [[0, 15]]);
1251
1330
  }));
1252
1331
  function sendRenderEvent() {
1253
1332
  return _sendRenderEvent.apply(this, arguments);
@@ -1262,19 +1341,22 @@ var ComponentApp = /*#__PURE__*/function () {
1262
1341
  key: "cleanContainer",
1263
1342
  value: function cleanContainer() {
1264
1343
  var _document$getElementB4,
1265
- _this8 = this;
1344
+ _this9 = this;
1266
1345
  var immediately = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
1267
- this._loadAppPromiseResolve && this._loadAppPromiseResolve(true);
1268
- this._performanceData = [];
1269
- this._isInitComponent = false;
1270
- this.app = null;
1346
+ this.AMSSDK.logger.logInfo({
1347
+ title: 'sdk_event_clean_component'
1348
+ }).send();
1271
1349
  (_document$getElementB4 = document.getElementById(LOADING_ID)) === null || _document$getElementB4 === void 0 || _document$getElementB4.remove();
1272
1350
  this.hideComponentAnimation();
1273
1351
  var mockup = document.getElementById(MOCKUP_ID);
1274
1352
  mockup === null || mockup === void 0 || mockup.classList.add("".concat(MOCKUP_ID, "-hidden"));
1353
+ this._loadAppPromiseResolve && this._loadAppPromiseResolve(true);
1354
+ this._performanceData = [];
1355
+ this._isInitComponent = false;
1356
+ this.app = null;
1275
1357
  if (immediately) this.cleanElement();else {
1276
1358
  setTimeout(function () {
1277
- _this8.cleanElement();
1359
+ _this9.cleanElement();
1278
1360
  }, 300);
1279
1361
  }
1280
1362
  }
@@ -1282,6 +1364,7 @@ var ComponentApp = /*#__PURE__*/function () {
1282
1364
  key: "hideComponentAnimation",
1283
1365
  value: function hideComponentAnimation() {
1284
1366
  var container = document.getElementById(COMPONENT_CONTAINER_ID);
1367
+ if (this.app) this.app.style.height = container.style.height;
1285
1368
  if (container) {
1286
1369
  // size变化动画取消
1287
1370
  container.style.transition = '';
@@ -1333,8 +1416,8 @@ var ComponentApp = /*#__PURE__*/function () {
1333
1416
  key: "submitForm",
1334
1417
  value: function submitForm(data) {
1335
1418
  var attributes = data.attributes;
1336
- var _document = document,
1337
- body = _document.body;
1419
+ var _document2 = document,
1420
+ body = _document2.body;
1338
1421
  var form = document.createElement('form');
1339
1422
  form.setAttribute('height', '1');
1340
1423
  form.setAttribute('width', '1');
@@ -50,6 +50,8 @@ function requestInstance(options) {
50
50
  withCredentials: (_options$withCredenti = options.withCredentials) !== null && _options$withCredenti !== void 0 ? _options$withCredenti : true,
51
51
  method: (options === null || options === void 0 ? void 0 : options.method) || 'POST'
52
52
  });
53
+ console.log('baseURL', baseURL);
54
+ console.log('_headers', _headers);
53
55
  return instance.request;
54
56
  }
55
57
 
@@ -97,21 +99,25 @@ function _request() {
97
99
  })];
98
100
  startTime = Date.now();
99
101
  _context.prev = 5;
102
+ console.log('requestInstance options', options);
103
+ console.log('requestInstance -data', _data);
100
104
  myRequest = requestInstance(options);
101
- _context.next = 9;
105
+ _context.next = 11;
102
106
  return myRequest({
103
107
  data: _data
104
108
  });
105
- case 9:
109
+ case 11:
106
110
  _yield$myRequest = _context.sent;
107
111
  data = _yield$myRequest.data;
108
112
  headers = _yield$myRequest.headers;
113
+ console.log('requestInstance data', data);
114
+ console.log('requestInstance headers', headers);
109
115
  resData = data || {};
110
116
  traceId = get(headers, 'Mgw-TraceId') || get(headers, 'mgw-traceid', '');
111
117
  resData.traceId = traceId || '';
112
118
  handleGetWayError = fomatGetwayError(headers, traceId);
113
119
  if (!(handleGetWayError !== null && handleGetWayError !== void 0 && handleGetWayError.errorCode)) {
114
- _context.next = 21;
120
+ _context.next = 25;
115
121
  break;
116
122
  }
117
123
  errorMessage = (resData === null || resData === void 0 ? void 0 : resData.errorMessage) || (handleGetWayError === null || handleGetWayError === void 0 ? void 0 : handleGetWayError.errorMessage);
@@ -130,7 +136,7 @@ function _request() {
130
136
  errorCode: errorCode,
131
137
  success: false
132
138
  }));
133
- case 21:
139
+ case 25:
134
140
  logger.reportRPC({
135
141
  name: options === null || options === void 0 ? void 0 : options['Operation-Type'],
136
142
  label: 'request',
@@ -141,8 +147,8 @@ function _request() {
141
147
  traceId: traceId
142
148
  }).send();
143
149
  return _context.abrupt("return", resData);
144
- case 25:
145
- _context.prev = 25;
150
+ case 29:
151
+ _context.prev = 29;
146
152
  _context.t0 = _context["catch"](5);
147
153
  _error = safeJson(_context.t0 === null || _context.t0 === void 0 ? void 0 : _context.t0.message, {
148
154
  success: false,
@@ -164,11 +170,11 @@ function _request() {
164
170
  errorCode: _errorCode,
165
171
  errorMessage: _error === null || _error === void 0 ? void 0 : _error.message
166
172
  }));
167
- case 32:
173
+ case 36:
168
174
  case "end":
169
175
  return _context.stop();
170
176
  }
171
- }, _callee, null, [[5, 25]]);
177
+ }, _callee, null, [[5, 29]]);
172
178
  }));
173
179
  return _request.apply(this, arguments);
174
180
  }
@@ -1,5 +1,13 @@
1
- import { CashierSdkActionQueryRequest, CashierSdkActionQueryResult, CashierSubmitPayRequest, CashierSubmitPayResult, RequestConfig } from '../types';
1
+ import { ApplePayPaymentSessionRequest, ApplePayPaymentSessionResult, CashierSdkActionQueryRequest, CashierSdkActionQueryResult, CashierSubmitPayRequest, CashierSubmitPayResult, RequestConfig } from '../types';
2
2
  import { Logger } from '../util/logger';
3
3
  export declare function queryPaymentInfo(params: CashierSdkActionQueryRequest, options: RequestConfig, logger: Logger): Promise<CashierSdkActionQueryResult>;
4
4
  export declare function antomConfig(options: RequestConfig, logger: Logger): Promise<any>;
5
5
  export declare function submitPayInfo(params: CashierSubmitPayRequest, options: RequestConfig, logger: Logger): Promise<CashierSubmitPayResult>;
6
+ /**
7
+ * Get merchant session by Apple Pay
8
+ * @param paymentSessionData
9
+ * @param params
10
+ * @param options
11
+ * @param logger
12
+ */
13
+ export declare function getApplePayPaymentSession(paymentSessionData: string, params: ApplePayPaymentSessionRequest, options: RequestConfig, logger: Logger): Promise<ApplePayPaymentSessionResult>;
@@ -78,6 +78,14 @@ function _antomConfig() {
78
78
  export function submitPayInfo(_x6, _x7, _x8) {
79
79
  return _submitPayInfo.apply(this, arguments);
80
80
  }
81
+
82
+ /**
83
+ * Get merchant session by Apple Pay
84
+ * @param paymentSessionData
85
+ * @param params
86
+ * @param options
87
+ * @param logger
88
+ */
81
89
  function _submitPayInfo() {
82
90
  _submitPayInfo = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(params, options, logger) {
83
91
  var hostSign;
@@ -97,4 +105,27 @@ function _submitPayInfo() {
97
105
  }, _callee3);
98
106
  }));
99
107
  return _submitPayInfo.apply(this, arguments);
108
+ }
109
+ export function getApplePayPaymentSession(_x9, _x10, _x11, _x12) {
110
+ return _getApplePayPaymentSession.apply(this, arguments);
111
+ }
112
+ function _getApplePayPaymentSession() {
113
+ _getApplePayPaymentSession = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(paymentSessionData, params, options, logger) {
114
+ var hostSign;
115
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
116
+ while (1) switch (_context4.prev = _context4.next) {
117
+ case 0:
118
+ hostSign = (paymentSessionData || '').split('&&')[1] || '';
119
+ console.log('getApplePayPaymentSession hostSign', hostSign);
120
+ return _context4.abrupt("return", request(params, _objectSpread(_objectSpread({}, options), {}, {
121
+ hostSign: hostSign,
122
+ 'Operation-Type': 'com.ipay.iexpcashier.cashier.createApplePayPaymentSession'
123
+ }), logger));
124
+ case 3:
125
+ case "end":
126
+ return _context4.stop();
127
+ }
128
+ }, _callee4);
129
+ }));
130
+ return _getApplePayPaymentSession.apply(this, arguments);
100
131
  }