@alipay/ams-checkout 0.0.1784626568-dev.7 → 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.d.ts +1 -0
- package/esm/core/component/element/modernElementController/index.js +39 -19
- package/esm/modern/tools.js +1 -1
- 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,会存在两个应用版本号不是同步发布的情况。所以需要把默认的应用版本号配置抽离出来。
|
|
@@ -27,6 +27,7 @@ export declare class ModernElementController implements IElementController {
|
|
|
27
27
|
private cachedSend;
|
|
28
28
|
private modalBridge;
|
|
29
29
|
private modalDestroy;
|
|
30
|
+
private modalIframe;
|
|
30
31
|
private _closeConfirmResolve;
|
|
31
32
|
private notRedirectAfterComplete;
|
|
32
33
|
private _sdkInitTime;
|
|
@@ -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,
|
|
@@ -185,6 +188,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
185
188
|
// Modal 相关资源
|
|
186
189
|
_defineProperty(this, "modalBridge", null);
|
|
187
190
|
_defineProperty(this, "modalDestroy", null);
|
|
191
|
+
_defineProperty(this, "modalIframe", null);
|
|
188
192
|
_defineProperty(this, "_closeConfirmResolve", null);
|
|
189
193
|
_defineProperty(this, "notRedirectAfterComplete", false);
|
|
190
194
|
_defineProperty(this, "_sdkInitTime", Date.now());
|
|
@@ -400,7 +404,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
400
404
|
request.setGlobalOptions({
|
|
401
405
|
hostSign: parseHostSign(sessionData),
|
|
402
406
|
env: this.options.environment,
|
|
403
|
-
sdkVersion: "0.0.1784626568-dev.
|
|
407
|
+
sdkVersion: "0.0.1784626568-dev.9" || '',
|
|
404
408
|
tracker: sdkTracker
|
|
405
409
|
});
|
|
406
410
|
isConnect = !!(parseData !== null && parseData !== void 0 && (_parseData$connectFac = parseData.connectFactor) !== null && _parseData$connectFac !== void 0 && _parseData$connectFac.enableConnect);
|
|
@@ -496,7 +500,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
496
500
|
// 新sdk字段
|
|
497
501
|
locale: locale,
|
|
498
502
|
// 新sdk字段
|
|
499
|
-
sdkVersion: "0.0.1784626568-dev.
|
|
503
|
+
sdkVersion: "0.0.1784626568-dev.9" || '',
|
|
500
504
|
// 新sdk字段
|
|
501
505
|
merchantId: (sdkQueryResult === null || sdkQueryResult === void 0 || (_sdkQueryResult$data = sdkQueryResult.data) === null || _sdkQueryResult$data === void 0 ? void 0 : _sdkQueryResult$data.merchantId) || '',
|
|
502
506
|
// 新sdk字段
|
|
@@ -614,8 +618,8 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
614
618
|
if (_this2.iframe) _this2.iframe.style.height = "".concat(height, "px");
|
|
615
619
|
});
|
|
616
620
|
this.bridge.on(MessageType.REDIRECT, function (payload, _ports, meta) {
|
|
617
|
-
var _this2$iframe;
|
|
618
|
-
if (meta && meta.source !== ((_this2$iframe = _this2.iframe) === null || _this2$iframe === void 0 ? void 0 : _this2$iframe.contentWindow)) {
|
|
621
|
+
var _this2$iframe, _this2$modalIframe;
|
|
622
|
+
if (meta && meta.source !== ((_this2$iframe = _this2.iframe) === null || _this2$iframe === void 0 ? void 0 : _this2$iframe.contentWindow) && meta.source !== ((_this2$modalIframe = _this2.modalIframe) === null || _this2$modalIframe === void 0 ? void 0 : _this2$modalIframe.contentWindow)) {
|
|
619
623
|
return;
|
|
620
624
|
}
|
|
621
625
|
var url = payload.url,
|
|
@@ -713,7 +717,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
713
717
|
var _handleGetApplePayToken = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(payload, onBeforeConfirm) {
|
|
714
718
|
var _paymentMethod,
|
|
715
719
|
_this3 = this;
|
|
716
|
-
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;
|
|
717
721
|
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
718
722
|
while (1) switch (_context5.prev = _context5.next) {
|
|
719
723
|
case 0:
|
|
@@ -747,21 +751,35 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
747
751
|
if (this._merchantCurrency) {
|
|
748
752
|
finalCurrency = this._merchantCurrency;
|
|
749
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
|
+
});
|
|
750
761
|
service = new ApplePayHostService({
|
|
751
|
-
paymentRequest: {
|
|
762
|
+
paymentRequest: _objectSpread({
|
|
752
763
|
countryCode: merchantInfo === null || merchantInfo === void 0 ? void 0 : merchantInfo.countryCode,
|
|
753
764
|
currencyCode: finalCurrency,
|
|
754
765
|
merchantCapabilities: merchantCapabilities,
|
|
755
766
|
supportedNetworks: supportedNetworks,
|
|
756
767
|
requiredBillingContactFields: requiredBillingContactFields,
|
|
757
768
|
requiredShippingContactFields: requiredShippingContactFields,
|
|
758
|
-
total: {
|
|
769
|
+
total: recurringRequest ? {
|
|
770
|
+
type: 'final',
|
|
771
|
+
label: recurringRequest.regularBilling.label,
|
|
772
|
+
amount: finalAmount
|
|
773
|
+
} : {
|
|
759
774
|
type: 'final',
|
|
760
775
|
label: (merchantInfo === null || merchantInfo === void 0 ? void 0 : merchantInfo.merchantName) || 'Payment',
|
|
761
776
|
amount: finalAmount
|
|
762
777
|
},
|
|
763
|
-
version: version
|
|
764
|
-
},
|
|
778
|
+
version: recurringRequest ? APPLE_PAY_RECURRING_VERSION : version
|
|
779
|
+
}, recurringRequest ? {
|
|
780
|
+
lineItems: [recurringRequest.regularBilling],
|
|
781
|
+
recurringPaymentRequest: recurringRequest
|
|
782
|
+
} : {}),
|
|
765
783
|
enableModalCloseListener: true,
|
|
766
784
|
callbacks: {
|
|
767
785
|
validateMerchant: function () {
|
|
@@ -885,10 +903,10 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
885
903
|
}()
|
|
886
904
|
}
|
|
887
905
|
});
|
|
888
|
-
_context5.prev =
|
|
889
|
-
_context5.next =
|
|
906
|
+
_context5.prev = 15;
|
|
907
|
+
_context5.next = 18;
|
|
890
908
|
return service.startPay();
|
|
891
|
-
case
|
|
909
|
+
case 18:
|
|
892
910
|
trackElement('applepay_token_success', {
|
|
893
911
|
d1: (_capturedResult = capturedResult) !== null && _capturedResult !== void 0 && _capturedResult.token ? 'has_token' : 'no_token'
|
|
894
912
|
});
|
|
@@ -896,11 +914,11 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
896
914
|
success: true,
|
|
897
915
|
result: capturedResult
|
|
898
916
|
});
|
|
899
|
-
_context5.next =
|
|
917
|
+
_context5.next = 26;
|
|
900
918
|
break;
|
|
901
|
-
case
|
|
902
|
-
_context5.prev =
|
|
903
|
-
_context5.t0 = _context5["catch"](
|
|
919
|
+
case 22:
|
|
920
|
+
_context5.prev = 22;
|
|
921
|
+
_context5.t0 = _context5["catch"](15);
|
|
904
922
|
// 商户验证失败已在 validateMerchant 内单独埋点(applepay_merchant_validate_failed),此处跳过避免重复
|
|
905
923
|
if ((_context5.t0 === null || _context5.t0 === void 0 ? void 0 : _context5.t0.errorCode) !== 'APPLE_PAY_PAYMENT_SESSION_REQUEST_FAILED') {
|
|
906
924
|
errCode = (_context5.t0 === null || _context5.t0 === void 0 ? void 0 : _context5.t0.errorCode) || 'APPLE_PAY_NOT_SUPPORTED'; // 用户主动取消单独标记,便于区分取消与真实失败
|
|
@@ -921,11 +939,11 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
921
939
|
errorCode: (_context5.t0 === null || _context5.t0 === void 0 ? void 0 : _context5.t0.errorCode) || 'APPLE_PAY_NOT_SUPPORTED'
|
|
922
940
|
}
|
|
923
941
|
});
|
|
924
|
-
case
|
|
942
|
+
case 26:
|
|
925
943
|
case "end":
|
|
926
944
|
return _context5.stop();
|
|
927
945
|
}
|
|
928
|
-
}, _callee5, this, [[
|
|
946
|
+
}, _callee5, this, [[15, 22]]);
|
|
929
947
|
}));
|
|
930
948
|
function handleGetApplePayToken(_x4, _x5) {
|
|
931
949
|
return _handleGetApplePayToken.apply(this, arguments);
|
|
@@ -1728,9 +1746,11 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1728
1746
|
modalBridge.send(MessageType.TRANSFER_MODAL_PORT, payload.modalId, [messageChannel.port2]);
|
|
1729
1747
|
}
|
|
1730
1748
|
};
|
|
1749
|
+
this.modalIframe = iframe;
|
|
1731
1750
|
this.modalDestroy = function () {
|
|
1732
1751
|
destroy();
|
|
1733
1752
|
iframe.removeEventListener('load', handler);
|
|
1753
|
+
_this12.modalIframe = null;
|
|
1734
1754
|
};
|
|
1735
1755
|
|
|
1736
1756
|
// 监听 modal 的 iframe load 事件
|