@alipay/ams-checkout 1.7.2 → 1.10.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.10.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',
@@ -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
@@ -445,7 +450,7 @@ var ComponentApp = /*#__PURE__*/function () {
445
450
  resolve(res);
446
451
  }
447
452
  }).catch(function (err) {
448
- 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)) {
449
454
  return resolve({
450
455
  success: false
451
456
  });
@@ -899,6 +904,7 @@ var ComponentApp = /*#__PURE__*/function () {
899
904
  }
900
905
  if (data.context.event === EVENT.dismissLoading.name) {
901
906
  var _data$context$data3;
907
+ this.dismissLoadingFunc(false);
902
908
  this.dispatchToSDK(EVENT.eventCallback.name, {
903
909
  code: 'SDK_END_OF_LOADING',
904
910
  message: ((_data$context$data3 = data.context.data) === null || _data$context$data3 === void 0 ? void 0 : _data$context$data3.message) || ''
@@ -951,6 +957,10 @@ var ComponentApp = /*#__PURE__*/function () {
951
957
  this._multipleCallbackEvents = data.context.data;
952
958
  return;
953
959
  }
960
+ if (data.context.event === EVENT.appHeartBeat.name) {
961
+ this.handleAppHeartBeat();
962
+ return;
963
+ }
954
964
  if (data.context.event === EVENT.eventCallback.name) {
955
965
  this.AMSSDK.logger.logInfo({
956
966
  title: 'sdk_event_event_callback'
@@ -960,24 +970,31 @@ var ComponentApp = /*#__PURE__*/function () {
960
970
  // The plug-in communicates with the sdk after processing
961
971
  this.dispatchToSDK(data.context.event, data.context.data, data.context.eventCallbackId);
962
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
+ }
963
985
  }, {
964
986
  key: "handleSizeChanged",
965
987
  value: function handleSizeChanged(data) {
966
988
  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
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;
969
991
  cashier.style.height = "".concat(data.context.data.height, "px");
992
+ this.app.style.opacity = '1';
970
993
  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
994
  if (this.platform === 'desktop') {
979
- cashier.classList.add("".concat(COMPONENT_CONTAINER_ID, "-").concat(this.platform, "-animation"));
980
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");
981
998
  }
982
999
  if (this.platform === 'mobile') {
983
1000
  cashier.classList.add("".concat(COMPONENT_CONTAINER_ID, "-").concat(this.platform, "-animation"));
@@ -985,6 +1002,9 @@ var ComponentApp = /*#__PURE__*/function () {
985
1002
  var animationStyle = document.getElementById(animationStyleId);
986
1003
  if (animationStyle) animationStyle === null || animationStyle === void 0 || animationStyle.remove();
987
1004
 
1005
+ // 此style用于弹窗出现和高度变化时动画,动画不同,属性不同
1006
+ this.app.style.height = parseInt(this.app.style.height) > 0 ? '100%' : "".concat(data.context.data.height, "px");
1007
+
988
1008
  // 弹出和弹入动画
989
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 }");
990
1010
  // 创建style标签
@@ -1002,31 +1022,32 @@ var ComponentApp = /*#__PURE__*/function () {
1002
1022
  cashier.style.transition = 'height 0.28s ease-in-out';
1003
1023
  }, 500);
1004
1024
  }
1025
+ // 关闭loading,保留蒙层
1026
+ this.dismissLoadingFunc();
1005
1027
  }
1006
1028
  if (this._renderDisplayType === renderDisplayTypeEnum.inline) {
1007
1029
  var _document$getElementB3;
1008
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");
1009
1032
  }
1010
- this.app.style.height = "".concat(data.context.data.height, "px");
1011
- this.app.style.opacity = '1';
1012
1033
  }
1013
1034
  }, {
1014
1035
  key: "handleRedirect",
1015
1036
  value: function handleRedirect(data) {
1016
- var _this7 = this;
1037
+ var _data$isDestroy,
1038
+ _this7 = this;
1017
1039
  var _data = typeof data === 'string' ? {
1018
1040
  normalUrl: data
1019
- } : {
1041
+ } : _objectSpread(_objectSpread({}, data), {}, {
1020
1042
  applinkUrl: (data === null || data === void 0 ? void 0 : data.applinkUrl) || '',
1021
1043
  schemeUrl: (data === null || data === void 0 ? void 0 : data.schemeUrl) || '',
1022
1044
  normalUrl: (data === null || data === void 0 ? void 0 : data.normalUrl) || '',
1023
- target: data === null || data === void 0 ? void 0 : data.target
1024
- };
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
+ });
1025
1048
  this.AMSSDK.logger.logInfo({
1026
1049
  title: 'sdk_event_call_url_start'
1027
- }, {
1028
- redirectInfo: JSON.stringify(_data)
1029
- }).send();
1050
+ }, _objectSpread({}, data)).send();
1030
1051
  var successCallback = function successCallback(type, url) {
1031
1052
  _this7.dispatchToSDK(EVENT.eventCallback.name, {
1032
1053
  code: eventCodeEnum.SDK_CALL_URL_SUCCESS,
@@ -1061,20 +1082,27 @@ var ComponentApp = /*#__PURE__*/function () {
1061
1082
  window.open(_data.normalUrl);
1062
1083
  return;
1063
1084
  }
1064
- 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();
1065
1093
  this.AMSSDK._redirect({
1066
1094
  applinkUrl: _data === null || _data === void 0 ? void 0 : _data.applinkUrl
1067
1095
  }).then(function () {
1068
1096
  successCallback(RedirectType.ApplinkUrl, _data === null || _data === void 0 ? void 0 : _data.applinkUrl);
1069
1097
  }).catch(function () {
1070
- 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);
1071
1099
  return _this7.AMSSDK._redirect({
1072
1100
  schemeUrl: _data === null || _data === void 0 ? void 0 : _data.schemeUrl
1073
1101
  });
1074
1102
  }).then(function () {
1075
1103
  successCallback(RedirectType.SchemeUrl, _data === null || _data === void 0 ? void 0 : _data.schemeUrl);
1076
1104
  }).catch(function () {
1077
- 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);
1078
1106
  return _this7.AMSSDK._redirect({
1079
1107
  normalUrl: _data === null || _data === void 0 ? void 0 : _data.normalUrl
1080
1108
  });
@@ -1103,7 +1131,7 @@ var ComponentApp = /*#__PURE__*/function () {
1103
1131
  this.dispatchToSDK(EVENT.eventCallback.name, {
1104
1132
  code: eventInfo.eventName,
1105
1133
  result: {
1106
- result: eventInfo.eventResult
1134
+ result: eventInfo.eventResult || {}
1107
1135
  }
1108
1136
  });
1109
1137
  }
@@ -1111,6 +1139,56 @@ var ComponentApp = /*#__PURE__*/function () {
1111
1139
  console.log("not valid ".concat(eventInfoName, " in "), this._multipleCallbackEvents);
1112
1140
  }
1113
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
+ }
1114
1192
  }, {
1115
1193
  key: "handleCloseBtnShow",
1116
1194
  value: function handleCloseBtnShow(showClose) {
@@ -1219,6 +1297,7 @@ var ComponentApp = /*#__PURE__*/function () {
1219
1297
  renderDisplayType: (_this$_renderParams8 = this._renderParams) === null || _this$_renderParams8 === void 0 ? void 0 : _this$_renderParams8.renderDisplayType,
1220
1298
  appearance: (_this$_renderParams9 = this._renderParams) === null || _this$_renderParams9 === void 0 ? void 0 : _this$_renderParams9.appearance,
1221
1299
  notRedirectAfterComplete: ((_this$_renderParams10 = this._renderParams) === null || _this$_renderParams10 === void 0 ? void 0 : _this$_renderParams10.notRedirectAfterComplete) === true,
1300
+ merchantAppointParam: this._merchantAppointParam,
1222
1301
  envInfo: {
1223
1302
  screenHeight: screen.height,
1224
1303
  screenWidth: screen.width
@@ -1226,6 +1305,9 @@ var ComponentApp = /*#__PURE__*/function () {
1226
1305
  }
1227
1306
  }
1228
1307
  });
1308
+ this.AMSSDK.logger.logInfo({
1309
+ title: 'sdk_event_renderComponent'
1310
+ });
1229
1311
  this.dispatchToApp({
1230
1312
  context: {
1231
1313
  event: 'web-sdk-performance',
@@ -1235,16 +1317,16 @@ var ComponentApp = /*#__PURE__*/function () {
1235
1317
  }
1236
1318
  });
1237
1319
  // eslint-disable-next-line no-empty
1238
- _context8.next = 16;
1320
+ _context8.next = 17;
1239
1321
  break;
1240
- case 14:
1241
- _context8.prev = 14;
1322
+ case 15:
1323
+ _context8.prev = 15;
1242
1324
  _context8.t0 = _context8["catch"](0);
1243
- case 16:
1325
+ case 17:
1244
1326
  case "end":
1245
1327
  return _context8.stop();
1246
1328
  }
1247
- }, _callee8, this, [[0, 14]]);
1329
+ }, _callee8, this, [[0, 15]]);
1248
1330
  }));
1249
1331
  function sendRenderEvent() {
1250
1332
  return _sendRenderEvent.apply(this, arguments);
@@ -1259,19 +1341,22 @@ var ComponentApp = /*#__PURE__*/function () {
1259
1341
  key: "cleanContainer",
1260
1342
  value: function cleanContainer() {
1261
1343
  var _document$getElementB4,
1262
- _this8 = this;
1344
+ _this9 = this;
1263
1345
  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;
1346
+ this.AMSSDK.logger.logInfo({
1347
+ title: 'sdk_event_clean_component'
1348
+ }).send();
1268
1349
  (_document$getElementB4 = document.getElementById(LOADING_ID)) === null || _document$getElementB4 === void 0 || _document$getElementB4.remove();
1269
1350
  this.hideComponentAnimation();
1270
1351
  var mockup = document.getElementById(MOCKUP_ID);
1271
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;
1272
1357
  if (immediately) this.cleanElement();else {
1273
1358
  setTimeout(function () {
1274
- _this8.cleanElement();
1359
+ _this9.cleanElement();
1275
1360
  }, 300);
1276
1361
  }
1277
1362
  }
@@ -1279,6 +1364,7 @@ var ComponentApp = /*#__PURE__*/function () {
1279
1364
  key: "hideComponentAnimation",
1280
1365
  value: function hideComponentAnimation() {
1281
1366
  var container = document.getElementById(COMPONENT_CONTAINER_ID);
1367
+ if (this.app) this.app.style.height = container.style.height;
1282
1368
  if (container) {
1283
1369
  // size变化动画取消
1284
1370
  container.style.transition = '';
@@ -1330,8 +1416,8 @@ var ComponentApp = /*#__PURE__*/function () {
1330
1416
  key: "submitForm",
1331
1417
  value: function submitForm(data) {
1332
1418
  var attributes = data.attributes;
1333
- var _document = document,
1334
- body = _document.body;
1419
+ var _document2 = document,
1420
+ body = _document2.body;
1335
1421
  var form = document.createElement('form');
1336
1422
  form.setAttribute('height', '1');
1337
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
  }
@@ -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,9 +357,26 @@ 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
- UNSAFE_BROWSER = "UNSAFE_BROWSER",
328
- SAFETY_BROWSER = "SAFETY_BROWSER",
378
+ UNSAFE_BROWSER = "UNSAFE_BROWSER",// 非安全浏览器
379
+ SAFETY_BROWSER = "SAFETY_BROWSER",// 安全浏览器
329
380
  INVOKE_SDK = "INVOKE_SDK"
330
381
  }
331
382
  export interface ActionForm {
@@ -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",