@alipay/ams-checkout 0.0.1786071074-dev.0 → 0.0.1786071074-dev.2
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/ckp/index.js +21 -1
- package/esm/core/component/element/elementController/index.js +4 -3
- package/esm/core/component/element/modernElementController/index.d.ts +11 -1
- package/esm/core/component/element/modernElementController/index.js +241 -188
- package/esm/core/component/element/type.d.ts +2 -2
- package/esm/foundation/service/log/keys.js +4 -0
- package/esm/index.d.ts +6 -7
- package/esm/index.js +9 -14
- package/esm/modern/index.js +1 -1
- package/esm/modern/sdk/elements/appearanceRules.d.ts +59 -0
- package/esm/modern/tools.js +1 -1
- package/esm/tsdoc-metadata.json +1 -1
- package/esm/util/logger.js +1 -1
- package/package.json +12 -12
- package/types.d.ts +193 -32
- package/types.untrimmed.d.ts +193 -32
|
@@ -29,13 +29,20 @@ 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 {
|
|
32
|
+
import { ERRORMESSAGE, PROMISE_CALLBACK_CODE } from "../../../../constant";
|
|
33
|
+
import { BusManager, BusMessage } from "../../../bus";
|
|
34
|
+
import { ApplePayActionEnum } from "../../../bus/interface";
|
|
33
35
|
import { shouldQueryOneAccount } from "../../../utils/connectConfig";
|
|
36
|
+
import { ApplePayHostService, awaitWrap, buildPageUrl, buildRecurringPaymentRequest, checkSessionData, debug, debugError, getDevReqConfig, getLocaleFromRenderData, getMetaData, MessageType, ModalPort, oneAccountQuery, openModal, OpenSDKError, parseHostSign, parseTrackerId, request, SDKBridge, sdkQuery, sdkTracker, showToast, themeColorMap } from "../../../../modern/tools";
|
|
37
|
+
import { getApplePayPaymentSession } from "../../../../service";
|
|
34
38
|
import { device } from "../../../../util";
|
|
39
|
+
import { BEFORE_CONFIRM_TIMEOUT_MS, executeWithTimeout, MERCHANT_CONFIRM_ABORT_CODE, MERCHANT_CONFIRM_TIMEOUT_CODE } from "../../../../util/beforeConfirm";
|
|
40
|
+
import CallApp from "../../../../util/intl-callapp/es/main";
|
|
41
|
+
import { LogConfig, Logger } from "../../../../util/logger";
|
|
42
|
+
import { v4 as uuid } from 'uuid';
|
|
35
43
|
import { EventCallbackCode } from "../type";
|
|
36
|
-
import { adaptSubmitResult, adaptAppearance } from "./adapter";
|
|
37
44
|
import { safeParse } from "../util";
|
|
38
|
-
import {
|
|
45
|
+
import { adaptAppearance, adaptSubmitResult } from "./adapter";
|
|
39
46
|
|
|
40
47
|
// ============================================================
|
|
41
48
|
// 埋点 helper(不改 opensdk 源码,复用 sdkTracker 单例,trackId 已自动注入)
|
|
@@ -46,24 +53,6 @@ import { v4 as uuid } from 'uuid';
|
|
|
46
53
|
|
|
47
54
|
var TRACK_CODE_PREFIX = '7982';
|
|
48
55
|
|
|
49
|
-
// 缓存解析出的 merchantId,供埋点 helper 在任意阶段统一带上
|
|
50
|
-
var _merchantId = '';
|
|
51
|
-
var track = function track(phase, msg) {
|
|
52
|
-
var extra = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
53
|
-
try {
|
|
54
|
-
var code = "".concat(TRACK_CODE_PREFIX).concat(phase === 'error' ? '' : phase);
|
|
55
|
-
// LogItem 类型未暴露 merchant_id 字段,但运行时 tracker 会透传,
|
|
56
|
-
// 故用断言保留该字段名供下游埋点消费
|
|
57
|
-
sdkTracker.log(_objectSpread({
|
|
58
|
-
code: code,
|
|
59
|
-
msg: msg,
|
|
60
|
-
merchant_id: _merchantId
|
|
61
|
-
}, extra));
|
|
62
|
-
} catch (_unused) {
|
|
63
|
-
/* 埋点失败绝不影响主流程 */
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
|
|
67
56
|
/**
|
|
68
57
|
* 优先取 sessionData 解析出的 clientId;
|
|
69
58
|
* 缺失时从容错角度回落到 extendInfo 中的 merchantId(URL 编码需解码)。
|
|
@@ -80,42 +69,22 @@ var resolveMerchantId = function resolveMerchantId(parseData) {
|
|
|
80
69
|
return '';
|
|
81
70
|
}
|
|
82
71
|
return decodeURIComponent(merchantId);
|
|
83
|
-
} catch (
|
|
72
|
+
} catch (_unused) {
|
|
84
73
|
return '';
|
|
85
74
|
}
|
|
86
75
|
};
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
};
|
|
91
|
-
var trackHandshake = function trackHandshake(msg) {
|
|
92
|
-
var extra = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
93
|
-
return track('handshake', msg, extra);
|
|
94
|
-
};
|
|
95
|
-
var trackElement = function trackElement(msg) {
|
|
96
|
-
var extra = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
97
|
-
return track('element', msg, extra);
|
|
98
|
-
};
|
|
99
|
-
var trackError = function trackError(msg) {
|
|
100
|
-
var extra = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
101
|
-
return track('error', msg, extra);
|
|
102
|
-
};
|
|
103
|
-
// ============================================================
|
|
104
|
-
// 统一 API 终态上报(7982api):在 mount/submitPayment/validateFields
|
|
105
|
-
// 每个出口(成功/失败/中断)捕获「返回给商户的完整结果」,一处包裹覆盖全部分支。
|
|
106
|
-
// 与分散的 trackXxx 互补、不替换;merchantId 为关键字段,必带。
|
|
107
|
-
// _merchantId 在 setup() 解析后填充,mount 首次调用在 resolve 时已就绪。
|
|
108
|
-
// ============================================================
|
|
109
|
-
var reportApiEnd = function reportApiEnd(api, durationMs) {
|
|
110
|
-
var extra = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
76
|
+
// reportApiEnd 留为模块级,merchant_id 改为显式参数(由 runApi 从实例传入),
|
|
77
|
+
// 避免原模块级 _merchantId 的多实例共享竞争。track/trackXxx 已改为实例方法读 this.merchantId。
|
|
78
|
+
var reportApiEnd = function reportApiEnd(api, durationMs, merchantId) {
|
|
79
|
+
var extra = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
111
80
|
try {
|
|
112
81
|
sdkTracker.log(_objectSpread({
|
|
113
82
|
code: "".concat(TRACK_CODE_PREFIX, "api"),
|
|
114
83
|
msg: api,
|
|
115
84
|
m1: durationMs,
|
|
116
|
-
merchant_id:
|
|
85
|
+
merchant_id: merchantId
|
|
117
86
|
}, extra));
|
|
118
|
-
} catch (
|
|
87
|
+
} catch (_unused2) {
|
|
119
88
|
/* 埋点失败绝不影响主流程 */
|
|
120
89
|
}
|
|
121
90
|
};
|
|
@@ -141,10 +110,37 @@ var normalizeApiResult = function normalizeApiResult(api, result) {
|
|
|
141
110
|
return acc;
|
|
142
111
|
};
|
|
143
112
|
|
|
113
|
+
// 入参埋点:按 API 入参字段直接落入 d6 起,与 normalizeApiResult(d1-d5)错开。
|
|
114
|
+
// 标量字段记实际值;shippingInfo 含姓名/电话/地址等 PII,仅记存在性。
|
|
115
|
+
// onBeforeConfirm 为函数不可序列化跳过。
|
|
116
|
+
// mount 仅取低基配置字段(type/notRedirectAfterComplete/theme/layout),忽略 appearance.variables 等高基数项。
|
|
117
|
+
var normalizeApiInput = function normalizeApiInput(api, params) {
|
|
118
|
+
var acc = {};
|
|
119
|
+
if (!params) return acc;
|
|
120
|
+
if (api === 'submitPayment') {
|
|
121
|
+
var _params$amount, _params$currency;
|
|
122
|
+
acc.d6 = String(!!params.handleActions);
|
|
123
|
+
acc.d7 = (_params$amount = params.amount) !== null && _params$amount !== void 0 ? _params$amount : '';
|
|
124
|
+
acc.d8 = (_params$currency = params.currency) !== null && _params$currency !== void 0 ? _params$currency : '';
|
|
125
|
+
acc.d9 = params.shippingInfo ? 'true' : 'false';
|
|
126
|
+
} else if (api === 'mount') {
|
|
127
|
+
var _params$renderOptions, _params$renderOptions2, _params$renderOptions3, _params$renderOptions4, _params$renderOptions5, _params$renderOptions6, _params$renderOptions7, _params$sdkSelector, _params$renderOptions8, _appoint$singleOption, _appoint$storedCard;
|
|
128
|
+
acc.d6 = (_params$renderOptions = (_params$renderOptions2 = params.renderOptions) === null || _params$renderOptions2 === void 0 ? void 0 : _params$renderOptions2.type) !== null && _params$renderOptions !== void 0 ? _params$renderOptions : '';
|
|
129
|
+
acc.d7 = String(!!((_params$renderOptions3 = params.renderOptions) !== null && _params$renderOptions3 !== void 0 && _params$renderOptions3.notRedirectAfterComplete));
|
|
130
|
+
acc.d8 = (_params$renderOptions4 = (_params$renderOptions5 = params.renderOptions) === null || _params$renderOptions5 === void 0 || (_params$renderOptions5 = _params$renderOptions5.appearance) === null || _params$renderOptions5 === void 0 ? void 0 : _params$renderOptions5.theme) !== null && _params$renderOptions4 !== void 0 ? _params$renderOptions4 : '';
|
|
131
|
+
acc.d9 = (_params$renderOptions6 = (_params$renderOptions7 = params.renderOptions) === null || _params$renderOptions7 === void 0 || (_params$renderOptions7 = _params$renderOptions7.appearance) === null || _params$renderOptions7 === void 0 || (_params$renderOptions7 = _params$renderOptions7.layout) === null || _params$renderOptions7 === void 0 ? void 0 : _params$renderOptions7.type) !== null && _params$renderOptions6 !== void 0 ? _params$renderOptions6 : '';
|
|
132
|
+
acc.d10 = (_params$sdkSelector = params.sdkSelector) !== null && _params$sdkSelector !== void 0 ? _params$sdkSelector : '';
|
|
133
|
+
var appoint = (_params$renderOptions8 = params.renderOptions) === null || _params$renderOptions8 === void 0 ? void 0 : _params$renderOptions8.merchantAppointParam;
|
|
134
|
+
acc.d11 = (_appoint$singleOption = appoint === null || appoint === void 0 ? void 0 : appoint.singleOption) !== null && _appoint$singleOption !== void 0 ? _appoint$singleOption : '';
|
|
135
|
+
acc.d12 = (appoint === null || appoint === void 0 || (_appoint$storedCard = appoint.storedCard) === null || _appoint$storedCard === void 0 ? void 0 : _appoint$storedCard.needCVV) != null ? String(appoint.storedCard.needCVV) : '';
|
|
136
|
+
}
|
|
137
|
+
return acc;
|
|
138
|
+
};
|
|
139
|
+
|
|
144
140
|
// 统一包裹:捕获终态(resolve/reject)后上报,原值/原异常原样透传,不影响任何已有逻辑。
|
|
145
141
|
// extraBuilder 供调用方注入实例上下文字段(如 paymentMethodType),其值覆盖 normalizeApiResult 结果。
|
|
146
142
|
var runApi = /*#__PURE__*/function () {
|
|
147
|
-
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(api, fn, extraBuilder) {
|
|
143
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(api, fn, extraBuilder, inputExtra, merchantId) {
|
|
148
144
|
var startedAt, result;
|
|
149
145
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
150
146
|
while (1) switch (_context.prev = _context.next) {
|
|
@@ -155,12 +151,12 @@ var runApi = /*#__PURE__*/function () {
|
|
|
155
151
|
return fn();
|
|
156
152
|
case 4:
|
|
157
153
|
result = _context.sent;
|
|
158
|
-
reportApiEnd(api, Date.now() - startedAt, _objectSpread(_objectSpread({}, normalizeApiResult(api, result)), extraBuilder === null || extraBuilder === void 0 ? void 0 : extraBuilder(false)));
|
|
154
|
+
reportApiEnd(api, Date.now() - startedAt, merchantId, _objectSpread(_objectSpread(_objectSpread({}, inputExtra), normalizeApiResult(api, result)), extraBuilder === null || extraBuilder === void 0 ? void 0 : extraBuilder(false)));
|
|
159
155
|
return _context.abrupt("return", result);
|
|
160
156
|
case 9:
|
|
161
157
|
_context.prev = 9;
|
|
162
158
|
_context.t0 = _context["catch"](1);
|
|
163
|
-
reportApiEnd(api, Date.now() - startedAt, _objectSpread({
|
|
159
|
+
reportApiEnd(api, Date.now() - startedAt, merchantId, _objectSpread(_objectSpread({}, inputExtra), {}, {
|
|
164
160
|
d1: 'error',
|
|
165
161
|
d2: (_context.t0 === null || _context.t0 === void 0 ? void 0 : _context.t0.code) || 'UNKNOWN'
|
|
166
162
|
}, extraBuilder === null || extraBuilder === void 0 ? void 0 : extraBuilder(true)));
|
|
@@ -171,17 +167,10 @@ var runApi = /*#__PURE__*/function () {
|
|
|
171
167
|
}
|
|
172
168
|
}, _callee, null, [[1, 9]]);
|
|
173
169
|
}));
|
|
174
|
-
return function runApi(_x, _x2, _x3) {
|
|
170
|
+
return function runApi(_x, _x2, _x3, _x4, _x5) {
|
|
175
171
|
return _ref.apply(this, arguments);
|
|
176
172
|
};
|
|
177
173
|
}();
|
|
178
|
-
import CallApp from "../../../../util/intl-callapp/es/main";
|
|
179
|
-
import { getApplePayPaymentSession } from "../../../../service";
|
|
180
|
-
import { BusManager, BusMessage } from "../../../bus";
|
|
181
|
-
import { ApplePayActionEnum } from "../../../bus/interface";
|
|
182
|
-
import { ERRORMESSAGE, PROMISE_CALLBACK_CODE } from "../../../../constant";
|
|
183
|
-
import { LogConfig, Logger } from "../../../../util/logger";
|
|
184
|
-
import { executeWithTimeout, BEFORE_CONFIRM_TIMEOUT_MS } from "../../../../util/beforeConfirm";
|
|
185
174
|
var recoverSdkQueryBusinessResponse = function recoverSdkQueryBusinessResponse(error) {
|
|
186
175
|
var response = error === null || error === void 0 ? void 0 : error.response;
|
|
187
176
|
if ((response === null || response === void 0 ? void 0 : response.success) === false) {
|
|
@@ -306,6 +295,11 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
306
295
|
_defineProperty(this, "currentPaymentMethodType", '');
|
|
307
296
|
/** 提交进行中标志:submitPayment 执行期间为 true,用于拒绝并发重入,避免旧闭包串扰/重复拉起钱包 */
|
|
308
297
|
_defineProperty(this, "isSubmitting", false);
|
|
298
|
+
/**
|
|
299
|
+
* 当前实例解析出的 merchantId,供 trackXxx / reportApiEnd 统一带上。
|
|
300
|
+
* 实例隔离:多实例并发 mount 时各自持有,避免原模块级 _merchantId 的共享竞争。
|
|
301
|
+
*/
|
|
302
|
+
_defineProperty(this, "merchantId", '');
|
|
309
303
|
this.options = options;
|
|
310
304
|
this.onStatusChange = onStatusChange;
|
|
311
305
|
if (options.sessionData) {
|
|
@@ -328,6 +322,47 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
328
322
|
});
|
|
329
323
|
}
|
|
330
324
|
_createClass(ModernElementController, [{
|
|
325
|
+
key: "track",
|
|
326
|
+
value:
|
|
327
|
+
// ── 埋点 helper(实例方法,读 this.merchantId)────────────────────────
|
|
328
|
+
function track(phase, msg) {
|
|
329
|
+
var extra = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
330
|
+
try {
|
|
331
|
+
var code = "".concat(TRACK_CODE_PREFIX).concat(phase === 'error' ? '' : phase);
|
|
332
|
+
sdkTracker.log(_objectSpread({
|
|
333
|
+
code: code,
|
|
334
|
+
msg: msg,
|
|
335
|
+
merchant_id: this.merchantId
|
|
336
|
+
}, extra));
|
|
337
|
+
} catch (_unused3) {
|
|
338
|
+
/* 埋点失败绝不影响主流程 */
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
}, {
|
|
342
|
+
key: "trackMount",
|
|
343
|
+
value: function trackMount(msg) {
|
|
344
|
+
var extra = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
345
|
+
this.track('mount', msg, extra);
|
|
346
|
+
}
|
|
347
|
+
}, {
|
|
348
|
+
key: "trackHandshake",
|
|
349
|
+
value: function trackHandshake(msg) {
|
|
350
|
+
var extra = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
351
|
+
this.track('handshake', msg, extra);
|
|
352
|
+
}
|
|
353
|
+
}, {
|
|
354
|
+
key: "trackElement",
|
|
355
|
+
value: function trackElement(msg) {
|
|
356
|
+
var extra = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
357
|
+
this.track('element', msg, extra);
|
|
358
|
+
}
|
|
359
|
+
}, {
|
|
360
|
+
key: "trackError",
|
|
361
|
+
value: function trackError(msg) {
|
|
362
|
+
var extra = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
363
|
+
this.track('error', msg, extra);
|
|
364
|
+
}
|
|
365
|
+
}, {
|
|
331
366
|
key: "mount",
|
|
332
367
|
value: function () {
|
|
333
368
|
var _mount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(renderOptions, sdkSelector) {
|
|
@@ -335,16 +370,28 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
335
370
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
336
371
|
while (1) switch (_context2.prev = _context2.next) {
|
|
337
372
|
case 0:
|
|
373
|
+
// 解析 merchantId(唯一赋值点):早于 runApi 求值 this.merchantId 与 doMount,
|
|
374
|
+
// 使 mount_start / api_end 都能带上有值的 merchant_id。checkSessionData 在 sessionData
|
|
375
|
+
// 缺失/无效时会 throw,这里容错吞掉——失败的校验仍由后续 setup() 内的 checkSessionData
|
|
376
|
+
// 抛出、走 mount_error 统一上报,不改变错误时序。
|
|
377
|
+
try {
|
|
378
|
+
this.merchantId = resolveMerchantId(checkSessionData(this.options.sessionData, 'ELEMENT_PAYMENT'));
|
|
379
|
+
} catch (_unused4) {
|
|
380
|
+
/* setup 校验异常会统一上报 */
|
|
381
|
+
}
|
|
338
382
|
return _context2.abrupt("return", runApi('mount', function () {
|
|
339
383
|
return _this.doMount(renderOptions, sdkSelector);
|
|
340
|
-
}
|
|
341
|
-
|
|
384
|
+
}, undefined, normalizeApiInput('mount', {
|
|
385
|
+
renderOptions: renderOptions,
|
|
386
|
+
sdkSelector: sdkSelector
|
|
387
|
+
}), this.merchantId));
|
|
388
|
+
case 2:
|
|
342
389
|
case "end":
|
|
343
390
|
return _context2.stop();
|
|
344
391
|
}
|
|
345
|
-
}, _callee2);
|
|
392
|
+
}, _callee2, this);
|
|
346
393
|
}));
|
|
347
|
-
function mount(
|
|
394
|
+
function mount(_x6, _x7) {
|
|
348
395
|
return _mount.apply(this, arguments);
|
|
349
396
|
}
|
|
350
397
|
return mount;
|
|
@@ -358,7 +405,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
358
405
|
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
359
406
|
while (1) switch (_context3.prev = _context3.next) {
|
|
360
407
|
case 0:
|
|
361
|
-
trackMount('mount_start', {
|
|
408
|
+
this.trackMount('mount_start', {
|
|
362
409
|
d1: sdkSelector,
|
|
363
410
|
d2: this.options.sessionData ? 'has_session' : 'no_session'
|
|
364
411
|
});
|
|
@@ -367,7 +414,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
367
414
|
_context3.next = 6;
|
|
368
415
|
break;
|
|
369
416
|
}
|
|
370
|
-
trackError('selector_not_found', {
|
|
417
|
+
this.trackError('selector_not_found', {
|
|
371
418
|
d1: sdkSelector
|
|
372
419
|
});
|
|
373
420
|
(_this$options = this.options) === null || _this$options === void 0 || (_this$options$onEvent = _this$options.onEventCallback) === null || _this$options$onEvent === void 0 || _this$options$onEvent.call(_this$options, {
|
|
@@ -398,7 +445,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
398
445
|
if (iframeOrigin && iframeOrigin !== 'null') {
|
|
399
446
|
this.bridge.setOrigin(iframeOrigin);
|
|
400
447
|
}
|
|
401
|
-
} catch (
|
|
448
|
+
} catch (_unused5) {
|
|
402
449
|
// URL 解析失败时保持默认 origin
|
|
403
450
|
}
|
|
404
451
|
} else {
|
|
@@ -411,7 +458,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
411
458
|
readyHandshakePromise = this.waitForReadyHandshake();
|
|
412
459
|
this.iframe.src = iframeUrl;
|
|
413
460
|
container.appendChild(this.iframe);
|
|
414
|
-
trackMount('iframe_loaded', {
|
|
461
|
+
this.trackMount('iframe_loaded', {
|
|
415
462
|
d1: iframeUrl
|
|
416
463
|
});
|
|
417
464
|
|
|
@@ -431,7 +478,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
431
478
|
dataStructError = this.validateRenderData(setupConfig.renderData, setupConfig.renderDataError);
|
|
432
479
|
if (dataStructError) {
|
|
433
480
|
setupConfig.renderDataError = dataStructError;
|
|
434
|
-
trackError('render_data_invalid', {
|
|
481
|
+
this.trackError('render_data_invalid', {
|
|
435
482
|
d1: dataStructError.code,
|
|
436
483
|
d2: dataStructError.reason
|
|
437
484
|
});
|
|
@@ -456,7 +503,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
456
503
|
error: dataStructError
|
|
457
504
|
});
|
|
458
505
|
case 40:
|
|
459
|
-
trackMount('mount_success', {
|
|
506
|
+
this.trackMount('mount_success', {
|
|
460
507
|
m1: this._mountStartTime ? Date.now() - this._mountStartTime : 0
|
|
461
508
|
});
|
|
462
509
|
return _context3.abrupt("return", {});
|
|
@@ -472,7 +519,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
472
519
|
error: _context3.t0
|
|
473
520
|
});
|
|
474
521
|
case 49:
|
|
475
|
-
trackError('mount_error', {
|
|
522
|
+
this.trackError('mount_error', {
|
|
476
523
|
d1: (_context3.t0 === null || _context3.t0 === void 0 ? void 0 : _context3.t0.code) || 'UNKNOWN',
|
|
477
524
|
d2: (_context3.t0 === null || _context3.t0 === void 0 ? void 0 : _context3.t0.message) || ''
|
|
478
525
|
});
|
|
@@ -491,7 +538,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
491
538
|
}
|
|
492
539
|
}, _callee3, this, [[8, 44]]);
|
|
493
540
|
}));
|
|
494
|
-
function doMount(
|
|
541
|
+
function doMount(_x8, _x9) {
|
|
495
542
|
return _doMount.apply(this, arguments);
|
|
496
543
|
}
|
|
497
544
|
return doMount;
|
|
@@ -519,7 +566,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
519
566
|
while (1) switch (_context4.prev = _context4.next) {
|
|
520
567
|
case 0:
|
|
521
568
|
this._mountStartTime = Date.now();
|
|
522
|
-
trackMount('setup_start');
|
|
569
|
+
this.trackMount('setup_start');
|
|
523
570
|
// 缓存起来,submit时使用
|
|
524
571
|
this.notRedirectAfterComplete = renderOptions.notRedirectAfterComplete || false;
|
|
525
572
|
sessionData = this.options.sessionData; // checkSessionData 失败会 throw AntomSDKError(SESSION_DATA_INVALID),
|
|
@@ -527,9 +574,6 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
527
574
|
parseData = checkSessionData(sessionData, 'ELEMENT_PAYMENT');
|
|
528
575
|
lastEnv = this.options.environment === 'sandbox' ? 'sandbox' : 'prod';
|
|
529
576
|
this.options.environment;
|
|
530
|
-
// 解析 merchantId(优先 clientId,缺失时容错回落到 extendInfo.merchantId),
|
|
531
|
-
// 缓存到模块级变量,使后续所有 trackXxx 埋点统一带上
|
|
532
|
-
_merchantId = resolveMerchantId(parseData);
|
|
533
577
|
|
|
534
578
|
// 初始化 request 全局配置,使 sdkQuery 能正确发起请求
|
|
535
579
|
// tracker: sdkTracker —— 接入 HTTP 层自动埋点(B 套),上报每个请求的成败/RTT/错误码
|
|
@@ -538,7 +582,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
538
582
|
hostSign: parseHostSign(sessionData),
|
|
539
583
|
env: lastEnv
|
|
540
584
|
}, getDevReqConfig()), {}, {
|
|
541
|
-
sdkVersion: "0.0.1786071074-dev.
|
|
585
|
+
sdkVersion: "0.0.1786071074-dev.2" || '',
|
|
542
586
|
tracker: sdkTracker
|
|
543
587
|
}));
|
|
544
588
|
isConnect = !!(parseData !== null && parseData !== void 0 && (_parseData$connectFac = parseData.connectFactor) !== null && _parseData$connectFac !== void 0 && _parseData$connectFac.enableConnect);
|
|
@@ -579,21 +623,21 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
579
623
|
});
|
|
580
624
|
});
|
|
581
625
|
queryPromise = Promise.all(promises);
|
|
582
|
-
_context4.next =
|
|
626
|
+
_context4.next = 19;
|
|
583
627
|
return Promise.race([queryPromise, destroyPromise]).finally(cancelDestroyCallback);
|
|
584
|
-
case
|
|
628
|
+
case 19:
|
|
585
629
|
_yield$Promise$race$f = _context4.sent;
|
|
586
630
|
_yield$Promise$race$f2 = _slicedToArray(_yield$Promise$race$f, 2);
|
|
587
631
|
sdkQueryResult = _yield$Promise$race$f2[0];
|
|
588
632
|
oneAccountQueryResult = _yield$Promise$race$f2[1];
|
|
589
633
|
if (sdkQueryResult.error) {
|
|
590
|
-
trackHandshake('sdk_query_failed', {
|
|
634
|
+
this.trackHandshake('sdk_query_failed', {
|
|
591
635
|
d1: ((_sdkQueryResult$error = sdkQueryResult.error) === null || _sdkQueryResult$error === void 0 ? void 0 : _sdkQueryResult$error.code) || '',
|
|
592
636
|
d2: ((_sdkQueryResult$error2 = sdkQueryResult.error) === null || _sdkQueryResult$error2 === void 0 ? void 0 : _sdkQueryResult$error2.message) || ''
|
|
593
637
|
});
|
|
594
638
|
}
|
|
595
639
|
if (shouldQueryOneAccountFlag && oneAccountQueryResult !== null && oneAccountQueryResult !== void 0 && oneAccountQueryResult.error) {
|
|
596
|
-
trackHandshake('one_account_query_failed', {
|
|
640
|
+
this.trackHandshake('one_account_query_failed', {
|
|
597
641
|
d1: ((_oneAccountQueryResul = oneAccountQueryResult.error) === null || _oneAccountQueryResul === void 0 ? void 0 : _oneAccountQueryResul.code) || '',
|
|
598
642
|
d2: ((_oneAccountQueryResul2 = oneAccountQueryResult.error) === null || _oneAccountQueryResul2 === void 0 ? void 0 : _oneAccountQueryResul2.message) || ''
|
|
599
643
|
});
|
|
@@ -628,7 +672,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
628
672
|
paymentMethodCategoryType: paymentSessionConfig === null || paymentSessionConfig === void 0 ? void 0 : paymentSessionConfig.paymentMethodCategoryType,
|
|
629
673
|
productSceneVersion: paymentSessionConfig === null || paymentSessionConfig === void 0 ? void 0 : paymentSessionConfig.productSceneVersion,
|
|
630
674
|
trackId: parseTrackerId(sessionData),
|
|
631
|
-
merchantId:
|
|
675
|
+
merchantId: this.merchantId,
|
|
632
676
|
paymentMethodType: parseData === null || parseData === void 0 || (_parseData$paymentMet = parseData.paymentMethodInfoView) === null || _parseData$paymentMet === void 0 ? void 0 : _parseData$paymentMet.paymentMethodType
|
|
633
677
|
},
|
|
634
678
|
// 原老字段
|
|
@@ -636,7 +680,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
636
680
|
// 新sdk字段
|
|
637
681
|
locale: locale,
|
|
638
682
|
// 新sdk字段
|
|
639
|
-
sdkVersion: "0.0.1786071074-dev.
|
|
683
|
+
sdkVersion: "0.0.1786071074-dev.2" || '',
|
|
640
684
|
// 新sdk字段
|
|
641
685
|
merchantId: (sdkQueryResult === null || sdkQueryResult === void 0 || (_sdkQueryResult$data = sdkQueryResult.data) === null || _sdkQueryResult$data === void 0 ? void 0 : _sdkQueryResult$data.merchantId) || '',
|
|
642
686
|
// 新sdk字段
|
|
@@ -646,13 +690,13 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
646
690
|
env: lastEnv
|
|
647
691
|
}, getDevReqConfig())
|
|
648
692
|
});
|
|
649
|
-
case
|
|
693
|
+
case 29:
|
|
650
694
|
case "end":
|
|
651
695
|
return _context4.stop();
|
|
652
696
|
}
|
|
653
697
|
}, _callee4, this);
|
|
654
698
|
}));
|
|
655
|
-
function setup(
|
|
699
|
+
function setup(_x10) {
|
|
656
700
|
return _setup.apply(this, arguments);
|
|
657
701
|
}
|
|
658
702
|
return setup;
|
|
@@ -771,7 +815,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
771
815
|
schemaUrl = payload.schemaUrl,
|
|
772
816
|
destroy = payload.destroy;
|
|
773
817
|
// d1=mode(redirect/replace) d2=跳转类型 d3=兜底url d4=appLinkUrl d5=schemaUrl d6=是否销毁
|
|
774
|
-
trackElement('redirect', {
|
|
818
|
+
_this3.trackElement('redirect', {
|
|
775
819
|
d1: mode || 'redirect',
|
|
776
820
|
d2: appLinkUrl ? 'app_link' : schemaUrl ? 'schema' : 'url',
|
|
777
821
|
d3: url || '',
|
|
@@ -794,7 +838,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
794
838
|
var app = new CallApp({
|
|
795
839
|
resultJudgmentTime: 2000,
|
|
796
840
|
fallback: function fallback() {
|
|
797
|
-
trackElement('redirect_fallback', {
|
|
841
|
+
_this3.trackElement('redirect_fallback', {
|
|
798
842
|
d1: 'callapp_failed',
|
|
799
843
|
d2: url || ''
|
|
800
844
|
});
|
|
@@ -809,7 +853,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
809
853
|
fallbackJump();
|
|
810
854
|
}
|
|
811
855
|
} catch (error) {
|
|
812
|
-
trackError('redirect_error', {
|
|
856
|
+
_this3.trackError('redirect_error', {
|
|
813
857
|
d1: 'callapp_exception',
|
|
814
858
|
d2: (error === null || error === void 0 ? void 0 : error.message) || '',
|
|
815
859
|
d3: url || ''
|
|
@@ -867,14 +911,14 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
867
911
|
sessionData = this.options.sessionData;
|
|
868
912
|
applePayProps = payload === null || payload === void 0 || (_paymentMethod = payload.paymentMethod) === null || _paymentMethod === void 0 || (_paymentMethod = _paymentMethod.paymentMethodDetail) === null || _paymentMethod === void 0 ? void 0 : _paymentMethod.applePayProps;
|
|
869
913
|
paymentRequest = applePayProps === null || applePayProps === void 0 ? void 0 : applePayProps.paymentRequest;
|
|
870
|
-
trackElement('applepay_token_request', {
|
|
914
|
+
this.trackElement('applepay_token_request', {
|
|
871
915
|
d1: paymentRequest ? 'has_payment_request' : 'no_payment_request'
|
|
872
916
|
});
|
|
873
917
|
if (paymentRequest) {
|
|
874
918
|
_context7.next = 8;
|
|
875
919
|
break;
|
|
876
920
|
}
|
|
877
|
-
trackError('applepay_token_missing_data', {
|
|
921
|
+
this.trackError('applepay_token_missing_data', {
|
|
878
922
|
d1: 'MISSING_DATA'
|
|
879
923
|
});
|
|
880
924
|
this.bridge.send(AMSMessageType.GET_APPLE_PAY_TOKEN_REPLY, {
|
|
@@ -886,7 +930,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
886
930
|
return _context7.abrupt("return");
|
|
887
931
|
case 8:
|
|
888
932
|
merchantCapabilities = paymentRequest.merchantCapabilities, merchantInfo = paymentRequest.merchantInfo, paymentAmount = paymentRequest.paymentAmount, supportedNetworks = paymentRequest.supportedNetworks, version = paymentRequest.version, requiredBillingContactFields = paymentRequest.requiredBillingContactFields, requiredShippingContactFields = paymentRequest.requiredShippingContactFields;
|
|
889
|
-
finalAmount =
|
|
933
|
+
finalAmount = paymentAmount === null || paymentAmount === void 0 ? void 0 : paymentAmount.value;
|
|
890
934
|
finalCurrency = paymentAmount === null || paymentAmount === void 0 ? void 0 : paymentAmount.currency; // 商户 amount/currency 覆盖(优先级高于 iframe 传来的值,用于 Apple Pay 弹窗展示)
|
|
891
935
|
if (this._merchantAmount) {
|
|
892
936
|
finalAmount = this._merchantAmount;
|
|
@@ -931,7 +975,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
931
975
|
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
932
976
|
while (1) switch (_context5.prev = _context5.next) {
|
|
933
977
|
case 0:
|
|
934
|
-
trackElement('applepay_validate_start', {
|
|
978
|
+
_this4.trackElement('applepay_validate_start', {
|
|
935
979
|
d1: 'merchant_validate'
|
|
936
980
|
});
|
|
937
981
|
_context5.next = 3;
|
|
@@ -951,12 +995,12 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
951
995
|
_context5.next = 7;
|
|
952
996
|
break;
|
|
953
997
|
}
|
|
954
|
-
trackElement('applepay_validate_success', {
|
|
998
|
+
_this4.trackElement('applepay_validate_success', {
|
|
955
999
|
d1: 'got_session'
|
|
956
1000
|
});
|
|
957
1001
|
return _context5.abrupt("return", typeof res.merchantSessionObject === 'string' ? JSON.parse(res.merchantSessionObject) : res.merchantSessionObject);
|
|
958
1002
|
case 7:
|
|
959
|
-
trackError('applepay_merchant_validate_failed', {
|
|
1003
|
+
_this4.trackError('applepay_merchant_validate_failed', {
|
|
960
1004
|
d1: 'VALIDATION_FAILED',
|
|
961
1005
|
d2: (res === null || res === void 0 ? void 0 : res.errorMessage) || 'Merchant validation failed'
|
|
962
1006
|
});
|
|
@@ -969,20 +1013,20 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
969
1013
|
}
|
|
970
1014
|
}, _callee5);
|
|
971
1015
|
}));
|
|
972
|
-
function validateMerchant(
|
|
1016
|
+
function validateMerchant(_x13) {
|
|
973
1017
|
return _validateMerchant.apply(this, arguments);
|
|
974
1018
|
}
|
|
975
1019
|
return validateMerchant;
|
|
976
1020
|
}(),
|
|
977
1021
|
onAuthorized: function () {
|
|
978
1022
|
var _onAuthorized = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(_ref4) {
|
|
979
|
-
var token, billingContact, shippingContact, startTime, _yield$executeWithTim, rawResult, timedOut, shouldContinue;
|
|
1023
|
+
var token, billingContact, shippingContact, startTime, _yield$executeWithTim, rawResult, timedOut, isTimeout, shouldContinue;
|
|
980
1024
|
return _regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
981
1025
|
while (1) switch (_context6.prev = _context6.next) {
|
|
982
1026
|
case 0:
|
|
983
1027
|
token = _ref4.token, billingContact = _ref4.billingContact, shippingContact = _ref4.shippingContact;
|
|
984
1028
|
if (!onBeforeConfirm) {
|
|
985
|
-
_context6.next =
|
|
1029
|
+
_context6.next = 19;
|
|
986
1030
|
break;
|
|
987
1031
|
}
|
|
988
1032
|
_context6.prev = 2;
|
|
@@ -996,50 +1040,51 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
996
1040
|
rawResult = _yield$executeWithTim.result;
|
|
997
1041
|
timedOut = _yield$executeWithTim.timedOut;
|
|
998
1042
|
// 双重校验:timedOut(Promise race)+ startTime(实际时间差),与老 ElementController 对齐
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1043
|
+
isTimeout = timedOut || Date.now() - startTime >= BEFORE_CONFIRM_TIMEOUT_MS;
|
|
1044
|
+
shouldContinue = !isTimeout && !!rawResult;
|
|
1045
|
+
if (isTimeout) {
|
|
1046
|
+
_this4.trackError('sdk_before_confirm_timeout', {
|
|
1002
1047
|
d1: 'applePay_chrome_modern'
|
|
1003
1048
|
});
|
|
1004
1049
|
}
|
|
1005
1050
|
if (shouldContinue) {
|
|
1006
|
-
_context6.next =
|
|
1051
|
+
_context6.next = 14;
|
|
1007
1052
|
break;
|
|
1008
1053
|
}
|
|
1009
1054
|
return _context6.abrupt("return", {
|
|
1010
1055
|
success: false,
|
|
1011
|
-
errorCode:
|
|
1056
|
+
errorCode: isTimeout ? MERCHANT_CONFIRM_TIMEOUT_CODE : MERCHANT_CONFIRM_ABORT_CODE
|
|
1012
1057
|
});
|
|
1013
|
-
case
|
|
1014
|
-
_context6.next =
|
|
1058
|
+
case 14:
|
|
1059
|
+
_context6.next = 19;
|
|
1015
1060
|
break;
|
|
1016
|
-
case
|
|
1017
|
-
_context6.prev =
|
|
1061
|
+
case 16:
|
|
1062
|
+
_context6.prev = 16;
|
|
1018
1063
|
_context6.t0 = _context6["catch"](2);
|
|
1019
1064
|
return _context6.abrupt("return", {
|
|
1020
1065
|
success: false,
|
|
1021
|
-
errorCode:
|
|
1066
|
+
errorCode: MERCHANT_CONFIRM_ABORT_CODE
|
|
1022
1067
|
});
|
|
1023
|
-
case
|
|
1068
|
+
case 19:
|
|
1024
1069
|
capturedResult = {
|
|
1025
1070
|
token: token,
|
|
1026
1071
|
billingContact: billingContact,
|
|
1027
1072
|
shippingContact: shippingContact
|
|
1028
1073
|
};
|
|
1029
|
-
trackElement('applepay_authorized', {
|
|
1074
|
+
_this4.trackElement('applepay_authorized', {
|
|
1030
1075
|
d1: token ? 'has_token' : 'no_token'
|
|
1031
1076
|
});
|
|
1032
1077
|
return _context6.abrupt("return", {
|
|
1033
1078
|
success: true,
|
|
1034
1079
|
result: capturedResult
|
|
1035
1080
|
});
|
|
1036
|
-
case
|
|
1081
|
+
case 22:
|
|
1037
1082
|
case "end":
|
|
1038
1083
|
return _context6.stop();
|
|
1039
1084
|
}
|
|
1040
|
-
}, _callee6, null, [[2,
|
|
1085
|
+
}, _callee6, null, [[2, 16]]);
|
|
1041
1086
|
}));
|
|
1042
|
-
function onAuthorized(
|
|
1087
|
+
function onAuthorized(_x14) {
|
|
1043
1088
|
return _onAuthorized.apply(this, arguments);
|
|
1044
1089
|
}
|
|
1045
1090
|
return onAuthorized;
|
|
@@ -1050,7 +1095,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1050
1095
|
_context7.next = 18;
|
|
1051
1096
|
return service.startPay();
|
|
1052
1097
|
case 18:
|
|
1053
|
-
trackElement('applepay_token_success', {
|
|
1098
|
+
this.trackElement('applepay_token_success', {
|
|
1054
1099
|
d1: (_capturedResult = capturedResult) !== null && _capturedResult !== void 0 && _capturedResult.token ? 'has_token' : 'no_token'
|
|
1055
1100
|
});
|
|
1056
1101
|
this.bridge.send(AMSMessageType.GET_APPLE_PAY_TOKEN_REPLY, {
|
|
@@ -1066,11 +1111,11 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1066
1111
|
if ((_context7.t0 === null || _context7.t0 === void 0 ? void 0 : _context7.t0.errorCode) !== 'APPLE_PAY_PAYMENT_SESSION_REQUEST_FAILED') {
|
|
1067
1112
|
errCode = (_context7.t0 === null || _context7.t0 === void 0 ? void 0 : _context7.t0.errorCode) || 'APPLE_PAY_NOT_SUPPORTED'; // 用户主动取消单独标记,便于区分取消与真实失败
|
|
1068
1113
|
if (errCode === 'APPLE_PAY_CANCEL') {
|
|
1069
|
-
trackElement('applepay_cancel', {
|
|
1114
|
+
this.trackElement('applepay_cancel', {
|
|
1070
1115
|
d1: 'user_cancel'
|
|
1071
1116
|
});
|
|
1072
1117
|
} else {
|
|
1073
|
-
trackError('applepay_token_failed', {
|
|
1118
|
+
this.trackError('applepay_token_failed', {
|
|
1074
1119
|
d1: errCode,
|
|
1075
1120
|
d2: (_context7.t0 === null || _context7.t0 === void 0 ? void 0 : _context7.t0.errorMessage) || ''
|
|
1076
1121
|
});
|
|
@@ -1088,7 +1133,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1088
1133
|
}
|
|
1089
1134
|
}, _callee7, this, [[15, 22]]);
|
|
1090
1135
|
}));
|
|
1091
|
-
function handleGetApplePayToken(
|
|
1136
|
+
function handleGetApplePayToken(_x11, _x12) {
|
|
1092
1137
|
return _handleGetApplePayToken.apply(this, arguments);
|
|
1093
1138
|
}
|
|
1094
1139
|
return handleGetApplePayToken;
|
|
@@ -1121,12 +1166,12 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1121
1166
|
// 否则从 paymentMethodDetail.googlePayProps 取(兼容 v1 的数据结构)
|
|
1122
1167
|
var environment = (data === null || data === void 0 ? void 0 : data.environment) || (googlePayProps === null || googlePayProps === void 0 ? void 0 : googlePayProps.environment) || 'TEST';
|
|
1123
1168
|
var paymentRequest = (data === null || data === void 0 ? void 0 : data.paymentRequest) || (googlePayProps === null || googlePayProps === void 0 ? void 0 : googlePayProps.paymentRequest) || {};
|
|
1124
|
-
trackElement('googlepay_token_request', {
|
|
1169
|
+
this.trackElement('googlepay_token_request', {
|
|
1125
1170
|
d1: environment,
|
|
1126
1171
|
d2: paymentRequest ? 'has_payment_request' : 'no_payment_request'
|
|
1127
1172
|
});
|
|
1128
1173
|
if (!paymentRequest || !Object.keys(paymentRequest).length) {
|
|
1129
|
-
trackError('googlepay_token_missing_data', {
|
|
1174
|
+
this.trackError('googlepay_token_missing_data', {
|
|
1130
1175
|
d1: 'MISSING_DATA'
|
|
1131
1176
|
});
|
|
1132
1177
|
this.bridge.send(AMSMessageType.GET_GOOGLE_PAY_TOKEN_REPLY, {
|
|
@@ -1157,7 +1202,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1157
1202
|
};
|
|
1158
1203
|
}).then(function (paymentData) {
|
|
1159
1204
|
if (paymentData) {
|
|
1160
|
-
trackElement('googlepay_token_success', {
|
|
1205
|
+
_this5.trackElement('googlepay_token_success', {
|
|
1161
1206
|
d1: 'has_token'
|
|
1162
1207
|
});
|
|
1163
1208
|
_this5.bridge.send(AMSMessageType.GET_GOOGLE_PAY_TOKEN_REPLY, {
|
|
@@ -1168,11 +1213,11 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1168
1213
|
}).catch(function (err) {
|
|
1169
1214
|
var statusCode = (err === null || err === void 0 ? void 0 : err.statusCode) || 'GOOGLE_PAY_PAYMENT_FAILED';
|
|
1170
1215
|
if (statusCode === 'CANCELED') {
|
|
1171
|
-
trackElement('googlepay_cancel', {
|
|
1216
|
+
_this5.trackElement('googlepay_cancel', {
|
|
1172
1217
|
d1: 'user_cancel'
|
|
1173
1218
|
});
|
|
1174
1219
|
} else {
|
|
1175
|
-
trackError('googlepay_token_failed', {
|
|
1220
|
+
_this5.trackError('googlepay_token_failed', {
|
|
1176
1221
|
d1: statusCode,
|
|
1177
1222
|
d2: (err === null || err === void 0 ? void 0 : err.statusMessage) || ''
|
|
1178
1223
|
});
|
|
@@ -1209,7 +1254,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1209
1254
|
loadAndPay();
|
|
1210
1255
|
};
|
|
1211
1256
|
script.onerror = function () {
|
|
1212
|
-
trackError('googlepay_script_load_failed', {
|
|
1257
|
+
_this5.trackError('googlepay_script_load_failed', {
|
|
1213
1258
|
d1: 'script_error'
|
|
1214
1259
|
});
|
|
1215
1260
|
_this5.bridge.send(AMSMessageType.GET_GOOGLE_PAY_TOKEN_REPLY, {
|
|
@@ -1232,11 +1277,11 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1232
1277
|
value: function handleHandlePayment() {
|
|
1233
1278
|
var sessionData = this.options.sessionData;
|
|
1234
1279
|
var parseData = getMetaData(sessionData);
|
|
1235
|
-
trackElement('handle_payment', {
|
|
1280
|
+
this.trackElement('handle_payment', {
|
|
1236
1281
|
d1: 'skipRender_applepay_publish'
|
|
1237
1282
|
});
|
|
1238
1283
|
if (!parseData) {
|
|
1239
|
-
trackError('handle_payment_meta_failed', {
|
|
1284
|
+
this.trackError('handle_payment_meta_failed', {
|
|
1240
1285
|
d1: 'meta_parse_failed'
|
|
1241
1286
|
});
|
|
1242
1287
|
}
|
|
@@ -1286,8 +1331,9 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1286
1331
|
var rawResult = _ref5.result,
|
|
1287
1332
|
timedOut = _ref5.timedOut;
|
|
1288
1333
|
// 双重校验:timedOut(Promise race)+ startTime(实际时间差),与老 ElementController 对齐
|
|
1289
|
-
var
|
|
1290
|
-
|
|
1334
|
+
var isTimeout = timedOut || Date.now() - startTime >= BEFORE_CONFIRM_TIMEOUT_MS;
|
|
1335
|
+
var shouldContinue = !isTimeout && !!rawResult;
|
|
1336
|
+
if (isTimeout) {
|
|
1291
1337
|
logger.logError({
|
|
1292
1338
|
title: 'sdk_before_confirm_timeout'
|
|
1293
1339
|
});
|
|
@@ -1297,10 +1343,12 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1297
1343
|
}, {
|
|
1298
1344
|
shouldContinue: shouldContinue
|
|
1299
1345
|
});
|
|
1300
|
-
_this6.bridge.send(AMSMessageType.BEFORE_CONFIRM_REPLY, {
|
|
1346
|
+
_this6.bridge.send(AMSMessageType.BEFORE_CONFIRM_REPLY, _objectSpread({
|
|
1301
1347
|
success: true,
|
|
1302
1348
|
result: !!shouldContinue
|
|
1303
|
-
}
|
|
1349
|
+
}, isTimeout ? {
|
|
1350
|
+
isTimeout: true
|
|
1351
|
+
} : {}));
|
|
1304
1352
|
}).catch(function (error) {
|
|
1305
1353
|
logger.logError({
|
|
1306
1354
|
title: 'sdk_before_confirm_error'
|
|
@@ -1327,7 +1375,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1327
1375
|
var cancelDestroyCallback = function cancelDestroyCallback() {};
|
|
1328
1376
|
var timer = setTimeout(function () {
|
|
1329
1377
|
cancelDestroyCallback();
|
|
1330
|
-
trackError('ready_handshake_timeout', {
|
|
1378
|
+
_this7.trackError('ready_handshake_timeout', {
|
|
1331
1379
|
d1: String(MOUNT_TIMEOUT)
|
|
1332
1380
|
});
|
|
1333
1381
|
reject({
|
|
@@ -1344,7 +1392,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1344
1392
|
clearTimeout(timer);
|
|
1345
1393
|
cancelDestroyCallback();
|
|
1346
1394
|
if (!((_this7$iframe = _this7.iframe) !== null && _this7$iframe !== void 0 && _this7$iframe.contentWindow)) {
|
|
1347
|
-
trackError('iframe_contentwindow_unavailable', {
|
|
1395
|
+
_this7.trackError('iframe_contentwindow_unavailable', {
|
|
1348
1396
|
d1: 'after_ready_handshake'
|
|
1349
1397
|
});
|
|
1350
1398
|
reject({
|
|
@@ -1354,7 +1402,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1354
1402
|
return;
|
|
1355
1403
|
}
|
|
1356
1404
|
_this7.bridge.setTarget(_this7.iframe.contentWindow);
|
|
1357
|
-
trackHandshake('ready_handshake_received', {
|
|
1405
|
+
_this7.trackHandshake('ready_handshake_received', {
|
|
1358
1406
|
m1: _this7._mountStartTime ? Date.now() - _this7._mountStartTime : 0
|
|
1359
1407
|
});
|
|
1360
1408
|
resolve();
|
|
@@ -1369,7 +1417,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1369
1417
|
key: "sendHandshake",
|
|
1370
1418
|
value: function sendHandshake(setupConfig) {
|
|
1371
1419
|
this.bridge.send(MessageType.HANDSHAKE, setupConfig);
|
|
1372
|
-
trackHandshake('handshake_sent', {
|
|
1420
|
+
this.trackHandshake('handshake_sent', {
|
|
1373
1421
|
d1: (setupConfig === null || setupConfig === void 0 ? void 0 : setupConfig.sdkVersion) || ''
|
|
1374
1422
|
});
|
|
1375
1423
|
}
|
|
@@ -1385,7 +1433,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1385
1433
|
var cancelDestroyCallback = function cancelDestroyCallback() {};
|
|
1386
1434
|
var timer = setTimeout(function () {
|
|
1387
1435
|
cancelDestroyCallback();
|
|
1388
|
-
trackError('handshake_ack_timeout', {
|
|
1436
|
+
_this8.trackError('handshake_ack_timeout', {
|
|
1389
1437
|
d1: String(MOUNT_TIMEOUT)
|
|
1390
1438
|
});
|
|
1391
1439
|
reject({
|
|
@@ -1400,7 +1448,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1400
1448
|
_this8.bridge.once(MessageType.HANDSHAKE_ACK, function () {
|
|
1401
1449
|
clearTimeout(timer);
|
|
1402
1450
|
cancelDestroyCallback();
|
|
1403
|
-
trackHandshake('handshake_ack_received', {
|
|
1451
|
+
_this8.trackHandshake('handshake_ack_received', {
|
|
1404
1452
|
m1: _this8._mountStartTime ? Date.now() - _this8._mountStartTime : 0
|
|
1405
1453
|
});
|
|
1406
1454
|
resolve();
|
|
@@ -1421,14 +1469,14 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1421
1469
|
return _this9.currentPaymentMethodType ? {
|
|
1422
1470
|
d4: _this9.currentPaymentMethodType
|
|
1423
1471
|
} : {};
|
|
1424
|
-
}));
|
|
1472
|
+
}, normalizeApiInput('submitPayment', params), this.merchantId));
|
|
1425
1473
|
case 1:
|
|
1426
1474
|
case "end":
|
|
1427
1475
|
return _context8.stop();
|
|
1428
1476
|
}
|
|
1429
|
-
}, _callee8);
|
|
1477
|
+
}, _callee8, this);
|
|
1430
1478
|
}));
|
|
1431
|
-
function submitPayment(
|
|
1479
|
+
function submitPayment(_x15) {
|
|
1432
1480
|
return _submitPayment.apply(this, arguments);
|
|
1433
1481
|
}
|
|
1434
1482
|
return submitPayment;
|
|
@@ -1438,7 +1486,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1438
1486
|
value: function () {
|
|
1439
1487
|
var _doSubmitPayment = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(params) {
|
|
1440
1488
|
var _this10 = this;
|
|
1441
|
-
var _this$options$loading7, _this$options$loading8, isApplePay, _ref6, onBeforeConfirm, serializableParams, startTime, _yield$executeWithTim2, shouldContinue, timedOut, hasBeforeConfirmForApplePay, hasAmount, hasCurrency, cleanups, _result$error5, resultPromise, result, _this$options$loading9, _this$options$loading10;
|
|
1489
|
+
var _this$options$loading7, _this$options$loading8, isApplePay, _ref6, onBeforeConfirm, serializableParams, startTime, _yield$executeWithTim2, shouldContinue, timedOut, isTimeout, hasBeforeConfirmForApplePay, hasAmount, hasCurrency, cleanups, _result$error5, resultPromise, result, _this$options$loading9, _this$options$loading10;
|
|
1442
1490
|
return _regeneratorRuntime().wrap(function _callee9$(_context9) {
|
|
1443
1491
|
while (1) switch (_context9.prev = _context9.next) {
|
|
1444
1492
|
case 0:
|
|
@@ -1446,7 +1494,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1446
1494
|
_context9.next = 3;
|
|
1447
1495
|
break;
|
|
1448
1496
|
}
|
|
1449
|
-
trackError('submit_not_ready', {
|
|
1497
|
+
this.trackError('submit_not_ready', {
|
|
1450
1498
|
d1: this.status
|
|
1451
1499
|
});
|
|
1452
1500
|
return _context9.abrupt("return", {
|
|
@@ -1461,7 +1509,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1461
1509
|
_context9.next = 6;
|
|
1462
1510
|
break;
|
|
1463
1511
|
}
|
|
1464
|
-
trackError('submit_in_progress', {});
|
|
1512
|
+
this.trackError('submit_in_progress', {});
|
|
1465
1513
|
return _context9.abrupt("return", {
|
|
1466
1514
|
status: 'FAIL',
|
|
1467
1515
|
error: {
|
|
@@ -1475,7 +1523,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1475
1523
|
isApplePay = this.currentPaymentMethodType === 'APPLEPAY'; // 剥除 onBeforeConfirm 函数,避免 postMessage 序列化报错
|
|
1476
1524
|
_ref6 = params || {}, onBeforeConfirm = _ref6.onBeforeConfirm, serializableParams = _objectWithoutProperties(_ref6, _excluded2); // ── 非 Apple Pay:同步执行 onBeforeConfirm(submit 前拦截,对齐老 ElementController) ──
|
|
1477
1525
|
if (!(onBeforeConfirm && !isApplePay)) {
|
|
1478
|
-
_context9.next =
|
|
1526
|
+
_context9.next = 32;
|
|
1479
1527
|
break;
|
|
1480
1528
|
}
|
|
1481
1529
|
logger.logInfo({
|
|
@@ -1494,11 +1542,13 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1494
1542
|
_yield$executeWithTim2 = _context9.sent;
|
|
1495
1543
|
shouldContinue = _yield$executeWithTim2.result;
|
|
1496
1544
|
timedOut = _yield$executeWithTim2.timedOut;
|
|
1497
|
-
|
|
1498
|
-
|
|
1545
|
+
// 双重校验:timedOut(Promise race)+ startTime(实际时间差),防止竞态误判
|
|
1546
|
+
isTimeout = timedOut || Date.now() - startTime >= BEFORE_CONFIRM_TIMEOUT_MS;
|
|
1547
|
+
if (!(isTimeout || !shouldContinue)) {
|
|
1548
|
+
_context9.next = 23;
|
|
1499
1549
|
break;
|
|
1500
1550
|
}
|
|
1501
|
-
if (
|
|
1551
|
+
if (isTimeout) {
|
|
1502
1552
|
logger.logError({
|
|
1503
1553
|
title: 'sdk_before_confirm_timeout'
|
|
1504
1554
|
}, {
|
|
@@ -1516,21 +1566,22 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1516
1566
|
return _context9.abrupt("return", {
|
|
1517
1567
|
status: 'FAIL',
|
|
1518
1568
|
error: {
|
|
1519
|
-
code:
|
|
1520
|
-
message: 'Merchant canceled payment.'
|
|
1569
|
+
code: isTimeout ? MERCHANT_CONFIRM_TIMEOUT_CODE : MERCHANT_CONFIRM_ABORT_CODE,
|
|
1570
|
+
message: isTimeout ? 'Merchant confirmation timed out.' : 'Merchant canceled payment.',
|
|
1571
|
+
needChangeSessionForRetry: false
|
|
1521
1572
|
}
|
|
1522
1573
|
});
|
|
1523
|
-
case
|
|
1574
|
+
case 23:
|
|
1524
1575
|
logger.logInfo({
|
|
1525
1576
|
title: 'sdk_before_confirm_success'
|
|
1526
1577
|
}, {
|
|
1527
1578
|
paymentMethodType: this.currentPaymentMethodType || 'UNKNOWN',
|
|
1528
1579
|
path: 'nonApplePay_sync'
|
|
1529
1580
|
});
|
|
1530
|
-
_context9.next =
|
|
1581
|
+
_context9.next = 30;
|
|
1531
1582
|
break;
|
|
1532
|
-
case
|
|
1533
|
-
_context9.prev =
|
|
1583
|
+
case 26:
|
|
1584
|
+
_context9.prev = 26;
|
|
1534
1585
|
_context9.t0 = _context9["catch"](12);
|
|
1535
1586
|
logger.logError({
|
|
1536
1587
|
title: 'sdk_before_confirm_error'
|
|
@@ -1542,14 +1593,15 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1542
1593
|
return _context9.abrupt("return", {
|
|
1543
1594
|
status: 'FAIL',
|
|
1544
1595
|
error: {
|
|
1545
|
-
code:
|
|
1546
|
-
message: 'Merchant canceled payment.'
|
|
1596
|
+
code: MERCHANT_CONFIRM_ABORT_CODE,
|
|
1597
|
+
message: 'Merchant canceled payment.',
|
|
1598
|
+
needChangeSessionForRetry: false
|
|
1547
1599
|
}
|
|
1548
1600
|
});
|
|
1549
|
-
case
|
|
1550
|
-
_context9.next =
|
|
1601
|
+
case 30:
|
|
1602
|
+
_context9.next = 33;
|
|
1551
1603
|
break;
|
|
1552
|
-
case
|
|
1604
|
+
case 32:
|
|
1553
1605
|
if (!onBeforeConfirm) {
|
|
1554
1606
|
logger.logInfo({
|
|
1555
1607
|
title: 'sdk_before_confirm_skip'
|
|
@@ -1558,7 +1610,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1558
1610
|
path: isApplePay ? 'applePay_eventBridge' : 'nonApplePay_sync'
|
|
1559
1611
|
});
|
|
1560
1612
|
}
|
|
1561
|
-
case
|
|
1613
|
+
case 33:
|
|
1562
1614
|
// Apple Pay: 标记是否有 beforeConfirm,供 SUBMIT 消息的 hasBeforeConfirm 字段使用
|
|
1563
1615
|
hasBeforeConfirmForApplePay = isApplePay && !!onBeforeConfirm; // ── amount/currency 校验 + 缓存(对齐老 ElementController 逻辑) ──
|
|
1564
1616
|
hasAmount = !!(serializableParams !== null && serializableParams !== void 0 && serializableParams.amount);
|
|
@@ -1575,14 +1627,14 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1575
1627
|
this._merchantAmount = hasAmount && hasCurrency ? serializableParams.amount : null;
|
|
1576
1628
|
this._merchantCurrency = hasAmount && hasCurrency ? serializableParams.currency : null;
|
|
1577
1629
|
(_this$options$loading7 = this.options.loading) === null || _this$options$loading7 === void 0 || (_this$options$loading8 = _this$options$loading7.onStartLoading) === null || _this$options$loading8 === void 0 || _this$options$loading8.call(_this$options$loading7);
|
|
1578
|
-
trackElement('submit_start', {
|
|
1630
|
+
this.trackElement('submit_start', {
|
|
1579
1631
|
d1: this.notRedirectAfterComplete ? 'if_required' : 'always'
|
|
1580
1632
|
});
|
|
1581
1633
|
// 收集本轮 once 监听的 cleanup:submitPayment 每次注册四类监听,但一轮只会命中部分,
|
|
1582
1634
|
// 未命中的 once wrapper 绑着旧闭包(旧 onBeforeConfirm / 旧 resolve)会残留并串扰后续提交,
|
|
1583
1635
|
// 在 submit 终态统一释放(二次 off 幂等,已命中的 once 已自行 off)。
|
|
1584
1636
|
cleanups = [];
|
|
1585
|
-
_context9.prev =
|
|
1637
|
+
_context9.prev = 42;
|
|
1586
1638
|
resultPromise = new Promise(function (resolve) {
|
|
1587
1639
|
// 先注册事件监听,再发送 SUBMIT,避免 webapp 快速响应导致消息丢失
|
|
1588
1640
|
// PC 非 Safari:webapp 委托 SDK 拉起 Apple Pay 拿 token
|
|
@@ -1608,45 +1660,45 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1608
1660
|
amount: serializableParams.amount,
|
|
1609
1661
|
currency: serializableParams.currency
|
|
1610
1662
|
} : {}));
|
|
1611
|
-
_context9.next =
|
|
1663
|
+
_context9.next = 47;
|
|
1612
1664
|
return resultPromise;
|
|
1613
|
-
case
|
|
1665
|
+
case 47:
|
|
1614
1666
|
result = _context9.sent;
|
|
1615
|
-
trackElement('submit_reply', {
|
|
1667
|
+
this.trackElement('submit_reply', {
|
|
1616
1668
|
d1: (result === null || result === void 0 ? void 0 : result.status) || '',
|
|
1617
1669
|
d2: (result === null || result === void 0 || (_result$error5 = result.error) === null || _result$error5 === void 0 ? void 0 : _result$error5.code) || ''
|
|
1618
1670
|
});
|
|
1619
1671
|
return _context9.abrupt("return", adaptSubmitResult(result));
|
|
1620
|
-
case
|
|
1621
|
-
_context9.prev =
|
|
1622
|
-
_context9.t1 = _context9["catch"](
|
|
1623
|
-
trackError('submit_error', {
|
|
1672
|
+
case 52:
|
|
1673
|
+
_context9.prev = 52;
|
|
1674
|
+
_context9.t1 = _context9["catch"](42);
|
|
1675
|
+
this.trackError('submit_error', {
|
|
1624
1676
|
d1: (_context9.t1 === null || _context9.t1 === void 0 ? void 0 : _context9.t1.code) || 'UNKNOWN',
|
|
1625
1677
|
d2: (_context9.t1 === null || _context9.t1 === void 0 ? void 0 : _context9.t1.message) || ''
|
|
1626
1678
|
});
|
|
1627
1679
|
throw _context9.t1;
|
|
1628
|
-
case
|
|
1629
|
-
_context9.prev =
|
|
1680
|
+
case 56:
|
|
1681
|
+
_context9.prev = 56;
|
|
1630
1682
|
cleanups.forEach(function (fn) {
|
|
1631
1683
|
try {
|
|
1632
1684
|
fn();
|
|
1633
|
-
} catch (
|
|
1685
|
+
} catch (_unused7) {
|
|
1634
1686
|
/* ignore cleanup error */
|
|
1635
1687
|
}
|
|
1636
1688
|
});
|
|
1637
1689
|
(_this$options$loading9 = this.options.loading) === null || _this$options$loading9 === void 0 || (_this$options$loading10 = _this$options$loading9.onEndLoading) === null || _this$options$loading10 === void 0 || _this$options$loading10.call(_this$options$loading9);
|
|
1638
|
-
return _context9.finish(
|
|
1639
|
-
case
|
|
1640
|
-
_context9.prev =
|
|
1690
|
+
return _context9.finish(56);
|
|
1691
|
+
case 60:
|
|
1692
|
+
_context9.prev = 60;
|
|
1641
1693
|
this.isSubmitting = false;
|
|
1642
|
-
return _context9.finish(
|
|
1643
|
-
case
|
|
1694
|
+
return _context9.finish(60);
|
|
1695
|
+
case 63:
|
|
1644
1696
|
case "end":
|
|
1645
1697
|
return _context9.stop();
|
|
1646
1698
|
}
|
|
1647
|
-
}, _callee9, this, [[7,,
|
|
1699
|
+
}, _callee9, this, [[7,, 60, 63], [12, 26], [42, 52, 56, 60]]);
|
|
1648
1700
|
}));
|
|
1649
|
-
function doSubmitPayment(
|
|
1701
|
+
function doSubmitPayment(_x16) {
|
|
1650
1702
|
return _doSubmitPayment.apply(this, arguments);
|
|
1651
1703
|
}
|
|
1652
1704
|
return doSubmitPayment;
|
|
@@ -1661,12 +1713,12 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1661
1713
|
case 0:
|
|
1662
1714
|
return _context10.abrupt("return", runApi('validateFields', function () {
|
|
1663
1715
|
return _this11.doValidateFields();
|
|
1664
|
-
}));
|
|
1716
|
+
}, undefined, undefined, this.merchantId));
|
|
1665
1717
|
case 1:
|
|
1666
1718
|
case "end":
|
|
1667
1719
|
return _context10.stop();
|
|
1668
1720
|
}
|
|
1669
|
-
}, _callee10);
|
|
1721
|
+
}, _callee10, this);
|
|
1670
1722
|
}));
|
|
1671
1723
|
function validateFields() {
|
|
1672
1724
|
return _validateFields.apply(this, arguments);
|
|
@@ -1685,7 +1737,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1685
1737
|
_context11.next = 3;
|
|
1686
1738
|
break;
|
|
1687
1739
|
}
|
|
1688
|
-
trackError('validate_not_ready', {
|
|
1740
|
+
this.trackError('validate_not_ready', {
|
|
1689
1741
|
d1: this.status
|
|
1690
1742
|
});
|
|
1691
1743
|
return _context11.abrupt("return", {
|
|
@@ -1695,7 +1747,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1695
1747
|
this.send(AMSMessageType.VALIDATE);
|
|
1696
1748
|
return _context11.abrupt("return", new Promise(function (resolve) {
|
|
1697
1749
|
var timer = setTimeout(function () {
|
|
1698
|
-
trackError('validate_fields_timeout', {
|
|
1750
|
+
_this12.trackError('validate_fields_timeout', {
|
|
1699
1751
|
d1: '15000'
|
|
1700
1752
|
});
|
|
1701
1753
|
resolve({
|
|
@@ -1705,7 +1757,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1705
1757
|
_this12.bridge.once(AMSMessageType.VALIDATE_REPLY, function (payload) {
|
|
1706
1758
|
clearTimeout(timer);
|
|
1707
1759
|
var isValid = !!(payload !== null && payload !== void 0 && payload.isValid);
|
|
1708
|
-
trackElement('validate_result', {
|
|
1760
|
+
_this12.trackElement('validate_result', {
|
|
1709
1761
|
d1: isValid ? 'valid' : 'invalid'
|
|
1710
1762
|
});
|
|
1711
1763
|
resolve(payload || {
|
|
@@ -1738,7 +1790,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1738
1790
|
}
|
|
1739
1791
|
}, _callee12);
|
|
1740
1792
|
}));
|
|
1741
|
-
function updatePayment(
|
|
1793
|
+
function updatePayment(_x17) {
|
|
1742
1794
|
return _updatePayment.apply(this, arguments);
|
|
1743
1795
|
}
|
|
1744
1796
|
return updatePayment;
|
|
@@ -1752,7 +1804,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1752
1804
|
key: "destroy",
|
|
1753
1805
|
value: function destroy() {
|
|
1754
1806
|
var _this$iframe;
|
|
1755
|
-
trackElement('destroy', {
|
|
1807
|
+
this.trackElement('destroy', {
|
|
1756
1808
|
d1: this.status
|
|
1757
1809
|
});
|
|
1758
1810
|
if (this.status === 'initialized' || this.status === 'destroyed') {
|
|
@@ -1869,7 +1921,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1869
1921
|
// 清理已存在的 modal
|
|
1870
1922
|
this.handleCloseModal();
|
|
1871
1923
|
var mode = device.isMobile ? 'mobile' : 'desktop';
|
|
1872
|
-
trackElement('open_modal', {
|
|
1924
|
+
this.trackElement('open_modal', {
|
|
1873
1925
|
d1: mode,
|
|
1874
1926
|
d2: (payload === null || payload === void 0 ? void 0 : payload.modalId) || ''
|
|
1875
1927
|
});
|
|
@@ -1881,7 +1933,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1881
1933
|
payload.url = url.toString();
|
|
1882
1934
|
} catch (e) {
|
|
1883
1935
|
var error = new OpenSDKError('Invalid URL', 'INVALID_MODAL_URL', 'APP_RUNTIME');
|
|
1884
|
-
trackError('open_modal_invalid_url', {
|
|
1936
|
+
this.trackError('open_modal_invalid_url', {
|
|
1885
1937
|
d1: 'INVALID_MODAL_URL',
|
|
1886
1938
|
d2: (payload === null || payload === void 0 ? void 0 : payload.url) || ''
|
|
1887
1939
|
});
|
|
@@ -1899,9 +1951,10 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1899
1951
|
// 从 appearance 提取主题信息,组装 loadingConfig(对齐 antom.ts openModal 的处理逻辑)
|
|
1900
1952
|
var appearanceTheme = (payload === null || payload === void 0 || (_payload$appearance = payload.appearance) === null || _payload$appearance === void 0 ? void 0 : _payload$appearance.theme) || 'default';
|
|
1901
1953
|
var themeConfig = (_themeColorMap$appear = themeColorMap[appearanceTheme]) !== null && _themeColorMap$appear !== void 0 ? _themeColorMap$appear : themeColorMap.default;
|
|
1954
|
+
var appearanceVariables = payload === null || payload === void 0 || (_payload$appearance2 = payload.appearance) === null || _payload$appearance2 === void 0 ? void 0 : _payload$appearance2.variables;
|
|
1902
1955
|
var loadingConfig = {
|
|
1903
1956
|
theme: themeConfig.theme,
|
|
1904
|
-
backgroundColor: (
|
|
1957
|
+
backgroundColor: (appearanceVariables === null || appearanceVariables === void 0 ? void 0 : appearanceVariables['color-background-primary']) || (appearanceVariables === null || appearanceVariables === void 0 ? void 0 : appearanceVariables['background-primary']) || themeConfig.backgroundColor
|
|
1905
1958
|
};
|
|
1906
1959
|
|
|
1907
1960
|
// 调用 openModal 工具函数创建 DOM(overlay + modal + iframe + 动画 + close icon + loading)
|
|
@@ -1920,7 +1973,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1920
1973
|
destroy = _openModal.destroy;
|
|
1921
1974
|
var offReady = modalBridge.once(MessageType.MODAL_TRANSFER_READY, function (_payload, _ports, meta) {
|
|
1922
1975
|
if (meta && meta.source !== iframe.contentWindow) return;
|
|
1923
|
-
trackElement('modal_loaded', {
|
|
1976
|
+
_this15.trackElement('modal_loaded', {
|
|
1924
1977
|
d1: payload.url
|
|
1925
1978
|
});
|
|
1926
1979
|
// 确保 target 已设置(如果 load 事件尚未触发,在此设置)
|
|
@@ -1931,7 +1984,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1931
1984
|
if (iframeOrigin && iframeOrigin !== 'null') {
|
|
1932
1985
|
modalBridge.setOrigin(iframeOrigin);
|
|
1933
1986
|
}
|
|
1934
|
-
} catch (
|
|
1987
|
+
} catch (_unused8) {
|
|
1935
1988
|
// URL 解析失败时保持默认 origin
|
|
1936
1989
|
}
|
|
1937
1990
|
// 如果 payload 有 appearance,通过 TRANSFER_MODAL_APPEARANCE 消息发送给 modal
|
|
@@ -1949,7 +2002,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1949
2002
|
this.modalIframe = iframe;
|
|
1950
2003
|
this.modalDestroy = function () {
|
|
1951
2004
|
if (payload.closeConfirm) {
|
|
1952
|
-
trackElement('modal_close_confirm', {
|
|
2005
|
+
_this15.trackElement('modal_close_confirm', {
|
|
1953
2006
|
d1: 'confirm_resolved'
|
|
1954
2007
|
});
|
|
1955
2008
|
}
|
|
@@ -1966,7 +2019,7 @@ export var ModernElementController = /*#__PURE__*/function () {
|
|
|
1966
2019
|
key: "handleCloseModal",
|
|
1967
2020
|
value: function handleCloseModal() {
|
|
1968
2021
|
// 如果有等待中的 closeConfirm,resolve 它
|
|
1969
|
-
trackElement('modal_closed', {
|
|
2022
|
+
this.trackElement('modal_closed', {
|
|
1970
2023
|
d1: this.modalBridge ? 'with_bridge' : 'no_bridge'
|
|
1971
2024
|
});
|
|
1972
2025
|
if (this.modalBridge) {
|