@alipay/ams-checkout 0.0.1758783821-dev.1 → 0.0.1758783821-dev.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/README.md +17 -1
  2. package/dist/umd/ams-checkout.min.js +1 -1
  3. package/esm/component/popupWindow.style.d.ts +1 -0
  4. package/esm/component/popupWindow.style.js +5 -2
  5. package/esm/config/index.d.ts +1 -0
  6. package/esm/config/index.js +2 -1
  7. package/esm/config/request.js +14 -2
  8. package/esm/constant/index.d.ts +33 -12
  9. package/esm/constant/index.js +43 -18
  10. package/esm/core/component/element/EventCenter/index.d.ts +3 -1
  11. package/esm/core/component/element/EventCenter/index.js +48 -11
  12. package/esm/core/component/element/elementContainerService/containerService.d.ts +1 -0
  13. package/esm/core/component/element/elementContainerService/containerService.js +5 -0
  14. package/esm/core/component/element/elementController/index.d.ts +3 -8
  15. package/esm/core/component/element/elementController/index.js +152 -66
  16. package/esm/core/component/element/elementProcessor/addressProcessor.js +2 -3
  17. package/esm/core/component/element/elementProcessor/authProcessor.js +2 -3
  18. package/esm/core/component/element/elementProcessor/paymentProcessor.d.ts +2 -0
  19. package/esm/core/component/element/elementProcessor/paymentProcessor.js +36 -6
  20. package/esm/core/component/element/index.d.ts +3 -10
  21. package/esm/core/component/element/index.js +4 -1
  22. package/esm/core/component/element/mock.js +1 -0
  23. package/esm/core/component/element/type.d.ts +26 -6
  24. package/esm/core/component/element/type.js +18 -0
  25. package/esm/core/component/element/util.d.ts +6 -3
  26. package/esm/core/component/element/util.js +15 -2
  27. package/esm/foundation/core/index.js +28 -8
  28. package/esm/foundation/index.d.ts +1 -0
  29. package/esm/foundation/product-processor/easysafepay/index.js +4 -2
  30. package/esm/foundation/product-processor/element/index.js +1 -0
  31. package/esm/foundation/service/log/keys.js +2 -0
  32. package/esm/foundation/utils/payment_context_utils.js +1 -0
  33. package/esm/index.js +2 -1
  34. package/esm/plugin/component/cashierApp.d.ts +2 -0
  35. package/esm/plugin/component/cashierApp.js +2 -2
  36. package/esm/plugin/component/channel.js +20 -5
  37. package/esm/plugin/component/component.popup.style.d.ts +1 -0
  38. package/esm/plugin/component/component.popup.style.js +1 -1
  39. package/esm/plugin/component/index.d.ts +1 -0
  40. package/esm/plugin/component/index.js +9 -5
  41. package/esm/types/index.d.ts +18 -2
  42. package/esm/types/index.js +2 -1
  43. package/esm/util/index.js +4 -1
  44. package/esm/util/spm-map.d.ts +22 -2
  45. package/esm/util/spm-map.js +13 -1
  46. package/package.json +12 -7
  47. package/esm/core/component/oldElement/components/address.d.ts +0 -19
  48. package/esm/core/component/oldElement/components/address.js +0 -68
  49. package/esm/core/component/oldElement/components/auth.d.ts +0 -17
  50. package/esm/core/component/oldElement/components/auth.js +0 -60
  51. package/esm/core/component/oldElement/components/payment.d.ts +0 -19
  52. package/esm/core/component/oldElement/components/payment.js +0 -74
  53. package/esm/core/component/oldElement/index.d.ts +0 -59
  54. package/esm/core/component/oldElement/index.js +0 -956
  55. package/esm/core/component/oldElement/mock.d.ts +0 -6
  56. package/esm/core/component/oldElement/mock.js +0 -567
  57. package/esm/core/component/oldElement/type.d.ts +0 -354
  58. package/esm/core/component/oldElement/type.js +0 -81
  59. package/esm/core/component/oldElement/utils.d.ts +0 -13
  60. package/esm/core/component/oldElement/utils.js +0 -6
@@ -36,6 +36,20 @@ export declare enum ElementType {
36
36
  address = "address",
37
37
  payment = "payment"
38
38
  }
39
+ /**
40
+ * TODO 替换外外网链接
41
+ * 支付状态参考: https://yuque.antfin.com/antom_ka_team/yg9y7x/fe8xxqgbivnx5fd2#rGgE
42
+ */
43
+ export declare enum PaymentStatus {
44
+ SUCCESS = "SUCCESS",
45
+ PROCESSING = "PROCESSING",
46
+ CANCELLED = "CANCELLED",
47
+ PENDING = "PENDING",
48
+ S = "SUCCESS",
49
+ F = "FAIL",
50
+ U = "PROCESSING",
51
+ FAIL = "FAIL"
52
+ }
39
53
  export declare const MountElementType: {
40
54
  auth: ElementPaymentMethod;
41
55
  address: ElementPaymentMethod;
@@ -77,7 +91,8 @@ export declare enum ELEMENT_ENVIRONMENT {
77
91
  PROD = "PROD",
78
92
  SANDBOX = "SANDBOX"
79
93
  }
80
- export type ELEMENT_ENVIRONMENT_TYPE = keyof typeof ELEMENT_ENVIRONMENT | (typeof ELEMENT_ENVIRONMENT)[keyof typeof ELEMENT_ENVIRONMENT];
94
+ type ELEMENT_ENVIRONMENT_VALUE = 'dev' | 'test' | 'sit' | 'pre' | 'prod' | 'sandbox';
95
+ export type ELEMENT_ENVIRONMENT_TYPE = keyof typeof ELEMENT_ENVIRONMENT | (typeof ELEMENT_ENVIRONMENT)[keyof typeof ELEMENT_ENVIRONMENT] | ELEMENT_ENVIRONMENT_VALUE;
81
96
  export interface AddressMountComponentsParams {
82
97
  configParams?: AddressMountConfig;
83
98
  prefillValue: Array<AddressSubmitData>;
@@ -194,6 +209,8 @@ export interface ValidateResult<T = {}> {
194
209
  success: boolean;
195
210
  data: {
196
211
  success: boolean;
212
+ status: PaymentStatus;
213
+ message?: string;
197
214
  data: T;
198
215
  };
199
216
  }
@@ -365,7 +382,7 @@ export interface IElementOptions {
365
382
  appearance?: {
366
383
  theme: ThemeType.Default | ThemeType.Night;
367
384
  };
368
- onEventCallback?: ({ code, message, result, }: {
385
+ onEventCallback?: ({ code, message, result }: {
369
386
  code: EventCallbackCode;
370
387
  message: string;
371
388
  result?: any;
@@ -393,15 +410,18 @@ export interface IToastOptions {
393
410
  icon?: 'SUCCESS' | 'FAIL';
394
411
  spin?: boolean;
395
412
  }
396
- export interface IMerchantResponse {
397
- success?: boolean;
413
+ export interface ICommonApiResponse {
398
414
  error?: {
399
415
  code: string;
400
- message?: string;
416
+ message: string;
401
417
  traceId?: string;
402
418
  context?: any;
419
+ needChangeSessionForRetry?: boolean;
403
420
  };
404
- status?: string;
421
+ }
422
+ export interface IPaymentApiResponse extends ICommonApiResponse {
423
+ status: keyof typeof PaymentStatus;
424
+ userCanceled3D?: boolean;
405
425
  }
406
426
  export declare class InvalidElementConfigError extends Error {
407
427
  errors: Array<{
@@ -49,6 +49,22 @@ export var ElementType = /*#__PURE__*/function (ElementType) {
49
49
  ElementType["payment"] = "payment";
50
50
  return ElementType;
51
51
  }({});
52
+
53
+ /**
54
+ * TODO 替换外外网链接
55
+ * 支付状态参考: https://yuque.antfin.com/antom_ka_team/yg9y7x/fe8xxqgbivnx5fd2#rGgE
56
+ */
57
+ export var PaymentStatus = /*#__PURE__*/function (PaymentStatus) {
58
+ PaymentStatus["SUCCESS"] = "SUCCESS";
59
+ PaymentStatus["PROCESSING"] = "PROCESSING";
60
+ PaymentStatus["CANCELLED"] = "CANCELLED";
61
+ PaymentStatus["PENDING"] = "PENDING";
62
+ PaymentStatus["S"] = "SUCCESS";
63
+ PaymentStatus["F"] = "FAIL";
64
+ PaymentStatus["U"] = "PROCESSING";
65
+ PaymentStatus["FAIL"] = "FAIL";
66
+ return PaymentStatus;
67
+ }({});
52
68
  export var MountElementType = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, ElementType.auth, ElementPaymentMethod.AUTH_ELEMENT), ElementType.address, ElementPaymentMethod.ADDRESS_ELEMENT), ElementType.payment, ElementPaymentMethod.PAYMENT_ELEMENT), ElementPaymentMethod.AUTH_ELEMENT, ElementType.auth), ElementPaymentMethod.ADDRESS_ELEMENT, ElementType.address), ElementPaymentMethod.PAYMENT_ELEMENT, ElementType.payment);
53
69
  export var ThemeType = /*#__PURE__*/function (ThemeType) {
54
70
  ThemeType["NostalgicGray"] = "nostalgicGray";
@@ -85,6 +101,8 @@ export var ELEMENT_ENVIRONMENT = /*#__PURE__*/function (ELEMENT_ENVIRONMENT) {
85
101
  return ELEMENT_ENVIRONMENT;
86
102
  }({});
87
103
 
104
+ // environment集成代码都是小写,Element创建时也做了参数转为小写,但类型没处理
105
+
88
106
  // 将短横线命名转为小驼峰
89
107
 
90
108
  // 同时兼容短横线和小驼峰两种键名
@@ -10,7 +10,7 @@ export declare const formatElementOption: (options: IElementOptions) => {
10
10
  appearance?: {
11
11
  theme: import("./type").ThemeType.Default | import("./type").ThemeType.Night;
12
12
  };
13
- onEventCallback?: ({ code, message, result, }: {
13
+ onEventCallback?: ({ code, message, result }: {
14
14
  code: EventCallbackCode;
15
15
  message: string;
16
16
  result?: any;
@@ -26,7 +26,9 @@ export declare const validateElementOption: (options: IElementOptions) => {
26
26
  };
27
27
  /**
28
28
  * 校验渲染条件
29
- * 校验当前sdkSelector结点是否存在
29
+ * 1.校验当前 sdkSelector 结点是否存在
30
+ * 2.校验当前 Element 的状态是否能够渲染
31
+ * 3.校验当前 type 类型 Elment 是否已经执行过 mount
30
32
  */
31
33
  export declare function checkCanMount({ sdkSelector, containerService, status, }: {
32
34
  sdkSelector: string;
@@ -37,7 +39,7 @@ export declare function checkCanMount({ sdkSelector, containerService, status, }
37
39
  errorMsg?: string;
38
40
  error?: {
39
41
  code: string;
40
- message?: string;
42
+ message: string;
41
43
  };
42
44
  };
43
45
  export declare function checkCanUpdate({ status, paymentContainerService, newPaymentSessionData, oldPaymentSessionData, }: {
@@ -80,3 +82,4 @@ export declare const isElementPC: () => boolean;
80
82
  * @returns {boolean} - 是否需要加载错误页
81
83
  */
82
84
  export declare const isLoadErrorPage: (params: CashierSdkActionQueryResult) => boolean;
85
+ export declare const safeStringify: (payload: any, defaultValue?: string) => string;
@@ -27,6 +27,7 @@ export var formatElementOption = function formatElementOption(options) {
27
27
  export var validateElementOption = function validateElementOption(options) {
28
28
  var errors = [];
29
29
  if (!options.sessionData) {
30
+ console.error('sessionData is empty, please check new AMSElement params.');
30
31
  errors.push({
31
32
  field: 'sessionData',
32
33
  message: 'sessionData is empty'
@@ -47,7 +48,9 @@ export var validateElementOption = function validateElementOption(options) {
47
48
 
48
49
  /**
49
50
  * 校验渲染条件
50
- * 校验当前sdkSelector结点是否存在
51
+ * 1.校验当前 sdkSelector 结点是否存在
52
+ * 2.校验当前 Element 的状态是否能够渲染
53
+ * 3.校验当前 type 类型 Elment 是否已经执行过 mount
51
54
  */
52
55
  export function checkCanMount(_ref) {
53
56
  var sdkSelector = _ref.sdkSelector,
@@ -133,7 +136,7 @@ export function generateIframeSrc(_ref3) {
133
136
  var extendInfo = (paymentSessionObj === null || paymentSessionObj === void 0 ? void 0 : paymentSessionObj.extendInfo) || '';
134
137
  var mid = paymentSessionObj === null || paymentSessionObj === void 0 ? void 0 : paymentSessionObj.clientId;
135
138
  var hostSign = (paymentSession || '').split('&&')[1] || '';
136
- var baseUrl = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, ELEMENT_ENVIRONMENT.DEV, 'http://page.alipay.net/page/antom-web-checkout-v2'), ELEMENT_ENVIRONMENT.TEST, 'http://page.test.alipay.net/page/antom-web-checkout-v2'), ELEMENT_ENVIRONMENT.SIT, 'http://page.test.alipay.net/page/antom-web-checkout-v2'), ELEMENT_ENVIRONMENT.PRE, 'https://pre.ac.alipay.com/page/antom-web-checkout-v2'), ELEMENT_ENVIRONMENT.SANDBOX, 'https://checkout.antom.com'), ELEMENT_ENVIRONMENT.PROD, 'https://checkout.antom.com');
139
+ var baseUrl = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, ELEMENT_ENVIRONMENT.DEV, 'https://dev.ac.alipay.com/page/antom-web-checkout-v2'), ELEMENT_ENVIRONMENT.TEST, 'http://page.test.alipay.net/page/antom-web-checkout-v2'), ELEMENT_ENVIRONMENT.SIT, 'http://page.test.alipay.net/page/antom-web-checkout-v2'), ELEMENT_ENVIRONMENT.PRE, 'https://pre.ac.alipay.com/page/antom-web-checkout-v2'), ELEMENT_ENVIRONMENT.SANDBOX, 'https://checkout.antom.com'), ELEMENT_ENVIRONMENT.PROD, 'https://checkout.antom.com');
137
140
  var _env = (environment === null || environment === void 0 ? void 0 : environment.toLocaleUpperCase()) || ELEMENT_ENVIRONMENT.DEV;
138
141
  if (!link) {
139
142
  link = "".concat(baseUrl[_env]).concat(pageUrl);
@@ -513,4 +516,14 @@ export var isLoadErrorPage = function isLoadErrorPage(params) {
513
516
  // 无有效支付方式
514
517
  !hasAmountViews // 缺少金额展示
515
518
  ;
519
+ };
520
+ export var safeStringify = function safeStringify(payload) {
521
+ var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
522
+ if (!payload) return defaultValue;
523
+ try {
524
+ return JSON.stringify(payload) || defaultValue;
525
+ } catch (e) {
526
+ console.error('JSON.stringify failed:', e);
527
+ return defaultValue;
528
+ }
516
529
  };
@@ -22,6 +22,7 @@ import { getGrayscaleId } from "../utils/gray_scale_utils";
22
22
  import { convertPaymentSession, getWebAppVersion, saveWebAppVersion } from "../utils/payment_context_utils";
23
23
  import { redirect } from "../utils/redirect_utils";
24
24
  import { parseWebAppMatchConfig } from "../utils/web_app_url_utils";
25
+
25
26
  /**
26
27
  * @author 谦彧 <zhangmian.zm@alipay.com>
27
28
  * @date 2024/9/17
@@ -242,7 +243,7 @@ export var AntomSDKCore = /*#__PURE__*/function () {
242
243
  value: function () {
243
244
  var _startBizFlow = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(options) {
244
245
  var _this$paymentContext$, _this$paymentContext$2, _this$paymentContext$3;
245
- var paymentSession, displayInfo, _convertPaymentSessio2, paymentSessionId, paymentSessionMetaData, mid, webAppMatchConfig, webAppVersion, productScene, paymentMethod, _this$bizFlowStartBeh, payload;
246
+ var paymentSession, displayInfo, _convertPaymentSessio2, paymentSessionId, paymentSessionMetaData, mid, webAppMatchConfig, webAppVersion, productScene, paymentMethod, _this$bizFlowStartBeh, payload, eventCenter, data;
246
247
  return _regeneratorRuntime().wrap(function _callee4$(_context4) {
247
248
  while (1) switch (_context4.prev = _context4.next) {
248
249
  case 0:
@@ -252,9 +253,6 @@ export var AntomSDKCore = /*#__PURE__*/function () {
252
253
  }
253
254
  throw new Error('paymentSession is empty');
254
255
  case 2:
255
- this.logger.logInfo({
256
- title: 'sdk_event_createComponent'
257
- });
258
256
  this.setStatus(IElementStatus.IN_BIZ_FLOW);
259
257
  paymentSession = options.paymentSession, displayInfo = options.displayInfo;
260
258
  _convertPaymentSessio2 = convertPaymentSession(paymentSession), paymentSessionId = _convertPaymentSessio2.id, paymentSessionMetaData = _convertPaymentSessio2.data;
@@ -272,10 +270,14 @@ export var AntomSDKCore = /*#__PURE__*/function () {
272
270
  webAppMatchConfig = parseWebAppMatchConfig(this.paymentContext.paymentSessionObj.extendInfo);
273
271
  webAppVersion = getWebAppVersion(this.sdkMetaData, mid, webAppMatchConfig);
274
272
  this.sdkMetaData.webAppVersion = webAppVersion;
275
- saveWebAppVersion(webAppVersion, this.sdkMetaData);
276
-
277
273
  // Call service to update via payment context
278
274
  ServiceProvider.getInstance(this.instanceId).update(this.paymentContext);
275
+ // Element使用了新的埋点方案,后续ESP、VAULTING需要同步,将废弃sdk_event_createComponent
276
+ this.logger.logInfo({
277
+ title: 'sdk_event_createComponent'
278
+ });
279
+ // Storage operations are placed after logInfo
280
+ saveWebAppVersion(webAppVersion, this.sdkMetaData);
279
281
 
280
282
  // Invoke processor
281
283
  productScene = (_this$paymentContext$2 = this.paymentContext.paymentSessionObj) === null || _this$paymentContext$2 === void 0 || (_this$paymentContext$2 = _this$paymentContext$2.paymentSessionConfig) === null || _this$paymentContext$2 === void 0 ? void 0 : _this$paymentContext$2.productScene;
@@ -322,13 +324,31 @@ export var AntomSDKCore = /*#__PURE__*/function () {
322
324
  return _context4.abrupt("return");
323
325
  case 36:
324
326
  if (!(this.bizFlowStartBehavior.behaviorType === 'REDIRECT')) {
325
- _context4.next = 40;
327
+ _context4.next = 45;
326
328
  break;
327
329
  }
328
330
  payload = (_this$bizFlowStartBeh = this.bizFlowStartBehavior) === null || _this$bizFlowStartBeh === void 0 ? void 0 : _this$bizFlowStartBeh.payload;
331
+ if (!options.isNativeAppWebview) {
332
+ _context4.next = 43;
333
+ break;
334
+ }
335
+ eventCenter = ServiceProvider.getInstance(this.instanceId).getService('EventCenter');
336
+ data = {
337
+ normalUrl: (payload === null || payload === void 0 ? void 0 : payload.url) || '',
338
+ schemeUrl: (payload === null || payload === void 0 ? void 0 : payload.schemeUrl) || '',
339
+ applinkUrl: (payload === null || payload === void 0 ? void 0 : payload.applinkUrl) || ''
340
+ };
341
+ eventCenter.emit(EVENT.eventCallback.name, {
342
+ code: eventCodeEnum.SDK_REDIRECT,
343
+ result: {
344
+ redirectUrls: data
345
+ }
346
+ });
347
+ return _context4.abrupt("return");
348
+ case 43:
329
349
  redirect(payload, this.instanceId);
330
350
  return _context4.abrupt("return");
331
- case 40:
351
+ case 45:
332
352
  case "end":
333
353
  return _context4.stop();
334
354
  }
@@ -20,6 +20,7 @@ export interface StartBizFlowOptions {
20
20
  displayInfo?: Partial<DisplayInfo>;
21
21
  submitPayRequestExtra?: any;
22
22
  isAppWebview?: boolean;
23
+ isNativeAppWebview?: boolean;
23
24
  }
24
25
  export declare class DisplayInfo {
25
26
  type: DisplayTypeEnum;
@@ -208,6 +208,7 @@ export var EasySafePayProcessor = /*#__PURE__*/function () {
208
208
  appearance: (_this$paymentContext$ = _this.paymentContext.displayInfo) === null || _this$paymentContext$ === void 0 ? void 0 : _this$paymentContext$.appearance,
209
209
  notRedirectAfterComplete: ((_this$paymentContext$2 = _this.paymentContext.startBizFlowOptions.submitPayRequestExtra) === null || _this$paymentContext$2 === void 0 ? void 0 : _this$paymentContext$2.notRedirectAfterComplete) === true,
210
210
  isAppWebview: _this.paymentContext.startBizFlowOptions.isAppWebview,
211
+ isNativeAppWebview: _this.paymentContext.startBizFlowOptions.isNativeAppWebview,
211
212
  merchantAppointParam: (_this$paymentContext$3 = _this.paymentContext.startBizFlowOptions.submitPayRequestExtra) === null || _this$paymentContext$3 === void 0 ? void 0 : _this$paymentContext$3.merchantAppointParam,
212
213
  allowSubmitPayCallAhead: _this.allowSubmitPayCallAhead,
213
214
  doubleFaUrl: getDoubleFaUrlFromSession((_this$paymentContext3 = _this.paymentContext) === null || _this$paymentContext3 === void 0 ? void 0 : _this$paymentContext3.paymentSessionObj, _this.initConfig.environment),
@@ -350,7 +351,7 @@ export var EasySafePayProcessor = /*#__PURE__*/function () {
350
351
  value: function () {
351
352
  var _processSubmitPay = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
352
353
  var _this$paymentContext9, _this$paymentContext10, _this$paymentContext11, _this$channelBehavior2, _this$channelBehavior3, _this$paymentContext$8, _this$paymentContext12;
353
- var submitParams, _ref3, _ref3$productSceneVer, productSceneVersion, _ref4, _ref4$action, _ref4$action2, _ref4$action2$enableS, enableSignAgreement, _ref4$action2$autoDeb, autoDebitWithToken, _this$paymentContext$7, paymentMethodType, isAppWebview, backScheme, requestBizId, extParams, requester, _this$paymentContext$9, res;
354
+ var submitParams, _ref3, _ref3$productSceneVer, productSceneVersion, _ref4, _ref4$action, _ref4$action2, _ref4$action2$enableS, enableSignAgreement, _ref4$action2$autoDeb, autoDebitWithToken, _this$paymentContext$7, paymentMethodType, isAppWebview, isNativeAppWebview, backScheme, requestBizId, extParams, requester, _this$paymentContext$9, res;
354
355
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
355
356
  while (1) switch (_context3.prev = _context3.next) {
356
357
  case 0:
@@ -365,7 +366,8 @@ export var EasySafePayProcessor = /*#__PURE__*/function () {
365
366
  submitParams['signAgreement'] = enableSignAgreement;
366
367
  paymentMethodType = (_this$paymentContext$7 = this.paymentContext.paymentSessionObj) === null || _this$paymentContext$7 === void 0 || (_this$paymentContext$7 = _this$paymentContext$7.paymentMethodInfoView) === null || _this$paymentContext$7 === void 0 ? void 0 : _this$paymentContext$7.paymentMethodType;
367
368
  isAppWebview = this.paymentContext.startBizFlowOptions.isAppWebview;
368
- if (paymentMethodType == 'ALIPAY_CN' && !isAppWebview) {
369
+ isNativeAppWebview = this.paymentContext.startBizFlowOptions.isNativeAppWebview;
370
+ if (paymentMethodType === 'ALIPAY_CN' && (!isAppWebview || !isNativeAppWebview)) {
369
371
  backScheme = getBackScheme(undefined, this.logger);
370
372
  if (backScheme && backScheme !== 'https') {
371
373
  submitParams['h5FromApp'] = encodeURIComponent(backScheme);
@@ -13,6 +13,7 @@ var ElementProcessor = /*#__PURE__*/function () {
13
13
  value: function init(config, instanceId) {
14
14
  return null;
15
15
  }
16
+ // TODO 定义返回类型和实际类型不一致
16
17
  }, {
17
18
  key: "startBizFlow",
18
19
  value: function startBizFlow() {
@@ -51,6 +51,8 @@ _defineProperty(LogComplianceExtendKeys, "complianceExtParams", {
51
51
  callbackData: 'C',
52
52
  callbackId: 'C',
53
53
  actionNames: 'C',
54
+ isValid: 'C',
55
+ needChangeSessionForRetry: 'C',
54
56
  // D 维度信息
55
57
  operationType: 'D',
56
58
  jsApi: 'D',
@@ -13,6 +13,7 @@ export function convertPaymentSession(sessionData) {
13
13
  data: JSON.parse(parseBase64ToString(sessionData.split('&&')[3]))
14
14
  };
15
15
  } catch (error) {
16
+ // parseBase64ToString 已有捕获错误
16
17
  console.error('Parsing sessionData is abnormal and may affect the payment link. Please ensure to use the new version of SDK.', error);
17
18
  return {
18
19
  id: sessionData,
package/esm/index.js CHANGED
@@ -251,7 +251,8 @@ export var AMSEasyPay = /*#__PURE__*/function () {
251
251
  displayInfo: {
252
252
  type: DisplayTypeEnum.popup
253
253
  },
254
- isAppWebview: params.isAppWebview
254
+ isAppWebview: params.isAppWebview,
255
+ isNativeAppWebview: params.isNativeAppWebview
255
256
  });
256
257
  }
257
258
  }, {
@@ -1,4 +1,6 @@
1
1
  import { ComponentSignEnum, DisplayTypeEnum, Ianalytics } from '../../types';
2
+ export declare const getAppVersion: (_extendInfo: string, productScene: string, mid: string, sendLog?: boolean) => string;
3
+ export declare const getFinalProductSceneVersion: (componentSign: ComponentSignEnum, productSceneVersion: string) => string;
2
4
  export declare const getAppPath: (environment: string, appVersion: string, componentSign: ComponentSignEnum, productScene: string, productSceneVersion: string, extendInfo: string, mid: string, sendLog?: boolean, elementLink?: string) => any;
3
5
  export declare const getAppDomain: (domainParams: {
4
6
  environment: string;
@@ -21,7 +21,7 @@ import { isDebugLog } from "../../util/debug";
21
21
  import { queryParse, serialize } from "../../util/index";
22
22
  import { Logger } from "../../util/logger";
23
23
  import { getLastAppVersion, getMatchAppVersion, setLastAppVersion } from "../../util/upgrade";
24
- var getAppVersion = function getAppVersion(_extendInfo, productScene, mid) {
24
+ export var getAppVersion = function getAppVersion(_extendInfo, productScene, mid) {
25
25
  var sendLog = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
26
26
  try {
27
27
  var appVersion = getMatchAppVersion(_extendInfo, {
@@ -57,7 +57,7 @@ var getAppVersion = function getAppVersion(_extendInfo, productScene, mid) {
57
57
  return '';
58
58
  }
59
59
  };
60
- var getFinalProductSceneVersion = function getFinalProductSceneVersion(componentSign, productSceneVersion) {
60
+ export var getFinalProductSceneVersion = function getFinalProductSceneVersion(componentSign, productSceneVersion) {
61
61
  var _signSupportMap;
62
62
  var signSupportMap = (_signSupportMap = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_signSupportMap, ComponentSignEnum.NONE, ['']), ComponentSignEnum.AUTO_DEBIT_WALLET, ['1.0']), ComponentSignEnum.AUTO_DEBIT_PAY_WALLET, ['']), ComponentSignEnum.CASHIER_PAYMENT_BANK, ['1.0']), ComponentSignEnum.CASHIER_PAYMENT_CARD, ['1.0']), ComponentSignEnum.CASHIER_PAYMENT_APM, ['1.0']), ComponentSignEnum.EASY_PAY_WALLET, ['1.0', '2.0']), ComponentSignEnum.EASY_PAY_APM, ['2.0']), ComponentSignEnum.VAULTING_CARD, ['1.0']), ComponentSignEnum.ELEMENT_PAYMENT, ['1.0']), _defineProperty(_defineProperty(_defineProperty(_signSupportMap, ComponentSignEnum.ELEMENT_ADDRESS, ['1.0']), ComponentSignEnum.CHECKOUT_PAYMENT, ['1.0.0']), ComponentSignEnum.AUTO_DEBIT_APM, ['1.0']));
63
63
  var supportProductSceneVersion = signSupportMap[componentSign] || [];
@@ -8,14 +8,14 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
8
8
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9
9
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
10
10
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
11
+ import { MODE } from "../../constant/easysafepay";
11
12
  import { BusManager, BusMessage } from "../../core/bus";
12
13
  import { SecuritySDKActionEnum } from "../../core/bus/interface";
14
+ import { getDoubleFaUrlFromSession } from "../../foundation/utils/web_app_url_utils";
13
15
  import { getApplePayPaymentSession, submitPayInfo } from "../../service";
14
16
  import { EnvironmentEnum } from "../../types";
15
17
  import { device, isEmpty } from "../../util";
16
18
  import { APPLE_PAY_RECURRING_VERSION, APPLE_PAY_VERSION } from "../applepay/interface";
17
- import { getDoubleFaUrlFromSession } from "../../foundation/utils/web_app_url_utils";
18
- import { MODE } from "../../constant/easysafepay";
19
19
  var APPLEPAYERRORENUM = /*#__PURE__*/function (APPLEPAYERRORENUM) {
20
20
  APPLEPAYERRORENUM["APPLE_PAY_MISSING_DATA"] = "APPLE_PAY_MISSING_DATA";
21
21
  APPLEPAYERRORENUM["APPLE_PAY_NOT_SUPPORTED"] = "APPLE_PAY_NOT_SUPPORTED";
@@ -103,8 +103,21 @@ export var handleGooglePay = function handleGooglePay(data) {
103
103
  }
104
104
  }
105
105
  });
106
- // 获取到googlePay token后返回消息给app
107
- paymentsClient.loadPaymentData(paymentRequest).then(function (paymentData) {
106
+ // 使用GooglePay官方API判断设备是否支持,目前WebView场景有bug,不支持的WebView仍然显示支持
107
+ // UA判断方案和isReadyToPay方案PD决策使用【isReadyToPay方案】
108
+ // PD已反馈给Google,Google已确认bug待修复
109
+ paymentsClient.isReadyToPay(paymentRequest).then(function (response) {
110
+ if (response.result) {
111
+ // 设备支持 GooglePay,继续拉起
112
+ return paymentsClient.loadPaymentData(paymentRequest);
113
+ } else {
114
+ // 抛错给收银台,目前errorCode未消费
115
+ reject({
116
+ errorCode: 'GOOGLE_PAY_NOT_SUPPORTED'
117
+ });
118
+ }
119
+ }).then(function (paymentData) {
120
+ // 获取到googlePay token后返回消息给app
108
121
  if (paymentData) {
109
122
  resolve(paymentData);
110
123
  }
@@ -112,6 +125,9 @@ export var handleGooglePay = function handleGooglePay(data) {
112
125
  reject(err);
113
126
  });
114
127
  };
128
+ script.onerror = function (err) {
129
+ reject(err);
130
+ };
115
131
  });
116
132
  };
117
133
  export var ApplePaySdk = /*#__PURE__*/function () {
@@ -297,7 +313,6 @@ export var ApplePaySdk = /*#__PURE__*/function () {
297
313
  title: 'a3753.b103030.c386485.d507498'
298
314
  });
299
315
  }
300
- _this.abortSession();
301
316
  reject({
302
317
  errorCode: APPLEPAYERRORENUM.APPLE_PAY_CANCEL
303
318
  });
@@ -1,4 +1,5 @@
1
1
  import { PlatformEnum } from '../../types';
2
+ export declare const componentCss = ".ams-component-container-mobile {\n width: 100%;\n height: 1px;\n position: fixed;\n bottom: -1px;\n left: 0;\n z-index: 1001;\n border-radius: 12px 12px 0 0;\n overflow: hidden;\n}\n.ams-component-container-mobile-animation{\n animation: ams-component-container-slide-in 0.3s ease-in-out;\n}\n\n.ams-component-section-desktop {\n font-size: 0;\n}\n\n.ams-component-container-hidden-mobile {\n width: 100%;\n height: 0px;\n position: fixed;\n bottom: -1px;\n left: 0;\n z-index: 1001;\n background-color: transparent;\n border-radius: 12px 12px 0 0;\n animation: ams-component-container-slide-out 0.26s ease-in forwards;\n overflow: hidden;\n}\n\n.ams-component-section-mobile {\n border-radius: 12px 12px 0 0;\n overflow: hidden;\n font-size: 0;\n height: 100%;\n}\n\n.ams-component-container-desktop {\n display: block;\n width: 672px;\n position: fixed;\n top: 50%;\n left: 50%;\n z-index: 1001;\n border-radius: 12px;\n overflow: hidden;\n transform-origin: 50% 50%;\n transform: translate(-50%, -50%);\n}\n.ams-component-container-desktop-animation{\n animation: ams-component-container-zoom-in 0.3s ease-in-out;\n animation-fill-mode: forwards\n}\n\n@keyframes ams-component-container-zoom-out {\n 0% {\n transform: translate(-50%, -50%) scale(1);\n -webkit-transform: translate(-50%, -50%) scale(1);\n opacity: 1\n }\n\n 100% {\n opacity: 0;\n transform: translate(-50%, -50%) scale(0.4);\n -webkit-transform: translate(-50%, -50%) scale(0.4);\n }\n}\n\n@keyframes ams-component-container-zoom-in {\n 0% {\n transform: translate(-50%, -50%) scale(0.4);\n opacity: 0\n }\n\n 100% {\n opacity: 1;\n transform: translate(-50%, -50%) scale(1);\n }\n}\n\n.ams-component-container-hidden-desktop {\n display: block;\n position: fixed;\n top: 50%;\n left: 50%;\n z-index: 1001;\n border-radius: 8px;\n overflow: hidden;\n animation: ams-component-container-zoom-out 0.3s ease-in-out;\n animation-fill-mode: forwards;\n transform-origin: 50% 50%;\n}\n\n.ams-component-loading {\n width: 0.8em;\n height:0.8em;\n background: rgba(0, 0, 0, 0.5);\n border-radius: 8px;\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 1001;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n\n.ams-component-loading .line {\n width: 40px;\n height: 40px;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n.ams-component-loading .line div {\n position: absolute;\n left: 17.67px;\n top: 0;\n width: 5.33px;\n height: 40px;\n}\n\n.ams-component-loading .line div:before,\n.ams-component-loading .line div:after {\n content: '';\n display: block;\n height: 13.33px;\n background: #fcfcfc;\n border-radius: 5.3px;\n}\n.ams-component-loading .line div:after {\n margin-top: 13.33px;\n}\n\n.ams-component-loading .line div:nth-child(2) {\n -webkit-transform: rotate(45deg);\n}\n\n.ams-component-loading .line div:nth-child(3) {\n -webkit-transform: rotate(90deg);\n}\n\n.ams-component-loading .line div:nth-child(4) {\n -webkit-transform: rotate(135deg);\n}\n\n/** \u52A0\u8F7D\u52A8\u753B **/\n@-webkit-keyframes load {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n\n.ams-component-loading .line div:nth-child(1):before {\n -webkit-animation: load 1s linear 0s infinite;\n}\n\n.ams-component-loading .line div:nth-child(2):before {\n -webkit-animation: load 1s linear 0.125s infinite;\n}\n\n.ams-component-loading .line div:nth-child(3):before {\n -webkit-animation: load 1s linear 0.25s infinite;\n}\n\n.ams-component-loading .line div:nth-child(4):before {\n -webkit-animation: load 1s linear 0.375s infinite;\n}\n\n.ams-component-loading .line div:nth-child(1):after {\n -webkit-animation: load 1s linear 0.5s infinite;\n}\n\n.ams-component-loading .line div:nth-child(2):after {\n -webkit-animation: load 1s linear 0.675s infinite;\n}\n\n.ams-component-loading .line div:nth-child(3):after {\n -webkit-animation: load 1s linear 0.75s infinite;\n}\n\n.ams-component-loading .line div:nth-child(4):after {\n -webkit-animation: load 1s linear 0.875s infinite;\n}\n\n.ams-component-loading-logo {\n width: 0.44em;\n height: 0.44em;\n -webkit-transform:rotate(360deg);\n transform:rotate(360deg);\n -webkit-transition:-webkit-transform 1s linear;\n transition:transform 1s linear;\n animation: ams-component-loading-logo 1s linear infinite;\n}\n\n.asm-component-close-block-desktop {\n position: absolute;\n width: 40px;\n height: 40px;\n right: 0;\n top: 0;\n cursor: pointer;\n}\n\n.asm-component-close-block-mobile {\n position: absolute;\n width: 0.4em;\n height: 0.4em;\n right: 0;\n top: 0;\n cursor: pointer;\n z-index: 1009;\n}\n\n.asm-component-close-block-hidden {\n width: 0px !important;\n height: 0px !important;\n visibility: hidden;\n}\n\n.asm-component-close-block-btn-desktop {\n width: 11px;\n height: 11px;\n object-fit: fill;\n position: absolute;\n right: 18.7px;\n top: 26.7px;\n}\n\n.asm-component-close-block-btn-mobile {\n width: 0.11em;\n height: 0.11em;\n object-fit: fill;\n position: absolute;\n right: 0.147em;\n top: 0.167em;\n}\n\n.ams-component-mask-close-block-desktop {\n position: absolute;\n width: 40px;\n height: 40px;\n right: 18px;\n top: 10px;\n cursor: pointer;\n z-index: 1013;\n}\n \n.ams-component-mask-close-block-mobile {\n position: absolute;\n width: 40px;\n height: 40px;\n right: 18px;\n cursor: pointer;\n z-index: 1012;\n}\n\n.ams-component-mask-close-block-hidden {\n width: 0px !important;\n height: 0px !important;\n visibility: hidden;\n}\n\n.ams-component-mask-close-block-btn {\n width: 24px;\n height: 24px;\n object-fit: fill;\n position: absolute;\n right: 8px;\n top: 8px;\n}\n\n.ams-component-container-opacity{\n opacity: 1;\n}\n\n.ams-component-container-opacity:after{\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n display: block;\n content: \"\";\n z-index: 1010;\n background-color: rgba(0, 0, 0, 0.35);\n border-radius: 12px 12px 0 0;\n}\n\n#ams-component-retention {\n position: fixed;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n transform-origin: 50%;\n height: auto;\n display: none;\n z-index: 1009;\n}\n\n.ams-component-retention-show {\n display: flex !important;\n animation: ams-component-container-zoom-in 0.3s ease-in-out;\n animation-fill-mode: forwards\n}\n\n.ams-component-retention-hidden {\n display: flex !important;\n animation: ams-component-container-zoom-out 0.3s ease-in-out;\n -webkit-animation: ams-component-container-zoom-out 0.3s ease-in-out;\n animation-fill-mode: forwards;\n -webkit-animation-fill-mode: forwards;\n}\n\n.ams-component-retention-mobile {\n width: 294px;\n border-radius: 12px;\n padding: 24px 0;\n background-color: #fff;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n box-sizing: border-box;\n}\n\n.ams-component-retention-desktop {\n width: 544px;\n border-radius: 12px;\n padding: 32px;\n background-color: #fff;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n box-sizing: border-box;\n}\n\n@media screen and (max-width: 300px) {\n .ams-component-retention-mobile {\n transform: translate(-50%, -50%) scale(0.8);\n }\n}\n\n.ams-component-retention-title-mobile {\n width: 100%;\n font-style: normal;\n font-weight: 500;\n font-size: 16px;\n line-height: 24px;\n color: #2A3A52;\n text-align: center;\n padding: 0 16px;\n box-sizing: border-box;\n}\n\n.ams-component-retention-title-desktop {\n text-align: left;\n width: 100%;\n font-style: normal;\n font-weight: 500;\n font-size: 16px;\n line-height: 24px;\n color: #2A3A52;\n}\n\n.ams-component-retention-sub-title-mobile {\n width: 100%;\n font-weight: 400;\n font-size: 14px;\n line-height: 20px;\n color: #7C8CA3;\n margin-top: 8px;\n text-align: center;\n padding: 0 16px;\n box-sizing: border-box;\n}\n\n.ams-component-retention-sub-title-desktop {\n text-align: left;\n font-style: normal;\n font-weight: 400;\n font-size: 14px;\n line-height: 20px;\n color: #7C8CA3;\n margin-top: 10px;\n}\n\n.ams-component-retention-btn-block-mobile {\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n margin-top: 24px;\n padding: 0 24px;\n box-sizing: border-box;\n}\n\n.ams-component-retention-btn-block-desktop {\n width: 100%;\n margin-top: 24px;\n}\n\n#ams-component-retention-remain {\n background: #0079FF;\n border-radius: 100px;\n font-style: normal;\n font-weight: 500;\n text-align: center;\n box-sizing: border-box;\n color: #FFFFFF;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ams-component-retention-remain-mobile {\n width: 100%;\n height: 44px;\n font-size: 16px;\n line-height: 44px;\n padding: 0 6px;\n}\n\n.ams-component-retention-remain-desktop {\n height: 44px;\n font-size: 16px;\n line-height: 44px;\n display: inline-block;\n padding: 0 24px;\n float: right;\n cursor: pointer;\n padding: 0 16px;\n max-width: 225px;\n min-width: 159px;\n}\n\n#ams-component-retention-leave {\n border-radius: 100px;\n border: 1px solid #0079FF;\n font-style: normal;\n font-weight: 500;\n text-align: center;\n box-sizing: border-box;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ams-component-retention-leave-mobile {\n width: 100%;\n height: 44px;\n font-size: 16px;\n line-height: 44px;\n color: #1677FF;\n margin-top: 12px;\n padding: 0 6px;\n}\n\n.ams-component-retention-leave-desktop {\n height: 44px;\n font-size: 16px;\n line-height: 44px;\n color: #1677FF;\n display: inline-block;\n padding: 0 24px;\n float: right;\n margin-right: 16px;\n cursor: pointer;\n padding: 0 16px;\n max-width: 225px;\n min-width: 144px;\n}\n.ams-component-mockup-hidden{\nanimation: ams-component-mockup-opacity 0.3s ease-in-out;\n animation-fill-mode: forwards\n}\n/** \u52A0\u8F7D\u52A8\u753B **/\n@-webkit-keyframes ams-component-mockup-opacity {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n}\n\n";
2
3
  export declare const componentAddCSS: () => void;
3
4
  export declare const createBaseElement: (platform: PlatformEnum, closeBtnFunc: () => void) => HTMLDivElement;
4
5
  export declare const createCloseBtn: (platform: PlatformEnum, closeBtnFunc: () => void) => void;
@@ -8,7 +8,7 @@
8
8
  import { ANIMATION_TIME, closeImg, COMPONENT_CLOSE_BLOCK_ID, COMPONENT_CLOSE_MASK_BLOCK_ID, COMPONENT_CONTAINER_ID, COMPONENT_RETENTION_ID, COMPONENT_SECTION_ID, LOADING_ID, MOCKUP_ID } from "../../constant";
9
9
  import { PlatformEnum } from "../../types";
10
10
  import { addSetFontSizeEvent, amsSetSize, getDesignFontSize } from "../../util";
11
- var componentCss = ".ams-component-container-mobile {\n width: 100%;\n height: 1px;\n position: fixed;\n bottom: -1px;\n left: 0;\n z-index: 1001;\n border-radius: 12px 12px 0 0;\n overflow: hidden;\n}\n.ams-component-container-mobile-animation{\n animation: ams-component-container-slide-in 0.3s ease-in-out;\n}\n\n.ams-component-section-desktop {\n font-size: 0;\n}\n\n.ams-component-container-hidden-mobile {\n width: 100%;\n height: 0px;\n position: fixed;\n bottom: -1px;\n left: 0;\n z-index: 1001;\n background-color: transparent;\n border-radius: 12px 12px 0 0;\n animation: ams-component-container-slide-out 0.26s ease-in forwards;\n overflow: hidden;\n}\n\n.ams-component-section-mobile {\n border-radius: 12px 12px 0 0;\n overflow: hidden;\n font-size: 0;\n height: 100%;\n}\n\n.ams-component-container-desktop {\n display: block;\n width: 672px;\n position: fixed;\n top: 50%;\n left: 50%;\n z-index: 1001;\n border-radius: 12px;\n overflow: hidden;\n transform-origin: 50% 50%;\n transform: translate(-50%, -50%);\n}\n.ams-component-container-desktop-animation{\n animation: ams-component-container-zoom-in 0.3s ease-in-out;\n animation-fill-mode: forwards\n}\n\n@keyframes ams-component-container-zoom-out {\n 0% {\n transform: translate(-50%, -50%) scale(1);\n -webkit-transform: translate(-50%, -50%) scale(1);\n opacity: 1\n }\n\n 100% {\n opacity: 0;\n transform: translate(-50%, -50%) scale(0.4);\n -webkit-transform: translate(-50%, -50%) scale(0.4);\n }\n}\n\n@keyframes ams-component-container-zoom-in {\n 0% {\n transform: translate(-50%, -50%) scale(0.4);\n opacity: 0\n }\n\n 100% {\n opacity: 1;\n transform: translate(-50%, -50%) scale(1);\n }\n}\n\n.ams-component-container-hidden-desktop {\n display: block;\n position: fixed;\n top: 50%;\n left: 50%;\n z-index: 1001;\n border-radius: 8px;\n overflow: hidden;\n animation: ams-component-container-zoom-out 0.3s ease-in-out;\n animation-fill-mode: forwards;\n transform-origin: 50% 50%;\n}\n\n.ams-component-loading {\n width: 0.8em;\n height:0.8em;\n background: rgba(0, 0, 0, 0.5);\n border-radius: 8px;\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 1001;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n\n.ams-component-loading .line {\n width: 40px;\n height: 40px;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n.ams-component-loading .line div {\n position: absolute;\n left: 17.67px;\n top: 0;\n width: 5.33px;\n height: 40px;\n}\n\n.ams-component-loading .line div:before,\n.ams-component-loading .line div:after {\n content: '';\n display: block;\n height: 13.33px;\n background: #fcfcfc;\n border-radius: 5.3px;\n}\n.ams-component-loading .line div:after {\n margin-top: 13.33px;\n}\n\n.ams-component-loading .line div:nth-child(2) {\n -webkit-transform: rotate(45deg);\n}\n\n.ams-component-loading .line div:nth-child(3) {\n -webkit-transform: rotate(90deg);\n}\n\n.ams-component-loading .line div:nth-child(4) {\n -webkit-transform: rotate(135deg);\n}\n\n/** \u52A0\u8F7D\u52A8\u753B **/\n@-webkit-keyframes load {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n\n.ams-component-loading .line div:nth-child(1):before {\n -webkit-animation: load 1s linear 0s infinite;\n}\n\n.ams-component-loading .line div:nth-child(2):before {\n -webkit-animation: load 1s linear 0.125s infinite;\n}\n\n.ams-component-loading .line div:nth-child(3):before {\n -webkit-animation: load 1s linear 0.25s infinite;\n}\n\n.ams-component-loading .line div:nth-child(4):before {\n -webkit-animation: load 1s linear 0.375s infinite;\n}\n\n.ams-component-loading .line div:nth-child(1):after {\n -webkit-animation: load 1s linear 0.5s infinite;\n}\n\n.ams-component-loading .line div:nth-child(2):after {\n -webkit-animation: load 1s linear 0.675s infinite;\n}\n\n.ams-component-loading .line div:nth-child(3):after {\n -webkit-animation: load 1s linear 0.75s infinite;\n}\n\n.ams-component-loading .line div:nth-child(4):after {\n -webkit-animation: load 1s linear 0.875s infinite;\n}\n\n.ams-component-loading-logo {\n width: 0.44em;\n height: 0.44em;\n -webkit-transform:rotate(360deg);\n transform:rotate(360deg);\n -webkit-transition:-webkit-transform 1s linear;\n transition:transform 1s linear;\n animation: ams-component-loading-logo 1s linear infinite;\n}\n\n.asm-component-close-block-desktop {\n position: absolute;\n width: 40px;\n height: 40px;\n right: 0;\n top: 0;\n cursor: pointer;\n}\n\n.asm-component-close-block-mobile {\n position: absolute;\n width: 0.4em;\n height: 0.4em;\n right: 0;\n top: 0;\n cursor: pointer;\n z-index: 1009;\n}\n\n.asm-component-close-block-hidden {\n width: 0px !important;\n height: 0px !important;\n visibility: hidden;\n}\n\n.asm-component-close-block-btn-desktop {\n width: 11px;\n height: 11px;\n object-fit: fill;\n position: absolute;\n right: 18.7px;\n top: 26.7px;\n}\n\n.asm-component-close-block-btn-mobile {\n width: 0.11em;\n height: 0.11em;\n object-fit: fill;\n position: absolute;\n right: 0.147em;\n top: 0.167em;\n}\n\n.ams-component-mask-close-block-desktop {\n position: absolute;\n width: 40px;\n height: 40px;\n right: 18px;\n top: 10px;\n cursor: pointer;\n z-index: 1013;\n}\n \n.ams-component-mask-close-block-mobile {\n position: absolute;\n width: 40px;\n height: 40px;\n right: 18px;\n cursor: pointer;\n z-index: 1012;\n}\n\n.ams-component-mask-close-block-hidden {\n width: 0px !important;\n height: 0px !important;\n visibility: hidden;\n}\n\n.ams-component-mask-close-block-btn {\n width: 24px;\n height: 24px;\n object-fit: fill;\n position: absolute;\n right: 8px;\n top: 8px;\n}\n\n.ams-component-container-opacity{\n opacity: 1;\n}\n\n.ams-component-container-opacity:after{\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n display: block;\n content: \"\";\n z-index: 1010;\n background-color: rgba(0, 0, 0, 0.35);\n border-radius: 12px 12px 0 0;\n}\n\n#ams-component-retention {\n position: fixed;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n transform-origin: 50%;\n height: auto;\n display: none;\n z-index: 1009;\n}\n\n.ams-component-retention-show {\n display: flex !important;\n animation: ams-component-container-zoom-in 0.3s ease-in-out;\n animation-fill-mode: forwards\n}\n\n.ams-component-retention-hidden {\n display: flex !important;\n animation: ams-component-container-zoom-out 0.3s ease-in-out;\n -webkit-animation: ams-component-container-zoom-out 0.3s ease-in-out;\n animation-fill-mode: forwards;\n -webkit-animation-fill-mode: forwards;\n}\n\n.ams-component-retention-mobile {\n width: 294px;\n border-radius: 12px;\n padding: 24px 0;\n background-color: #fff;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n box-sizing: border-box;\n}\n\n.ams-component-retention-desktop {\n width: 544px;\n border-radius: 12px;\n padding: 32px;\n background-color: #fff;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n box-sizing: border-box;\n}\n\n@media screen and (max-width: 300px) {\n .ams-component-retention-mobile {\n transform: translate(-50%, -50%) scale(0.8);\n }\n}\n\n.ams-component-retention-title-mobile {\n width: 100%;\n font-style: normal;\n font-weight: 500;\n font-size: 16px;\n line-height: 24px;\n color: #2A3A52;\n text-align: center;\n padding: 0 16px;\n box-sizing: border-box;\n}\n\n.ams-component-retention-title-desktop {\n text-align: left;\n width: 100%;\n font-style: normal;\n font-weight: 500;\n font-size: 16px;\n line-height: 24px;\n color: #2A3A52;\n}\n\n.ams-component-retention-sub-title-mobile {\n width: 100%;\n font-weight: 400;\n font-size: 14px;\n line-height: 20px;\n color: #7C8CA3;\n margin-top: 8px;\n text-align: center;\n padding: 0 16px;\n box-sizing: border-box;\n}\n\n.ams-component-retention-sub-title-desktop {\n text-align: left;\n font-style: normal;\n font-weight: 400;\n font-size: 14px;\n line-height: 20px;\n color: #7C8CA3;\n margin-top: 10px;\n}\n\n.ams-component-retention-btn-block-mobile {\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n margin-top: 24px;\n padding: 0 24px;\n box-sizing: border-box;\n}\n\n.ams-component-retention-btn-block-desktop {\n width: 100%;\n margin-top: 24px;\n}\n\n#ams-component-retention-remain {\n background: #0079FF;\n border-radius: 100px;\n font-style: normal;\n font-weight: 500;\n text-align: center;\n box-sizing: border-box;\n color: #FFFFFF;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ams-component-retention-remain-mobile {\n width: 100%;\n height: 44px;\n font-size: 16px;\n line-height: 44px;\n padding: 0 6px;\n}\n\n.ams-component-retention-remain-desktop {\n height: 44px;\n font-size: 16px;\n line-height: 44px;\n display: inline-block;\n padding: 0 24px;\n float: right;\n cursor: pointer;\n padding: 0 16px;\n max-width: 225px;\n min-width: 159px;\n}\n\n#ams-component-retention-leave {\n border-radius: 100px;\n border: 1px solid #0079FF;\n font-style: normal;\n font-weight: 500;\n text-align: center;\n box-sizing: border-box;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ams-component-retention-leave-mobile {\n width: 100%;\n height: 44px;\n font-size: 16px;\n line-height: 44px;\n color: #1677FF;\n margin-top: 12px;\n padding: 0 6px;\n}\n\n.ams-component-retention-leave-desktop {\n height: 44px;\n font-size: 16px;\n line-height: 44px;\n color: #1677FF;\n display: inline-block;\n padding: 0 24px;\n float: right;\n margin-right: 16px;\n cursor: pointer;\n padding: 0 16px;\n max-width: 225px;\n min-width: 144px;\n}\n.".concat(MOCKUP_ID, "-hidden{\nanimation: ").concat(MOCKUP_ID, "-opacity 0.3s ease-in-out;\n animation-fill-mode: forwards\n}\n/** \u52A0\u8F7D\u52A8\u753B **/\n@-webkit-keyframes ").concat(MOCKUP_ID, "-opacity {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n}\n\n");
11
+ export var componentCss = ".ams-component-container-mobile {\n width: 100%;\n height: 1px;\n position: fixed;\n bottom: -1px;\n left: 0;\n z-index: 1001;\n border-radius: 12px 12px 0 0;\n overflow: hidden;\n}\n.ams-component-container-mobile-animation{\n animation: ams-component-container-slide-in 0.3s ease-in-out;\n}\n\n.ams-component-section-desktop {\n font-size: 0;\n}\n\n.ams-component-container-hidden-mobile {\n width: 100%;\n height: 0px;\n position: fixed;\n bottom: -1px;\n left: 0;\n z-index: 1001;\n background-color: transparent;\n border-radius: 12px 12px 0 0;\n animation: ams-component-container-slide-out 0.26s ease-in forwards;\n overflow: hidden;\n}\n\n.ams-component-section-mobile {\n border-radius: 12px 12px 0 0;\n overflow: hidden;\n font-size: 0;\n height: 100%;\n}\n\n.ams-component-container-desktop {\n display: block;\n width: 672px;\n position: fixed;\n top: 50%;\n left: 50%;\n z-index: 1001;\n border-radius: 12px;\n overflow: hidden;\n transform-origin: 50% 50%;\n transform: translate(-50%, -50%);\n}\n.ams-component-container-desktop-animation{\n animation: ams-component-container-zoom-in 0.3s ease-in-out;\n animation-fill-mode: forwards\n}\n\n@keyframes ams-component-container-zoom-out {\n 0% {\n transform: translate(-50%, -50%) scale(1);\n -webkit-transform: translate(-50%, -50%) scale(1);\n opacity: 1\n }\n\n 100% {\n opacity: 0;\n transform: translate(-50%, -50%) scale(0.4);\n -webkit-transform: translate(-50%, -50%) scale(0.4);\n }\n}\n\n@keyframes ams-component-container-zoom-in {\n 0% {\n transform: translate(-50%, -50%) scale(0.4);\n opacity: 0\n }\n\n 100% {\n opacity: 1;\n transform: translate(-50%, -50%) scale(1);\n }\n}\n\n.ams-component-container-hidden-desktop {\n display: block;\n position: fixed;\n top: 50%;\n left: 50%;\n z-index: 1001;\n border-radius: 8px;\n overflow: hidden;\n animation: ams-component-container-zoom-out 0.3s ease-in-out;\n animation-fill-mode: forwards;\n transform-origin: 50% 50%;\n}\n\n.ams-component-loading {\n width: 0.8em;\n height:0.8em;\n background: rgba(0, 0, 0, 0.5);\n border-radius: 8px;\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 1001;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n\n.ams-component-loading .line {\n width: 40px;\n height: 40px;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n.ams-component-loading .line div {\n position: absolute;\n left: 17.67px;\n top: 0;\n width: 5.33px;\n height: 40px;\n}\n\n.ams-component-loading .line div:before,\n.ams-component-loading .line div:after {\n content: '';\n display: block;\n height: 13.33px;\n background: #fcfcfc;\n border-radius: 5.3px;\n}\n.ams-component-loading .line div:after {\n margin-top: 13.33px;\n}\n\n.ams-component-loading .line div:nth-child(2) {\n -webkit-transform: rotate(45deg);\n}\n\n.ams-component-loading .line div:nth-child(3) {\n -webkit-transform: rotate(90deg);\n}\n\n.ams-component-loading .line div:nth-child(4) {\n -webkit-transform: rotate(135deg);\n}\n\n/** \u52A0\u8F7D\u52A8\u753B **/\n@-webkit-keyframes load {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n\n.ams-component-loading .line div:nth-child(1):before {\n -webkit-animation: load 1s linear 0s infinite;\n}\n\n.ams-component-loading .line div:nth-child(2):before {\n -webkit-animation: load 1s linear 0.125s infinite;\n}\n\n.ams-component-loading .line div:nth-child(3):before {\n -webkit-animation: load 1s linear 0.25s infinite;\n}\n\n.ams-component-loading .line div:nth-child(4):before {\n -webkit-animation: load 1s linear 0.375s infinite;\n}\n\n.ams-component-loading .line div:nth-child(1):after {\n -webkit-animation: load 1s linear 0.5s infinite;\n}\n\n.ams-component-loading .line div:nth-child(2):after {\n -webkit-animation: load 1s linear 0.675s infinite;\n}\n\n.ams-component-loading .line div:nth-child(3):after {\n -webkit-animation: load 1s linear 0.75s infinite;\n}\n\n.ams-component-loading .line div:nth-child(4):after {\n -webkit-animation: load 1s linear 0.875s infinite;\n}\n\n.ams-component-loading-logo {\n width: 0.44em;\n height: 0.44em;\n -webkit-transform:rotate(360deg);\n transform:rotate(360deg);\n -webkit-transition:-webkit-transform 1s linear;\n transition:transform 1s linear;\n animation: ams-component-loading-logo 1s linear infinite;\n}\n\n.asm-component-close-block-desktop {\n position: absolute;\n width: 40px;\n height: 40px;\n right: 0;\n top: 0;\n cursor: pointer;\n}\n\n.asm-component-close-block-mobile {\n position: absolute;\n width: 0.4em;\n height: 0.4em;\n right: 0;\n top: 0;\n cursor: pointer;\n z-index: 1009;\n}\n\n.asm-component-close-block-hidden {\n width: 0px !important;\n height: 0px !important;\n visibility: hidden;\n}\n\n.asm-component-close-block-btn-desktop {\n width: 11px;\n height: 11px;\n object-fit: fill;\n position: absolute;\n right: 18.7px;\n top: 26.7px;\n}\n\n.asm-component-close-block-btn-mobile {\n width: 0.11em;\n height: 0.11em;\n object-fit: fill;\n position: absolute;\n right: 0.147em;\n top: 0.167em;\n}\n\n.ams-component-mask-close-block-desktop {\n position: absolute;\n width: 40px;\n height: 40px;\n right: 18px;\n top: 10px;\n cursor: pointer;\n z-index: 1013;\n}\n \n.ams-component-mask-close-block-mobile {\n position: absolute;\n width: 40px;\n height: 40px;\n right: 18px;\n cursor: pointer;\n z-index: 1012;\n}\n\n.ams-component-mask-close-block-hidden {\n width: 0px !important;\n height: 0px !important;\n visibility: hidden;\n}\n\n.ams-component-mask-close-block-btn {\n width: 24px;\n height: 24px;\n object-fit: fill;\n position: absolute;\n right: 8px;\n top: 8px;\n}\n\n.ams-component-container-opacity{\n opacity: 1;\n}\n\n.ams-component-container-opacity:after{\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n display: block;\n content: \"\";\n z-index: 1010;\n background-color: rgba(0, 0, 0, 0.35);\n border-radius: 12px 12px 0 0;\n}\n\n#ams-component-retention {\n position: fixed;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n transform-origin: 50%;\n height: auto;\n display: none;\n z-index: 1009;\n}\n\n.ams-component-retention-show {\n display: flex !important;\n animation: ams-component-container-zoom-in 0.3s ease-in-out;\n animation-fill-mode: forwards\n}\n\n.ams-component-retention-hidden {\n display: flex !important;\n animation: ams-component-container-zoom-out 0.3s ease-in-out;\n -webkit-animation: ams-component-container-zoom-out 0.3s ease-in-out;\n animation-fill-mode: forwards;\n -webkit-animation-fill-mode: forwards;\n}\n\n.ams-component-retention-mobile {\n width: 294px;\n border-radius: 12px;\n padding: 24px 0;\n background-color: #fff;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n box-sizing: border-box;\n}\n\n.ams-component-retention-desktop {\n width: 544px;\n border-radius: 12px;\n padding: 32px;\n background-color: #fff;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n box-sizing: border-box;\n}\n\n@media screen and (max-width: 300px) {\n .ams-component-retention-mobile {\n transform: translate(-50%, -50%) scale(0.8);\n }\n}\n\n.ams-component-retention-title-mobile {\n width: 100%;\n font-style: normal;\n font-weight: 500;\n font-size: 16px;\n line-height: 24px;\n color: #2A3A52;\n text-align: center;\n padding: 0 16px;\n box-sizing: border-box;\n}\n\n.ams-component-retention-title-desktop {\n text-align: left;\n width: 100%;\n font-style: normal;\n font-weight: 500;\n font-size: 16px;\n line-height: 24px;\n color: #2A3A52;\n}\n\n.ams-component-retention-sub-title-mobile {\n width: 100%;\n font-weight: 400;\n font-size: 14px;\n line-height: 20px;\n color: #7C8CA3;\n margin-top: 8px;\n text-align: center;\n padding: 0 16px;\n box-sizing: border-box;\n}\n\n.ams-component-retention-sub-title-desktop {\n text-align: left;\n font-style: normal;\n font-weight: 400;\n font-size: 14px;\n line-height: 20px;\n color: #7C8CA3;\n margin-top: 10px;\n}\n\n.ams-component-retention-btn-block-mobile {\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n margin-top: 24px;\n padding: 0 24px;\n box-sizing: border-box;\n}\n\n.ams-component-retention-btn-block-desktop {\n width: 100%;\n margin-top: 24px;\n}\n\n#ams-component-retention-remain {\n background: #0079FF;\n border-radius: 100px;\n font-style: normal;\n font-weight: 500;\n text-align: center;\n box-sizing: border-box;\n color: #FFFFFF;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ams-component-retention-remain-mobile {\n width: 100%;\n height: 44px;\n font-size: 16px;\n line-height: 44px;\n padding: 0 6px;\n}\n\n.ams-component-retention-remain-desktop {\n height: 44px;\n font-size: 16px;\n line-height: 44px;\n display: inline-block;\n padding: 0 24px;\n float: right;\n cursor: pointer;\n padding: 0 16px;\n max-width: 225px;\n min-width: 159px;\n}\n\n#ams-component-retention-leave {\n border-radius: 100px;\n border: 1px solid #0079FF;\n font-style: normal;\n font-weight: 500;\n text-align: center;\n box-sizing: border-box;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ams-component-retention-leave-mobile {\n width: 100%;\n height: 44px;\n font-size: 16px;\n line-height: 44px;\n color: #1677FF;\n margin-top: 12px;\n padding: 0 6px;\n}\n\n.ams-component-retention-leave-desktop {\n height: 44px;\n font-size: 16px;\n line-height: 44px;\n color: #1677FF;\n display: inline-block;\n padding: 0 24px;\n float: right;\n margin-right: 16px;\n cursor: pointer;\n padding: 0 16px;\n max-width: 225px;\n min-width: 144px;\n}\n.".concat(MOCKUP_ID, "-hidden{\nanimation: ").concat(MOCKUP_ID, "-opacity 0.3s ease-in-out;\n animation-fill-mode: forwards\n}\n/** \u52A0\u8F7D\u52A8\u753B **/\n@-webkit-keyframes ").concat(MOCKUP_ID, "-opacity {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n}\n\n");
12
12
  export var componentAddCSS = function componentAddCSS() {
13
13
  var style = document.createElement('style');
14
14
  style.type = 'text/css';
@@ -26,6 +26,7 @@ export default class ComponentApp {
26
26
  private _renderDisplayType;
27
27
  private _multipleCallbackEvents;
28
28
  private _isAppWebview;
29
+ private _isNativeAppWebview;
29
30
  _merchantAppointParam: IMerchantAppointParam;
30
31
  private _webAppHeartBeatTimeoutFn;
31
32
  private _hasRenderComponent;
@@ -17,13 +17,13 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
17
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.
18
18
  */
19
19
  /* eslint-disable @typescript-eslint/no-explicit-any */
20
+ import { ElementPaymentMethod } from "../../core/component/element/type";
20
21
  import { v4 as uuid } from 'uuid';
21
22
  import { sdkVersion } from "../../config";
22
23
  import { COMPONENTPLUGINID, COMPONENT_CLOSE_BLOCK_ID, COMPONENT_CLOSE_MASK_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";
23
- import { ElementPaymentMethod } from "../../core/component/oldElement/type";
24
24
  import { queryPaymentInfo, submitPayInfo } from "../../service";
25
25
  import { ComponentSignEnum, DisplayTypeEnum, eventCodeEnum, MessageName, PlatformEnum, ProductSceneEnum, RedirectType, TargetEnum } from "../../types";
26
- import { getType, isJsonString, isPC, device } from "../../util";
26
+ import { device, getType, isJsonString, isPC } from "../../util";
27
27
  import { getBackScheme } from "../../util/getBackScheme";
28
28
  import { isLocalMock } from "../../util/mock";
29
29
  import { matchVersion } from "../../util/versionCompare";
@@ -60,6 +60,7 @@ var ComponentApp = /*#__PURE__*/function () {
60
60
  _defineProperty(this, "_renderDisplayType", DisplayTypeEnum.popup);
61
61
  _defineProperty(this, "_multipleCallbackEvents", void 0);
62
62
  _defineProperty(this, "_isAppWebview", void 0);
63
+ _defineProperty(this, "_isNativeAppWebview", void 0);
63
64
  _defineProperty(this, "_merchantAppointParam", void 0);
64
65
  _defineProperty(this, "_webAppHeartBeatTimeoutFn", void 0);
65
66
  _defineProperty(this, "_hasRenderComponent", false);
@@ -282,6 +283,7 @@ var ComponentApp = /*#__PURE__*/function () {
282
283
  var inlineId = "".concat(COMPONENT_CONTAINER_ID).concat(appendAliasContainerId);
283
284
  var insertedNode = (this === null || this === void 0 ? void 0 : this._renderDisplayType) === DisplayTypeEnum.inline ? "#".concat(inlineId) : this === null || this === void 0 ? void 0 : this._selector;
284
285
  this._isAppWebview = renderParams.isAppWebview;
286
+ this._isNativeAppWebview = renderParams.isNativeAppWebview;
285
287
  this.initLoggerMeta();
286
288
  this.initSecurity();
287
289
  this._performanceData.push({
@@ -739,7 +741,7 @@ var ComponentApp = /*#__PURE__*/function () {
739
741
  this._actionSubmitPromise = new Promise( /*#__PURE__*/function () {
740
742
  var _ref9 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(resolve) {
741
743
  var _channelBehavior$buil, _this6$_renderParams$, _this6$_renderParams4;
742
- var shouldSkipSubmitPayInSDK, _this6$_renderParams, _this6$_renderParams2, _this6$_renderParams3, _ref10, _ref10$productSceneVe, productSceneVersion, _ref10$productScene, productScene, _ref11, _ref11$action, _ref11$action2, _ref11$action2$enable, enableSignAgreement, _ref11$action2$autoDe, autoDebitWithToken, _ref12, _ref12$paymentMethodI, _ref12$paymentMethodI2, _ref12$paymentMethodI3, paymentMethodType, isAppWebview, backScheme, extParams;
744
+ var shouldSkipSubmitPayInSDK, _this6$_renderParams, _this6$_renderParams2, _this6$_renderParams3, _ref10, _ref10$productSceneVe, productSceneVersion, _ref10$productScene, productScene, _ref11, _ref11$action, _ref11$action2, _ref11$action2$enable, enableSignAgreement, _ref11$action2$autoDe, autoDebitWithToken, _ref12, _ref12$paymentMethodI, _ref12$paymentMethodI2, _ref12$paymentMethodI3, paymentMethodType, isAppWebview, isNativeAppWebview, backScheme, extParams;
743
745
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
744
746
  while (1) switch (_context3.prev = _context3.next) {
745
747
  case 0:
@@ -764,9 +766,10 @@ var ComponentApp = /*#__PURE__*/function () {
764
766
  _ref11 = ((_this6$_renderParams2 = _this6._renderParams) === null || _this6$_renderParams2 === void 0 ? void 0 : _this6$_renderParams2.paymentSessionMetaData) || {}, _ref11$action = _ref11.action, _ref11$action2 = _ref11$action === void 0 ? {} : _ref11$action, _ref11$action2$enable = _ref11$action2.enableSignAgreement, enableSignAgreement = _ref11$action2$enable === void 0 ? false : _ref11$action2$enable, _ref11$action2$autoDe = _ref11$action2.autoDebitWithToken, autoDebitWithToken = _ref11$action2$autoDe === void 0 ? false : _ref11$action2$autoDe;
765
767
  _ref12 = ((_this6$_renderParams3 = _this6._renderParams) === null || _this6$_renderParams3 === void 0 ? void 0 : _this6$_renderParams3.paymentSessionMetaData) || {}, _ref12$paymentMethodI = _ref12.paymentMethodInfoView, _ref12$paymentMethodI2 = _ref12$paymentMethodI === void 0 ? {} : _ref12$paymentMethodI, _ref12$paymentMethodI3 = _ref12$paymentMethodI2.paymentMethodType, paymentMethodType = _ref12$paymentMethodI3 === void 0 ? '' : _ref12$paymentMethodI3;
766
768
  if (productScene === ProductSceneEnum.EASY_PAY && productSceneVersion === '2.0' && !autoDebitWithToken) {
767
- isAppWebview = _this6._isAppWebview || false; ///EasyPay 2.0 首次传signAgreement字段
769
+ isAppWebview = _this6._isAppWebview || false;
770
+ isNativeAppWebview = _this6._isNativeAppWebview || false; ///EasyPay 2.0 首次传signAgreement字段
768
771
  params['signAgreement'] = enableSignAgreement;
769
- if (paymentMethodType == 'ALIPAY_CN' && !isAppWebview) {
772
+ if (paymentMethodType === 'ALIPAY_CN' && (!isAppWebview || !isNativeAppWebview)) {
770
773
  backScheme = getBackScheme(undefined, _this6.AMSSDK.logger);
771
774
  if (backScheme && backScheme !== 'https') {
772
775
  params['h5FromApp'] = encodeURIComponent(backScheme);
@@ -1869,6 +1872,7 @@ var ComponentApp = /*#__PURE__*/function () {
1869
1872
  appearance: (_this$_renderParams29 = this._renderParams) === null || _this$_renderParams29 === void 0 ? void 0 : _this$_renderParams29.appearance,
1870
1873
  notRedirectAfterComplete: ((_this$_renderParams30 = this._renderParams) === null || _this$_renderParams30 === void 0 ? void 0 : _this$_renderParams30.notRedirectAfterComplete) === true,
1871
1874
  isAppWebview: this._isAppWebview,
1875
+ isNativeAppWebview: this._isNativeAppWebview,
1872
1876
  merchantAppointParam: this._merchantAppointParam,
1873
1877
  allowSubmitPayCallAhead: this._allowSubmitPayCallAhead,
1874
1878
  /** 地址组件集成的参数 */