@alipay/ams-checkout 0.0.1784626568-dev.8 → 0.0.1784626568-dev.9

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.
@@ -30,7 +30,7 @@ export var v2AppMarmotMap = {
30
30
  light_sandbox: 'https://checkout.antom.com',
31
31
  prod: 'https://checkout.antom.com'
32
32
  };
33
- export var sdkVersion = "0.0.1784626568-dev.8";
33
+ export var sdkVersion = "0.0.1784626568-dev.9";
34
34
 
35
35
  /**
36
36
  * @description: 目前应用层分为v1和v2,会存在两个应用版本号不是同步发布的情况。所以需要把默认的应用版本号配置抽离出来。
@@ -29,7 +29,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
29
29
  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; }
30
30
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
31
31
  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); }
32
- import { openModal, sdkQuery, getLocaleFromRenderData, getDevReqConfig, getMetaData, buildPageUrl, debugError, debug, MessageType, request, parseHostSign, SDKBridge, parseTrackerId, oneAccountQuery, OpenSDKError, awaitWrap, themeColorMap, ApplePayHostService, checkSessionData, sdkTracker } from "../../../../modern/tools";
32
+ import { openModal, sdkQuery, getLocaleFromRenderData, getDevReqConfig, getMetaData, buildPageUrl, debugError, debug, MessageType, request, parseHostSign, SDKBridge, parseTrackerId, oneAccountQuery, OpenSDKError, awaitWrap, themeColorMap, ApplePayHostService, buildRecurringPaymentRequest, checkSessionData, sdkTracker } from "../../../../modern/tools";
33
33
  import { device } from "../../../../util";
34
34
  import { EventCallbackCode } from "../type";
35
35
  import { adaptSubmitResult, adaptAppearance } from "./adapter";
@@ -88,6 +88,9 @@ var recoverSdkQueryBusinessResponse = function recoverSdkQueryBusinessResponse(e
88
88
  var MOUNT_TIMEOUT = 16000;
89
89
  var logger = new Logger(LogConfig, true);
90
90
  var ELEMENT_DESTROYED_MESSAGE = 'Element already destroyed';
91
+ // 订阅/分期场景 ApplePaySession 版本:recurringPaymentRequest 需 v12+。
92
+ // 对齐老链路 plugin/applepay/interface.ts 的 APPLE_PAY_RECURRING_VERSION = 14。
93
+ var APPLE_PAY_RECURRING_VERSION = 14;
91
94
  var getDestroyedError = function getDestroyedError() {
92
95
  return {
93
96
  code: ERRORMESSAGE.UI_STATE_ERROR.code,
@@ -401,7 +404,7 @@ export var ModernElementController = /*#__PURE__*/function () {
401
404
  request.setGlobalOptions({
402
405
  hostSign: parseHostSign(sessionData),
403
406
  env: this.options.environment,
404
- sdkVersion: "0.0.1784626568-dev.8" || '',
407
+ sdkVersion: "0.0.1784626568-dev.9" || '',
405
408
  tracker: sdkTracker
406
409
  });
407
410
  isConnect = !!(parseData !== null && parseData !== void 0 && (_parseData$connectFac = parseData.connectFactor) !== null && _parseData$connectFac !== void 0 && _parseData$connectFac.enableConnect);
@@ -497,7 +500,7 @@ export var ModernElementController = /*#__PURE__*/function () {
497
500
  // 新sdk字段
498
501
  locale: locale,
499
502
  // 新sdk字段
500
- sdkVersion: "0.0.1784626568-dev.8" || '',
503
+ sdkVersion: "0.0.1784626568-dev.9" || '',
501
504
  // 新sdk字段
502
505
  merchantId: (sdkQueryResult === null || sdkQueryResult === void 0 || (_sdkQueryResult$data = sdkQueryResult.data) === null || _sdkQueryResult$data === void 0 ? void 0 : _sdkQueryResult$data.merchantId) || '',
503
506
  // 新sdk字段
@@ -714,7 +717,7 @@ export var ModernElementController = /*#__PURE__*/function () {
714
717
  var _handleGetApplePayToken = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(payload, onBeforeConfirm) {
715
718
  var _paymentMethod,
716
719
  _this3 = this;
717
- var sessionData, applePayProps, paymentRequest, merchantCapabilities, merchantInfo, paymentAmount, supportedNetworks, version, requiredBillingContactFields, requiredShippingContactFields, finalAmount, finalCurrency, capturedResult, service, _capturedResult, errCode;
720
+ var sessionData, applePayProps, paymentRequest, merchantCapabilities, merchantInfo, paymentAmount, supportedNetworks, version, requiredBillingContactFields, requiredShippingContactFields, finalAmount, finalCurrency, capturedResult, recurringRequest, service, _capturedResult, errCode;
718
721
  return _regeneratorRuntime().wrap(function _callee5$(_context5) {
719
722
  while (1) switch (_context5.prev = _context5.next) {
720
723
  case 0:
@@ -748,21 +751,35 @@ export var ModernElementController = /*#__PURE__*/function () {
748
751
  if (this._merchantCurrency) {
749
752
  finalCurrency = this._merchantCurrency;
750
753
  }
754
+ // 订阅场景:从 sessionData 提取 recurringInfo 构造 recurringPaymentRequest。
755
+ // 对齐老 ApplePaySdk 链路(parseData.paymentSessionFactor.recurringInfo)与
756
+ // Express 链路(applePayHostToken.ts),否则 Chrome 非 Safari 会降级为普通支付弹窗。
757
+ recurringRequest = buildRecurringPaymentRequest(sessionData, merchantInfo, {
758
+ value: finalAmount,
759
+ currency: finalCurrency
760
+ });
751
761
  service = new ApplePayHostService({
752
- paymentRequest: {
762
+ paymentRequest: _objectSpread({
753
763
  countryCode: merchantInfo === null || merchantInfo === void 0 ? void 0 : merchantInfo.countryCode,
754
764
  currencyCode: finalCurrency,
755
765
  merchantCapabilities: merchantCapabilities,
756
766
  supportedNetworks: supportedNetworks,
757
767
  requiredBillingContactFields: requiredBillingContactFields,
758
768
  requiredShippingContactFields: requiredShippingContactFields,
759
- total: {
769
+ total: recurringRequest ? {
770
+ type: 'final',
771
+ label: recurringRequest.regularBilling.label,
772
+ amount: finalAmount
773
+ } : {
760
774
  type: 'final',
761
775
  label: (merchantInfo === null || merchantInfo === void 0 ? void 0 : merchantInfo.merchantName) || 'Payment',
762
776
  amount: finalAmount
763
777
  },
764
- version: version
765
- },
778
+ version: recurringRequest ? APPLE_PAY_RECURRING_VERSION : version
779
+ }, recurringRequest ? {
780
+ lineItems: [recurringRequest.regularBilling],
781
+ recurringPaymentRequest: recurringRequest
782
+ } : {}),
766
783
  enableModalCloseListener: true,
767
784
  callbacks: {
768
785
  validateMerchant: function () {
@@ -886,10 +903,10 @@ export var ModernElementController = /*#__PURE__*/function () {
886
903
  }()
887
904
  }
888
905
  });
889
- _context5.prev = 14;
890
- _context5.next = 17;
906
+ _context5.prev = 15;
907
+ _context5.next = 18;
891
908
  return service.startPay();
892
- case 17:
909
+ case 18:
893
910
  trackElement('applepay_token_success', {
894
911
  d1: (_capturedResult = capturedResult) !== null && _capturedResult !== void 0 && _capturedResult.token ? 'has_token' : 'no_token'
895
912
  });
@@ -897,11 +914,11 @@ export var ModernElementController = /*#__PURE__*/function () {
897
914
  success: true,
898
915
  result: capturedResult
899
916
  });
900
- _context5.next = 25;
917
+ _context5.next = 26;
901
918
  break;
902
- case 21:
903
- _context5.prev = 21;
904
- _context5.t0 = _context5["catch"](14);
919
+ case 22:
920
+ _context5.prev = 22;
921
+ _context5.t0 = _context5["catch"](15);
905
922
  // 商户验证失败已在 validateMerchant 内单独埋点(applepay_merchant_validate_failed),此处跳过避免重复
906
923
  if ((_context5.t0 === null || _context5.t0 === void 0 ? void 0 : _context5.t0.errorCode) !== 'APPLE_PAY_PAYMENT_SESSION_REQUEST_FAILED') {
907
924
  errCode = (_context5.t0 === null || _context5.t0 === void 0 ? void 0 : _context5.t0.errorCode) || 'APPLE_PAY_NOT_SUPPORTED'; // 用户主动取消单独标记,便于区分取消与真实失败
@@ -922,11 +939,11 @@ export var ModernElementController = /*#__PURE__*/function () {
922
939
  errorCode: (_context5.t0 === null || _context5.t0 === void 0 ? void 0 : _context5.t0.errorCode) || 'APPLE_PAY_NOT_SUPPORTED'
923
940
  }
924
941
  });
925
- case 25:
942
+ case 26:
926
943
  case "end":
927
944
  return _context5.stop();
928
945
  }
929
- }, _callee5, this, [[14, 21]]);
946
+ }, _callee5, this, [[15, 22]]);
930
947
  }));
931
948
  function handleGetApplePayToken(_x4, _x5) {
932
949
  return _handleGetApplePayToken.apply(this, arguments);
@@ -1031,22 +1048,12 @@ export var ModernElementController = /*#__PURE__*/function () {
1031
1048
  loadAndPay();
1032
1049
  return;
1033
1050
  }
1034
- console.log('sdk googlePay debug 1', 'handleGetGooglePayToken');
1051
+
1035
1052
  // 否则动态加载 GP SDK 脚本
1036
1053
  var script = document.createElement('script');
1037
1054
  script.src = 'https://pay.google.com/gp/p/js/pay.js';
1038
1055
  script.async = true;
1039
- console.log('sdk googlePay debug 2', 'handleGetGooglePayToken');
1040
- // 当判断条件成立时,代表 document.body.appendChild 方法已被劫持
1041
- if (document.body.appendChild !== Node.prototype.appendChild) {
1042
- // 使用原生 appendChild 避免微前端沙箱(如 qiankun)将动态 <script> 劫持为 fetch 加载,
1043
- // 导致不支持 CORS 的第三方脚本(如 pay.google.com)加载失败
1044
- Node.prototype.appendChild.call(document.body, script);
1045
- } else {
1046
- document.body.appendChild(script);
1047
- }
1048
1056
  document.body.appendChild(script);
1049
- console.log('sdk googlePay debug 3', document.body.appendChild !== Node.prototype.appendChild);
1050
1057
  script.onload = function () {
1051
1058
  loadAndPay();
1052
1059
  };