@alipay/ams-checkout 0.0.1705563413-dev.0 → 0.0.1705989903-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,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 = '2.0.0';
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',
@@ -311,6 +315,9 @@ var ComponentApp = /*#__PURE__*/function () {
311
315
  var _this4 = this;
312
316
  return new Promise(function (resolve, reject) {
313
317
  _this4._loadAppPromiseResolve = resolve;
318
+ _this4.AMSSDK.logger.logError({
319
+ title: 'sdk_event_webAppPreLoadStart'
320
+ });
314
321
  setTimeout(function () {
315
322
  reject(ERRORMESSAGE.CREATECOMPONENT_ERROR.LOAD_APP_TIMEOUT);
316
323
  }, loadTimeLimit !== null && loadTimeLimit !== void 0 ? loadTimeLimit : LOADTIME_LIMIT);
@@ -349,7 +356,8 @@ var ComponentApp = /*#__PURE__*/function () {
349
356
  params = {
350
357
  paymentSessionData: _this5._renderParams && ((_this5$_renderParams = _this5._renderParams) === null || _this5$_renderParams === void 0 ? void 0 : _this5$_renderParams.sessionData) || '',
351
358
  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
359
+ notRedirectAfterComplete: ((_this5$_renderParams3 = _this5._renderParams) === null || _this5$_renderParams3 === void 0 ? void 0 : _this5$_renderParams3.notRedirectAfterComplete) === true,
360
+ merchantAppointParam: _this5._merchantAppointParam
353
361
  };
354
362
  /**
355
363
  * @description Simulated or unnecessary scenarios
@@ -445,7 +453,7 @@ var ComponentApp = /*#__PURE__*/function () {
445
453
  resolve(res);
446
454
  }
447
455
  }).catch(function (err) {
448
- if ([componentSignEnum.CASHIER_PAYMENT_CARD, componentSignEnum.VAULTING_CARD].includes(_this5._componentSign)) {
456
+ if ([componentSignEnum.CASHIER_PAYMENT_CARD, componentSignEnum.VAULTING_CARD, componentSignEnum.CASHIER_PAYMENT_APM].includes(_this5._componentSign)) {
449
457
  return resolve({
450
458
  success: false
451
459
  });
@@ -899,6 +907,7 @@ var ComponentApp = /*#__PURE__*/function () {
899
907
  }
900
908
  if (data.context.event === EVENT.dismissLoading.name) {
901
909
  var _data$context$data3;
910
+ this.dismissLoadingFunc(false);
902
911
  this.dispatchToSDK(EVENT.eventCallback.name, {
903
912
  code: 'SDK_END_OF_LOADING',
904
913
  message: ((_data$context$data3 = data.context.data) === null || _data$context$data3 === void 0 ? void 0 : _data$context$data3.message) || ''
@@ -951,6 +960,10 @@ var ComponentApp = /*#__PURE__*/function () {
951
960
  this._multipleCallbackEvents = data.context.data;
952
961
  return;
953
962
  }
963
+ if (data.context.event === EVENT.appHeartBeat.name) {
964
+ this.handleAppHeartBeat();
965
+ return;
966
+ }
954
967
  if (data.context.event === EVENT.eventCallback.name) {
955
968
  this.AMSSDK.logger.logInfo({
956
969
  title: 'sdk_event_event_callback'
@@ -960,24 +973,31 @@ var ComponentApp = /*#__PURE__*/function () {
960
973
  // The plug-in communicates with the sdk after processing
961
974
  this.dispatchToSDK(data.context.event, data.context.data, data.context.eventCallbackId);
962
975
  }
976
+ }, {
977
+ key: "dismissLoadingFunc",
978
+ value: function dismissLoadingFunc() {
979
+ var _document$getElementB2;
980
+ var isShowMockup = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
981
+ var mockup = document.getElementById(MOCKUP_ID);
982
+ if (mockup) {
983
+ mockup.style.background = 'rgb(0, 0, 0, 0.6)';
984
+ mockup.style.display = isShowMockup ? 'block' : 'none';
985
+ }
986
+ (_document$getElementB2 = document.getElementById(LOADING_ID)) === null || _document$getElementB2 === void 0 || _document$getElementB2.remove();
987
+ }
963
988
  }, {
964
989
  key: "handleSizeChanged",
965
990
  value: function handleSizeChanged(data) {
966
991
  var _data$context$data4;
967
- if (((_data$context$data4 = data.context.data) === null || _data$context$data4 === void 0 ? void 0 : _data$context$data4.height) <= 1) return;
968
992
  var cashier = document.getElementById(COMPONENT_CONTAINER_ID);
993
+ 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;
969
994
  cashier.style.height = "".concat(data.context.data.height, "px");
995
+ this.app.style.opacity = '1';
970
996
  if (this._renderDisplayType === renderDisplayTypeEnum.popup) {
971
- var _document$getElementB2;
972
- var mockup = document.getElementById(MOCKUP_ID);
973
- if (mockup) {
974
- mockup.style.background = 'rgb(0, 0, 0, 0.6)';
975
- mockup.style.display = 'block';
976
- }
977
- (_document$getElementB2 = document.getElementById(LOADING_ID)) === null || _document$getElementB2 === void 0 || _document$getElementB2.remove();
978
997
  if (this.platform === 'desktop') {
979
- cashier.classList.add("".concat(COMPONENT_CONTAINER_ID, "-").concat(this.platform, "-animation"));
980
998
  if (data.context.data.width) cashier.style.width = "".concat(data.context.data.width, "px");
999
+ cashier.classList.add("".concat(COMPONENT_CONTAINER_ID, "-").concat(this.platform, "-animation"));
1000
+ this.app.style.height = "".concat(data.context.data.height, "px");
981
1001
  }
982
1002
  if (this.platform === 'mobile') {
983
1003
  cashier.classList.add("".concat(COMPONENT_CONTAINER_ID, "-").concat(this.platform, "-animation"));
@@ -985,6 +1005,9 @@ var ComponentApp = /*#__PURE__*/function () {
985
1005
  var animationStyle = document.getElementById(animationStyleId);
986
1006
  if (animationStyle) animationStyle === null || animationStyle === void 0 || animationStyle.remove();
987
1007
 
1008
+ // 此style用于弹窗出现和高度变化时动画,动画不同,属性不同
1009
+ this.app.style.height = parseInt(this.app.style.height) > 0 ? '100%' : "".concat(data.context.data.height, "px");
1010
+
988
1011
  // 弹出和弹入动画
989
1012
  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 }");
990
1013
  // 创建style标签
@@ -1002,31 +1025,32 @@ var ComponentApp = /*#__PURE__*/function () {
1002
1025
  cashier.style.transition = 'height 0.28s ease-in-out';
1003
1026
  }, 500);
1004
1027
  }
1028
+ // 关闭loading,保留蒙层
1029
+ this.dismissLoadingFunc();
1005
1030
  }
1006
1031
  if (this._renderDisplayType === renderDisplayTypeEnum.inline) {
1007
1032
  var _document$getElementB3;
1008
1033
  (_document$getElementB3 = document.getElementById(LOADING_ID)) === null || _document$getElementB3 === void 0 || _document$getElementB3.remove();
1034
+ this.app.style.height = "".concat(data.context.data.height, "px");
1009
1035
  }
1010
- this.app.style.height = "".concat(data.context.data.height, "px");
1011
- this.app.style.opacity = '1';
1012
1036
  }
1013
1037
  }, {
1014
1038
  key: "handleRedirect",
1015
1039
  value: function handleRedirect(data) {
1016
- var _this7 = this;
1040
+ var _data$isDestroy,
1041
+ _this7 = this;
1017
1042
  var _data = typeof data === 'string' ? {
1018
1043
  normalUrl: data
1019
- } : {
1044
+ } : _objectSpread(_objectSpread({}, data), {}, {
1020
1045
  applinkUrl: (data === null || data === void 0 ? void 0 : data.applinkUrl) || '',
1021
1046
  schemeUrl: (data === null || data === void 0 ? void 0 : data.schemeUrl) || '',
1022
1047
  normalUrl: (data === null || data === void 0 ? void 0 : data.normalUrl) || '',
1023
- target: data === null || data === void 0 ? void 0 : data.target
1024
- };
1048
+ target: data === null || data === void 0 ? void 0 : data.target,
1049
+ isDestroy: (_data$isDestroy = data === null || data === void 0 ? void 0 : data.isDestroy) !== null && _data$isDestroy !== void 0 ? _data$isDestroy : true
1050
+ });
1025
1051
  this.AMSSDK.logger.logInfo({
1026
1052
  title: 'sdk_event_call_url_start'
1027
- }, {
1028
- redirectInfo: JSON.stringify(_data)
1029
- }).send();
1053
+ }, _objectSpread({}, data)).send();
1030
1054
  var successCallback = function successCallback(type, url) {
1031
1055
  _this7.dispatchToSDK(EVENT.eventCallback.name, {
1032
1056
  code: eventCodeEnum.SDK_CALL_URL_SUCCESS,
@@ -1061,20 +1085,27 @@ var ComponentApp = /*#__PURE__*/function () {
1061
1085
  window.open(_data.normalUrl);
1062
1086
  return;
1063
1087
  }
1064
- this.cleanContainer();
1088
+ if (_data.target === targetEnum.REPLACE && !(_data !== null && _data !== void 0 && _data.applinkUrl) && !(_data !== null && _data !== void 0 && _data.schemeUrl)) {
1089
+ if (!_data.normalUrl) return failCallback(RedirectType.NormalUrl, '');
1090
+ successCallback(RedirectType.NormalUrl, _data.normalUrl);
1091
+ window.location.replace(_data.normalUrl);
1092
+ return;
1093
+ }
1094
+ // 销毁iframe和全局loading
1095
+ if (_data !== null && _data !== void 0 && _data.isDestroy) this.cleanContainer();
1065
1096
  this.AMSSDK._redirect({
1066
1097
  applinkUrl: _data === null || _data === void 0 ? void 0 : _data.applinkUrl
1067
1098
  }).then(function () {
1068
1099
  successCallback(RedirectType.ApplinkUrl, _data === null || _data === void 0 ? void 0 : _data.applinkUrl);
1069
1100
  }).catch(function () {
1070
- failCallback(RedirectType.ApplinkUrl, _data === null || _data === void 0 ? void 0 : _data.applinkUrl);
1101
+ if (_data !== null && _data !== void 0 && _data.applinkUrl) failCallback(RedirectType.ApplinkUrl, _data === null || _data === void 0 ? void 0 : _data.applinkUrl);
1071
1102
  return _this7.AMSSDK._redirect({
1072
1103
  schemeUrl: _data === null || _data === void 0 ? void 0 : _data.schemeUrl
1073
1104
  });
1074
1105
  }).then(function () {
1075
1106
  successCallback(RedirectType.SchemeUrl, _data === null || _data === void 0 ? void 0 : _data.schemeUrl);
1076
1107
  }).catch(function () {
1077
- failCallback(RedirectType.SchemeUrl, _data === null || _data === void 0 ? void 0 : _data.schemeUrl);
1108
+ if (_data !== null && _data !== void 0 && _data.schemeUrl) failCallback(RedirectType.SchemeUrl, _data === null || _data === void 0 ? void 0 : _data.schemeUrl);
1078
1109
  return _this7.AMSSDK._redirect({
1079
1110
  normalUrl: _data === null || _data === void 0 ? void 0 : _data.normalUrl
1080
1111
  });
@@ -1103,7 +1134,7 @@ var ComponentApp = /*#__PURE__*/function () {
1103
1134
  this.dispatchToSDK(EVENT.eventCallback.name, {
1104
1135
  code: eventInfo.eventName,
1105
1136
  result: {
1106
- result: eventInfo.eventResult
1137
+ result: eventInfo.eventResult || {}
1107
1138
  }
1108
1139
  });
1109
1140
  }
@@ -1111,6 +1142,56 @@ var ComponentApp = /*#__PURE__*/function () {
1111
1142
  console.log("not valid ".concat(eventInfoName, " in "), this._multipleCallbackEvents);
1112
1143
  }
1113
1144
  }
1145
+ }, {
1146
+ key: "handleAppHeartBeat",
1147
+ value: function handleAppHeartBeat() {
1148
+ var _this8 = this;
1149
+ try {
1150
+ if (!this._webAppHeartBeatTimeoutFn) {
1151
+ this._webAppHeartBeatTimeoutFn = function () {
1152
+ if (_this8.isAppAttached()) {
1153
+ _this8.AMSSDK.logger.logError({
1154
+ title: 'sdk_error_appHeartBeatTimeout'
1155
+ });
1156
+ }
1157
+ };
1158
+ }
1159
+ if (this._webAppHeartBeatTimeoutId) {
1160
+ clearTimeout(this._webAppHeartBeatTimeoutId);
1161
+ this._webAppHeartBeatTimeoutId = null;
1162
+ }
1163
+ if (this._webAppHeartBeatTimeoutFn) {
1164
+ this._webAppHeartBeatTimeoutId = setTimeout(this._webAppHeartBeatTimeoutFn, TIMEOUT_WEB_APP_HEART_BEAT);
1165
+ }
1166
+ setTimeout(function () {
1167
+ if (_this8.isAppAttached()) {
1168
+ _this8.dispatchToApp({
1169
+ context: {
1170
+ event: 'sdkHeartBeat',
1171
+ data: {}
1172
+ }
1173
+ });
1174
+ }
1175
+ }, TIME_DELAY_SEND_HEART_BEAT);
1176
+ } catch (error) {
1177
+ this.AMSSDK.logger.logError({
1178
+ title: 'sdk_error_handleAppHeartBeat'
1179
+ }, {
1180
+ errorMessage: error.message
1181
+ });
1182
+ }
1183
+ }
1184
+ }, {
1185
+ key: "isAppAttached",
1186
+ value: function isAppAttached() {
1187
+ return this.app || this.popupApp;
1188
+ }
1189
+ }, {
1190
+ key: "isWindowVisible",
1191
+ value: function isWindowVisible() {
1192
+ var _document;
1193
+ return ((_document = document) === null || _document === void 0 ? void 0 : _document.visibilityState) === 'visible';
1194
+ }
1114
1195
  }, {
1115
1196
  key: "handleCloseBtnShow",
1116
1197
  value: function handleCloseBtnShow(showClose) {
@@ -1219,6 +1300,7 @@ var ComponentApp = /*#__PURE__*/function () {
1219
1300
  renderDisplayType: (_this$_renderParams8 = this._renderParams) === null || _this$_renderParams8 === void 0 ? void 0 : _this$_renderParams8.renderDisplayType,
1220
1301
  appearance: (_this$_renderParams9 = this._renderParams) === null || _this$_renderParams9 === void 0 ? void 0 : _this$_renderParams9.appearance,
1221
1302
  notRedirectAfterComplete: ((_this$_renderParams10 = this._renderParams) === null || _this$_renderParams10 === void 0 ? void 0 : _this$_renderParams10.notRedirectAfterComplete) === true,
1303
+ merchantAppointParam: this._merchantAppointParam,
1222
1304
  envInfo: {
1223
1305
  screenHeight: screen.height,
1224
1306
  screenWidth: screen.width
@@ -1226,6 +1308,9 @@ var ComponentApp = /*#__PURE__*/function () {
1226
1308
  }
1227
1309
  }
1228
1310
  });
1311
+ this.AMSSDK.logger.logInfo({
1312
+ title: 'sdk_event_renderComponent'
1313
+ });
1229
1314
  this.dispatchToApp({
1230
1315
  context: {
1231
1316
  event: 'web-sdk-performance',
@@ -1235,16 +1320,16 @@ var ComponentApp = /*#__PURE__*/function () {
1235
1320
  }
1236
1321
  });
1237
1322
  // eslint-disable-next-line no-empty
1238
- _context8.next = 16;
1323
+ _context8.next = 17;
1239
1324
  break;
1240
- case 14:
1241
- _context8.prev = 14;
1325
+ case 15:
1326
+ _context8.prev = 15;
1242
1327
  _context8.t0 = _context8["catch"](0);
1243
- case 16:
1328
+ case 17:
1244
1329
  case "end":
1245
1330
  return _context8.stop();
1246
1331
  }
1247
- }, _callee8, this, [[0, 14]]);
1332
+ }, _callee8, this, [[0, 15]]);
1248
1333
  }));
1249
1334
  function sendRenderEvent() {
1250
1335
  return _sendRenderEvent.apply(this, arguments);
@@ -1259,19 +1344,22 @@ var ComponentApp = /*#__PURE__*/function () {
1259
1344
  key: "cleanContainer",
1260
1345
  value: function cleanContainer() {
1261
1346
  var _document$getElementB4,
1262
- _this8 = this;
1347
+ _this9 = this;
1263
1348
  var immediately = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
1264
- this._loadAppPromiseResolve && this._loadAppPromiseResolve(true);
1265
- this._performanceData = [];
1266
- this._isInitComponent = false;
1267
- this.app = null;
1349
+ this.AMSSDK.logger.logInfo({
1350
+ title: 'sdk_event_clean_component'
1351
+ }).send();
1268
1352
  (_document$getElementB4 = document.getElementById(LOADING_ID)) === null || _document$getElementB4 === void 0 || _document$getElementB4.remove();
1269
1353
  this.hideComponentAnimation();
1270
1354
  var mockup = document.getElementById(MOCKUP_ID);
1271
1355
  mockup === null || mockup === void 0 || mockup.classList.add("".concat(MOCKUP_ID, "-hidden"));
1356
+ this._loadAppPromiseResolve && this._loadAppPromiseResolve(true);
1357
+ this._performanceData = [];
1358
+ this._isInitComponent = false;
1359
+ this.app = null;
1272
1360
  if (immediately) this.cleanElement();else {
1273
1361
  setTimeout(function () {
1274
- _this8.cleanElement();
1362
+ _this9.cleanElement();
1275
1363
  }, 300);
1276
1364
  }
1277
1365
  }
@@ -1279,6 +1367,7 @@ var ComponentApp = /*#__PURE__*/function () {
1279
1367
  key: "hideComponentAnimation",
1280
1368
  value: function hideComponentAnimation() {
1281
1369
  var container = document.getElementById(COMPONENT_CONTAINER_ID);
1370
+ if (this.app) this.app.style.height = container.style.height;
1282
1371
  if (container) {
1283
1372
  // size变化动画取消
1284
1373
  container.style.transition = '';
@@ -1330,8 +1419,8 @@ var ComponentApp = /*#__PURE__*/function () {
1330
1419
  key: "submitForm",
1331
1420
  value: function submitForm(data) {
1332
1421
  var attributes = data.attributes;
1333
- var _document = document,
1334
- body = _document.body;
1422
+ var _document2 = document,
1423
+ body = _document2.body;
1335
1424
  var form = document.createElement('form');
1336
1425
  form.setAttribute('height', '1');
1337
1426
  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
  }
@@ -24,6 +24,8 @@ export interface IoptionsParams {
24
24
  };
25
25
  product?: string;
26
26
  }
27
+ export interface IApplePayOptionsParams extends Pick<IoptionsParams, 'locale' | 'environment' | 'onEventCallback' | 'analytics'> {
28
+ }
27
29
  export type Iselector = string;
28
30
  export declare enum renderDisplayTypeEnum {
29
31
  'popup' = "popup",
@@ -42,6 +44,7 @@ export declare enum componentSignEnum {
42
44
  'EASY_PAY_WALLET' = "EASY_PAY_WALLET",
43
45
  'CASHIER_PAYMENT_CARD' = "CASHIER_PAYMENT_CARD",
44
46
  'CASHIER_PAYMENT_BANK' = "CASHIER_PAYMENT_BANK",
47
+ 'CASHIER_PAYMENT_APM' = "CASHIER_PAYMENT_APM",
45
48
  'AUTO_DEBIT_WALLET' = "AUTO_DEBIT_WALLET",
46
49
  'NONE' = "NONE",
47
50
  'VAULTING_CARD' = "VAULTING_CARD"
@@ -51,12 +54,14 @@ export declare enum productSceneEnum {
51
54
  'CASHIER_PAYMENT' = "CASHIER_PAYMENT",
52
55
  'AUTO_DEBIT' = "AUTO_DEBIT",
53
56
  'VAULTING' = "VAULTING",
54
- 'FLASH_BUY' = "FLASH_BUY"
57
+ 'FLASH_BUY' = "FLASH_BUY",
58
+ 'CARD_APPLE_PAY' = "CARD_APPLE_PAY"
55
59
  }
56
60
  export declare enum paymentMethodCategoryTypeEnum {
57
61
  'CARD' = "CARD",
58
62
  'WALLET' = "WALLET",
59
- 'BANK' = "BANK"
63
+ 'BANK' = "BANK",
64
+ 'APM' = "APM"
60
65
  }
61
66
  export interface DeviceIdParameter {
62
67
  scene?: string;
@@ -68,14 +73,21 @@ export interface DeviceIdParameter {
68
73
  export interface IcreateComponent {
69
74
  sessionData: string;
70
75
  paymentSessionData?: string;
71
- appearance?: Record<string, any>;
72
76
  notRedirectAfterComplete?: boolean;
77
+ appearance?: Record<string, any>;
78
+ merchantAppointParam?: IMerchantAppointParam;
73
79
  }
74
80
  export interface IappendIframeNodesParams extends IcreateComponent {
75
81
  paymentSessionMetaData: IpaymentSessionMetaData;
76
82
  renderDisplayType: renderDisplayTypeEnum;
77
83
  selector?: Iselector;
78
84
  }
85
+ export interface IMerchantAppointParam {
86
+ storedCard?: IStoredCard;
87
+ }
88
+ export interface IStoredCard {
89
+ needCVV?: boolean;
90
+ }
79
91
  export interface IbillingAddress {
80
92
  region?: string;
81
93
  address1?: string;
@@ -122,6 +134,26 @@ export interface IpaymentSessionMetaData {
122
134
  autoDebitWithToken: boolean;
123
135
  skipSdkQuery: boolean;
124
136
  };
137
+ paymentSessionFactor?: {
138
+ applePay?: {
139
+ merchantCapabilities?: string[];
140
+ supportedNetworks?: string[];
141
+ };
142
+ merchantInfo?: {
143
+ registeredCountry?: string;
144
+ partnerId?: string;
145
+ };
146
+ order?: {
147
+ orderDescription?: string;
148
+ };
149
+ paymentAmount?: {
150
+ value?: string;
151
+ currency?: string;
152
+ };
153
+ paymentMethodInfo?: {
154
+ paymentMethodType?: string;
155
+ };
156
+ };
125
157
  }
126
158
  export declare enum localeEnum {
127
159
  'en-US' = "en-US"
@@ -240,7 +272,8 @@ export interface Ianalytics {
240
272
  }
241
273
  export declare enum targetEnum {
242
274
  BLANK = "_blank",
243
- SELF = "_self"
275
+ SELF = "_self",
276
+ REPLACE = "_replace"
244
277
  }
245
278
  export declare enum errorEnum {
246
279
  PARAMS = "PARAMS",
@@ -281,6 +314,7 @@ export interface CashierSdkActionQueryRequest {
281
314
  paymentSessionConfig?: IpaymentSessionConfig;
282
315
  paymentMethodType?: string;
283
316
  notRedirectAfterComplete?: boolean;
317
+ merchantAppointParam?: IMerchantAppointParam;
284
318
  extParams?: any;
285
319
  }
286
320
  export interface CashierSubmitPayRequest {
@@ -323,6 +357,23 @@ export interface CashierSdkActionQueryResult {
323
357
  schemeUrl?: string;
324
358
  authUrl?: string;
325
359
  }
360
+ /**
361
+ * Get App Pay Payment Session Request.
362
+ */
363
+ export interface ApplePayPaymentSessionRequest {
364
+ validateUrl: string;
365
+ paymentSessionData: string;
366
+ }
367
+ /**
368
+ * Get App Pay Payment Session Result.
369
+ */
370
+ export interface ApplePayPaymentSessionResult {
371
+ merchantSessionObject: string;
372
+ success: boolean;
373
+ errorCode?: string;
374
+ errorMessage?: string;
375
+ message?: string;
376
+ }
326
377
  export declare enum redirectTypeEnum {
327
378
  UNSAFE_BROWSER = "UNSAFE_BROWSER",
328
379
  SAFETY_BROWSER = "SAFETY_BROWSER",
@@ -355,7 +406,10 @@ export declare enum eventCodeEnum {
355
406
  SDK_INIT_PARAMETER_ERROR = "SDK_INIT_PARAMETER_ERROR",
356
407
  SDK_CREATECOMPONENT_ERROR = "SDK_CREATECOMPONENT_ERROR",
357
408
  SDK_CALL_URL_ERROR = "SDK_CALL_URL_ERROR",
358
- SDK_CALL_URL_SUCCESS = "SDK_CALL_URL_SUCCESS"
409
+ SDK_CALL_URL_SUCCESS = "SDK_CALL_URL_SUCCESS",
410
+ SDK_PAYMENT_FINISH = "SDK_PAYMENT_FINISH",
411
+ SDK_PAYMENT_FAIL = "SDK_PAYMENT_FAIL",
412
+ SDK_PAYMENT_CANCEL = "SDK_PAYMENT_CANCEL"
359
413
  }
360
414
  export declare enum RedirectType {
361
415
  ApplinkUrl = "ApplinkUrl",