@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.
- package/ams-checkout.js +3 -3
- package/dist/ams-checkout.min.js +1 -1
- package/dist/ams-checkout.min.js.map +1 -1
- package/esm/config/index.js +1 -1
- package/esm/core/component/element/modernElementController/index.js +35 -28
- package/esm/modern/tools.js +1 -1
- package/esm/plugin/component/channel.d.ts +1 -1
- package/esm/plugin/component/channel.js +2 -13
- package/esm/util/logger.js +1 -1
- package/package.json +1 -1
package/esm/config/index.js
CHANGED
|
@@ -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.
|
|
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.
|
|
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.
|
|
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 =
|
|
890
|
-
_context5.next =
|
|
906
|
+
_context5.prev = 15;
|
|
907
|
+
_context5.next = 18;
|
|
891
908
|
return service.startPay();
|
|
892
|
-
case
|
|
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 =
|
|
917
|
+
_context5.next = 26;
|
|
901
918
|
break;
|
|
902
|
-
case
|
|
903
|
-
_context5.prev =
|
|
904
|
-
_context5.t0 = _context5["catch"](
|
|
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
|
|
942
|
+
case 26:
|
|
926
943
|
case "end":
|
|
927
944
|
return _context5.stop();
|
|
928
945
|
}
|
|
929
|
-
}, _callee5, this, [[
|
|
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
|
-
|
|
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
|
};
|