@alipay/ams-checkout 2.0.24 → 2.0.26

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.
@@ -46,24 +46,6 @@ import { v4 as uuid } from 'uuid';
46
46
 
47
47
  var TRACK_CODE_PREFIX = '7982';
48
48
 
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
49
  /**
68
50
  * 优先取 sessionData 解析出的 clientId;
69
51
  * 缺失时从容错角度回落到 extendInfo 中的 merchantId(URL 编码需解码)。
@@ -80,42 +62,22 @@ var resolveMerchantId = function resolveMerchantId(parseData) {
80
62
  return '';
81
63
  }
82
64
  return decodeURIComponent(merchantId);
83
- } catch (_unused2) {
65
+ } catch (_unused) {
84
66
  return '';
85
67
  }
86
68
  };
87
- var trackMount = function trackMount(msg) {
88
- var extra = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
89
- return track('mount', msg, extra);
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] : {};
69
+ // reportApiEnd 留为模块级,merchant_id 改为显式参数(由 runApi 从实例传入),
70
+ // 避免原模块级 _merchantId 的多实例共享竞争。track/trackXxx 已改为实例方法读 this.merchantId。
71
+ var reportApiEnd = function reportApiEnd(api, durationMs, merchantId) {
72
+ var extra = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
111
73
  try {
112
74
  sdkTracker.log(_objectSpread({
113
75
  code: "".concat(TRACK_CODE_PREFIX, "api"),
114
76
  msg: api,
115
77
  m1: durationMs,
116
- merchant_id: _merchantId
78
+ merchant_id: merchantId
117
79
  }, extra));
118
- } catch (_unused3) {
80
+ } catch (_unused2) {
119
81
  /* 埋点失败绝不影响主流程 */
120
82
  }
121
83
  };
@@ -141,10 +103,37 @@ var normalizeApiResult = function normalizeApiResult(api, result) {
141
103
  return acc;
142
104
  };
143
105
 
106
+ // 入参埋点:按 API 入参字段直接落入 d6 起,与 normalizeApiResult(d1-d5)错开。
107
+ // 标量字段记实际值;shippingInfo 含姓名/电话/地址等 PII,仅记存在性。
108
+ // onBeforeConfirm 为函数不可序列化跳过。
109
+ // mount 仅取低基配置字段(type/notRedirectAfterComplete/theme/layout),忽略 appearance.variables 等高基数项。
110
+ var normalizeApiInput = function normalizeApiInput(api, params) {
111
+ var acc = {};
112
+ if (!params) return acc;
113
+ if (api === 'submitPayment') {
114
+ var _params$amount, _params$currency;
115
+ acc.d6 = String(!!params.handleActions);
116
+ acc.d7 = (_params$amount = params.amount) !== null && _params$amount !== void 0 ? _params$amount : '';
117
+ acc.d8 = (_params$currency = params.currency) !== null && _params$currency !== void 0 ? _params$currency : '';
118
+ acc.d9 = params.shippingInfo ? 'true' : 'false';
119
+ } else if (api === 'mount') {
120
+ var _params$renderOptions, _params$renderOptions2, _params$renderOptions3, _params$renderOptions4, _params$renderOptions5, _params$renderOptions6, _params$renderOptions7, _params$sdkSelector, _params$renderOptions8, _appoint$singleOption, _appoint$storedCard;
121
+ 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 : '';
122
+ acc.d7 = String(!!((_params$renderOptions3 = params.renderOptions) !== null && _params$renderOptions3 !== void 0 && _params$renderOptions3.notRedirectAfterComplete));
123
+ 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 : '';
124
+ 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 : '';
125
+ acc.d10 = (_params$sdkSelector = params.sdkSelector) !== null && _params$sdkSelector !== void 0 ? _params$sdkSelector : '';
126
+ var appoint = (_params$renderOptions8 = params.renderOptions) === null || _params$renderOptions8 === void 0 ? void 0 : _params$renderOptions8.merchantAppointParam;
127
+ acc.d11 = (_appoint$singleOption = appoint === null || appoint === void 0 ? void 0 : appoint.singleOption) !== null && _appoint$singleOption !== void 0 ? _appoint$singleOption : '';
128
+ 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) : '';
129
+ }
130
+ return acc;
131
+ };
132
+
144
133
  // 统一包裹:捕获终态(resolve/reject)后上报,原值/原异常原样透传,不影响任何已有逻辑。
145
134
  // extraBuilder 供调用方注入实例上下文字段(如 paymentMethodType),其值覆盖 normalizeApiResult 结果。
146
135
  var runApi = /*#__PURE__*/function () {
147
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(api, fn, extraBuilder) {
136
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(api, fn, extraBuilder, inputExtra, merchantId) {
148
137
  var startedAt, result;
149
138
  return _regeneratorRuntime().wrap(function _callee$(_context) {
150
139
  while (1) switch (_context.prev = _context.next) {
@@ -155,12 +144,12 @@ var runApi = /*#__PURE__*/function () {
155
144
  return fn();
156
145
  case 4:
157
146
  result = _context.sent;
158
- reportApiEnd(api, Date.now() - startedAt, _objectSpread(_objectSpread({}, normalizeApiResult(api, result)), extraBuilder === null || extraBuilder === void 0 ? void 0 : extraBuilder(false)));
147
+ reportApiEnd(api, Date.now() - startedAt, merchantId, _objectSpread(_objectSpread(_objectSpread({}, inputExtra), normalizeApiResult(api, result)), extraBuilder === null || extraBuilder === void 0 ? void 0 : extraBuilder(false)));
159
148
  return _context.abrupt("return", result);
160
149
  case 9:
161
150
  _context.prev = 9;
162
151
  _context.t0 = _context["catch"](1);
163
- reportApiEnd(api, Date.now() - startedAt, _objectSpread({
152
+ reportApiEnd(api, Date.now() - startedAt, merchantId, _objectSpread(_objectSpread({}, inputExtra), {}, {
164
153
  d1: 'error',
165
154
  d2: (_context.t0 === null || _context.t0 === void 0 ? void 0 : _context.t0.code) || 'UNKNOWN'
166
155
  }, extraBuilder === null || extraBuilder === void 0 ? void 0 : extraBuilder(true)));
@@ -171,7 +160,7 @@ var runApi = /*#__PURE__*/function () {
171
160
  }
172
161
  }, _callee, null, [[1, 9]]);
173
162
  }));
174
- return function runApi(_x, _x2, _x3) {
163
+ return function runApi(_x, _x2, _x3, _x4, _x5) {
175
164
  return _ref.apply(this, arguments);
176
165
  };
177
166
  }();
@@ -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
- case 1:
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(_x4, _x5) {
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 (_unused4) {
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(_x6, _x7) {
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: "2.0.24" || '',
585
+ sdkVersion: "2.0.26" || '',
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 = 20;
626
+ _context4.next = 19;
583
627
  return Promise.race([queryPromise, destroyPromise]).finally(cancelDestroyCallback);
584
- case 20:
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: _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: "2.0.24" || '',
683
+ sdkVersion: "2.0.26" || '',
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 30:
693
+ case 29:
650
694
  case "end":
651
695
  return _context4.stop();
652
696
  }
653
697
  }, _callee4, this);
654
698
  }));
655
- function setup(_x8) {
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 = (paymentAmount === null || paymentAmount === void 0 ? void 0 : paymentAmount.formattedValue) || (paymentAmount === null || paymentAmount === void 0 ? void 0 : paymentAmount.value);
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,7 +1013,7 @@ export var ModernElementController = /*#__PURE__*/function () {
969
1013
  }
970
1014
  }, _callee5);
971
1015
  }));
972
- function validateMerchant(_x11) {
1016
+ function validateMerchant(_x13) {
973
1017
  return _validateMerchant.apply(this, arguments);
974
1018
  }
975
1019
  return validateMerchant;
@@ -998,7 +1042,7 @@ export var ModernElementController = /*#__PURE__*/function () {
998
1042
  // 双重校验:timedOut(Promise race)+ startTime(实际时间差),与老 ElementController 对齐
999
1043
  shouldContinue = !timedOut && !!rawResult && Date.now() - startTime < BEFORE_CONFIRM_TIMEOUT_MS;
1000
1044
  if (timedOut || Date.now() - startTime >= BEFORE_CONFIRM_TIMEOUT_MS) {
1001
- trackError('sdk_before_confirm_timeout', {
1045
+ _this4.trackError('sdk_before_confirm_timeout', {
1002
1046
  d1: 'applePay_chrome_modern'
1003
1047
  });
1004
1048
  }
@@ -1026,7 +1070,7 @@ export var ModernElementController = /*#__PURE__*/function () {
1026
1070
  billingContact: billingContact,
1027
1071
  shippingContact: shippingContact
1028
1072
  };
1029
- trackElement('applepay_authorized', {
1073
+ _this4.trackElement('applepay_authorized', {
1030
1074
  d1: token ? 'has_token' : 'no_token'
1031
1075
  });
1032
1076
  return _context6.abrupt("return", {
@@ -1039,7 +1083,7 @@ export var ModernElementController = /*#__PURE__*/function () {
1039
1083
  }
1040
1084
  }, _callee6, null, [[2, 15]]);
1041
1085
  }));
1042
- function onAuthorized(_x12) {
1086
+ function onAuthorized(_x14) {
1043
1087
  return _onAuthorized.apply(this, arguments);
1044
1088
  }
1045
1089
  return onAuthorized;
@@ -1050,7 +1094,7 @@ export var ModernElementController = /*#__PURE__*/function () {
1050
1094
  _context7.next = 18;
1051
1095
  return service.startPay();
1052
1096
  case 18:
1053
- trackElement('applepay_token_success', {
1097
+ this.trackElement('applepay_token_success', {
1054
1098
  d1: (_capturedResult = capturedResult) !== null && _capturedResult !== void 0 && _capturedResult.token ? 'has_token' : 'no_token'
1055
1099
  });
1056
1100
  this.bridge.send(AMSMessageType.GET_APPLE_PAY_TOKEN_REPLY, {
@@ -1066,11 +1110,11 @@ export var ModernElementController = /*#__PURE__*/function () {
1066
1110
  if ((_context7.t0 === null || _context7.t0 === void 0 ? void 0 : _context7.t0.errorCode) !== 'APPLE_PAY_PAYMENT_SESSION_REQUEST_FAILED') {
1067
1111
  errCode = (_context7.t0 === null || _context7.t0 === void 0 ? void 0 : _context7.t0.errorCode) || 'APPLE_PAY_NOT_SUPPORTED'; // 用户主动取消单独标记,便于区分取消与真实失败
1068
1112
  if (errCode === 'APPLE_PAY_CANCEL') {
1069
- trackElement('applepay_cancel', {
1113
+ this.trackElement('applepay_cancel', {
1070
1114
  d1: 'user_cancel'
1071
1115
  });
1072
1116
  } else {
1073
- trackError('applepay_token_failed', {
1117
+ this.trackError('applepay_token_failed', {
1074
1118
  d1: errCode,
1075
1119
  d2: (_context7.t0 === null || _context7.t0 === void 0 ? void 0 : _context7.t0.errorMessage) || ''
1076
1120
  });
@@ -1088,7 +1132,7 @@ export var ModernElementController = /*#__PURE__*/function () {
1088
1132
  }
1089
1133
  }, _callee7, this, [[15, 22]]);
1090
1134
  }));
1091
- function handleGetApplePayToken(_x9, _x10) {
1135
+ function handleGetApplePayToken(_x11, _x12) {
1092
1136
  return _handleGetApplePayToken.apply(this, arguments);
1093
1137
  }
1094
1138
  return handleGetApplePayToken;
@@ -1121,12 +1165,12 @@ export var ModernElementController = /*#__PURE__*/function () {
1121
1165
  // 否则从 paymentMethodDetail.googlePayProps 取(兼容 v1 的数据结构)
1122
1166
  var environment = (data === null || data === void 0 ? void 0 : data.environment) || (googlePayProps === null || googlePayProps === void 0 ? void 0 : googlePayProps.environment) || 'TEST';
1123
1167
  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', {
1168
+ this.trackElement('googlepay_token_request', {
1125
1169
  d1: environment,
1126
1170
  d2: paymentRequest ? 'has_payment_request' : 'no_payment_request'
1127
1171
  });
1128
1172
  if (!paymentRequest || !Object.keys(paymentRequest).length) {
1129
- trackError('googlepay_token_missing_data', {
1173
+ this.trackError('googlepay_token_missing_data', {
1130
1174
  d1: 'MISSING_DATA'
1131
1175
  });
1132
1176
  this.bridge.send(AMSMessageType.GET_GOOGLE_PAY_TOKEN_REPLY, {
@@ -1157,7 +1201,7 @@ export var ModernElementController = /*#__PURE__*/function () {
1157
1201
  };
1158
1202
  }).then(function (paymentData) {
1159
1203
  if (paymentData) {
1160
- trackElement('googlepay_token_success', {
1204
+ _this5.trackElement('googlepay_token_success', {
1161
1205
  d1: 'has_token'
1162
1206
  });
1163
1207
  _this5.bridge.send(AMSMessageType.GET_GOOGLE_PAY_TOKEN_REPLY, {
@@ -1168,11 +1212,11 @@ export var ModernElementController = /*#__PURE__*/function () {
1168
1212
  }).catch(function (err) {
1169
1213
  var statusCode = (err === null || err === void 0 ? void 0 : err.statusCode) || 'GOOGLE_PAY_PAYMENT_FAILED';
1170
1214
  if (statusCode === 'CANCELED') {
1171
- trackElement('googlepay_cancel', {
1215
+ _this5.trackElement('googlepay_cancel', {
1172
1216
  d1: 'user_cancel'
1173
1217
  });
1174
1218
  } else {
1175
- trackError('googlepay_token_failed', {
1219
+ _this5.trackError('googlepay_token_failed', {
1176
1220
  d1: statusCode,
1177
1221
  d2: (err === null || err === void 0 ? void 0 : err.statusMessage) || ''
1178
1222
  });
@@ -1209,7 +1253,7 @@ export var ModernElementController = /*#__PURE__*/function () {
1209
1253
  loadAndPay();
1210
1254
  };
1211
1255
  script.onerror = function () {
1212
- trackError('googlepay_script_load_failed', {
1256
+ _this5.trackError('googlepay_script_load_failed', {
1213
1257
  d1: 'script_error'
1214
1258
  });
1215
1259
  _this5.bridge.send(AMSMessageType.GET_GOOGLE_PAY_TOKEN_REPLY, {
@@ -1232,11 +1276,11 @@ export var ModernElementController = /*#__PURE__*/function () {
1232
1276
  value: function handleHandlePayment() {
1233
1277
  var sessionData = this.options.sessionData;
1234
1278
  var parseData = getMetaData(sessionData);
1235
- trackElement('handle_payment', {
1279
+ this.trackElement('handle_payment', {
1236
1280
  d1: 'skipRender_applepay_publish'
1237
1281
  });
1238
1282
  if (!parseData) {
1239
- trackError('handle_payment_meta_failed', {
1283
+ this.trackError('handle_payment_meta_failed', {
1240
1284
  d1: 'meta_parse_failed'
1241
1285
  });
1242
1286
  }
@@ -1327,7 +1371,7 @@ export var ModernElementController = /*#__PURE__*/function () {
1327
1371
  var cancelDestroyCallback = function cancelDestroyCallback() {};
1328
1372
  var timer = setTimeout(function () {
1329
1373
  cancelDestroyCallback();
1330
- trackError('ready_handshake_timeout', {
1374
+ _this7.trackError('ready_handshake_timeout', {
1331
1375
  d1: String(MOUNT_TIMEOUT)
1332
1376
  });
1333
1377
  reject({
@@ -1344,7 +1388,7 @@ export var ModernElementController = /*#__PURE__*/function () {
1344
1388
  clearTimeout(timer);
1345
1389
  cancelDestroyCallback();
1346
1390
  if (!((_this7$iframe = _this7.iframe) !== null && _this7$iframe !== void 0 && _this7$iframe.contentWindow)) {
1347
- trackError('iframe_contentwindow_unavailable', {
1391
+ _this7.trackError('iframe_contentwindow_unavailable', {
1348
1392
  d1: 'after_ready_handshake'
1349
1393
  });
1350
1394
  reject({
@@ -1354,7 +1398,7 @@ export var ModernElementController = /*#__PURE__*/function () {
1354
1398
  return;
1355
1399
  }
1356
1400
  _this7.bridge.setTarget(_this7.iframe.contentWindow);
1357
- trackHandshake('ready_handshake_received', {
1401
+ _this7.trackHandshake('ready_handshake_received', {
1358
1402
  m1: _this7._mountStartTime ? Date.now() - _this7._mountStartTime : 0
1359
1403
  });
1360
1404
  resolve();
@@ -1369,7 +1413,7 @@ export var ModernElementController = /*#__PURE__*/function () {
1369
1413
  key: "sendHandshake",
1370
1414
  value: function sendHandshake(setupConfig) {
1371
1415
  this.bridge.send(MessageType.HANDSHAKE, setupConfig);
1372
- trackHandshake('handshake_sent', {
1416
+ this.trackHandshake('handshake_sent', {
1373
1417
  d1: (setupConfig === null || setupConfig === void 0 ? void 0 : setupConfig.sdkVersion) || ''
1374
1418
  });
1375
1419
  }
@@ -1385,7 +1429,7 @@ export var ModernElementController = /*#__PURE__*/function () {
1385
1429
  var cancelDestroyCallback = function cancelDestroyCallback() {};
1386
1430
  var timer = setTimeout(function () {
1387
1431
  cancelDestroyCallback();
1388
- trackError('handshake_ack_timeout', {
1432
+ _this8.trackError('handshake_ack_timeout', {
1389
1433
  d1: String(MOUNT_TIMEOUT)
1390
1434
  });
1391
1435
  reject({
@@ -1400,7 +1444,7 @@ export var ModernElementController = /*#__PURE__*/function () {
1400
1444
  _this8.bridge.once(MessageType.HANDSHAKE_ACK, function () {
1401
1445
  clearTimeout(timer);
1402
1446
  cancelDestroyCallback();
1403
- trackHandshake('handshake_ack_received', {
1447
+ _this8.trackHandshake('handshake_ack_received', {
1404
1448
  m1: _this8._mountStartTime ? Date.now() - _this8._mountStartTime : 0
1405
1449
  });
1406
1450
  resolve();
@@ -1421,14 +1465,14 @@ export var ModernElementController = /*#__PURE__*/function () {
1421
1465
  return _this9.currentPaymentMethodType ? {
1422
1466
  d4: _this9.currentPaymentMethodType
1423
1467
  } : {};
1424
- }));
1468
+ }, normalizeApiInput('submitPayment', params), this.merchantId));
1425
1469
  case 1:
1426
1470
  case "end":
1427
1471
  return _context8.stop();
1428
1472
  }
1429
- }, _callee8);
1473
+ }, _callee8, this);
1430
1474
  }));
1431
- function submitPayment(_x13) {
1475
+ function submitPayment(_x15) {
1432
1476
  return _submitPayment.apply(this, arguments);
1433
1477
  }
1434
1478
  return submitPayment;
@@ -1446,7 +1490,7 @@ export var ModernElementController = /*#__PURE__*/function () {
1446
1490
  _context9.next = 3;
1447
1491
  break;
1448
1492
  }
1449
- trackError('submit_not_ready', {
1493
+ this.trackError('submit_not_ready', {
1450
1494
  d1: this.status
1451
1495
  });
1452
1496
  return _context9.abrupt("return", {
@@ -1461,7 +1505,7 @@ export var ModernElementController = /*#__PURE__*/function () {
1461
1505
  _context9.next = 6;
1462
1506
  break;
1463
1507
  }
1464
- trackError('submit_in_progress', {});
1508
+ this.trackError('submit_in_progress', {});
1465
1509
  return _context9.abrupt("return", {
1466
1510
  status: 'FAIL',
1467
1511
  error: {
@@ -1575,7 +1619,7 @@ export var ModernElementController = /*#__PURE__*/function () {
1575
1619
  this._merchantAmount = hasAmount && hasCurrency ? serializableParams.amount : null;
1576
1620
  this._merchantCurrency = hasAmount && hasCurrency ? serializableParams.currency : null;
1577
1621
  (_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', {
1622
+ this.trackElement('submit_start', {
1579
1623
  d1: this.notRedirectAfterComplete ? 'if_required' : 'always'
1580
1624
  });
1581
1625
  // 收集本轮 once 监听的 cleanup:submitPayment 每次注册四类监听,但一轮只会命中部分,
@@ -1612,7 +1656,7 @@ export var ModernElementController = /*#__PURE__*/function () {
1612
1656
  return resultPromise;
1613
1657
  case 46:
1614
1658
  result = _context9.sent;
1615
- trackElement('submit_reply', {
1659
+ this.trackElement('submit_reply', {
1616
1660
  d1: (result === null || result === void 0 ? void 0 : result.status) || '',
1617
1661
  d2: (result === null || result === void 0 || (_result$error5 = result.error) === null || _result$error5 === void 0 ? void 0 : _result$error5.code) || ''
1618
1662
  });
@@ -1620,7 +1664,7 @@ export var ModernElementController = /*#__PURE__*/function () {
1620
1664
  case 51:
1621
1665
  _context9.prev = 51;
1622
1666
  _context9.t1 = _context9["catch"](41);
1623
- trackError('submit_error', {
1667
+ this.trackError('submit_error', {
1624
1668
  d1: (_context9.t1 === null || _context9.t1 === void 0 ? void 0 : _context9.t1.code) || 'UNKNOWN',
1625
1669
  d2: (_context9.t1 === null || _context9.t1 === void 0 ? void 0 : _context9.t1.message) || ''
1626
1670
  });
@@ -1630,7 +1674,7 @@ export var ModernElementController = /*#__PURE__*/function () {
1630
1674
  cleanups.forEach(function (fn) {
1631
1675
  try {
1632
1676
  fn();
1633
- } catch (_unused6) {
1677
+ } catch (_unused7) {
1634
1678
  /* ignore cleanup error */
1635
1679
  }
1636
1680
  });
@@ -1646,7 +1690,7 @@ export var ModernElementController = /*#__PURE__*/function () {
1646
1690
  }
1647
1691
  }, _callee9, this, [[7,, 59, 62], [12, 25], [41, 51, 55, 59]]);
1648
1692
  }));
1649
- function doSubmitPayment(_x14) {
1693
+ function doSubmitPayment(_x16) {
1650
1694
  return _doSubmitPayment.apply(this, arguments);
1651
1695
  }
1652
1696
  return doSubmitPayment;
@@ -1661,12 +1705,12 @@ export var ModernElementController = /*#__PURE__*/function () {
1661
1705
  case 0:
1662
1706
  return _context10.abrupt("return", runApi('validateFields', function () {
1663
1707
  return _this11.doValidateFields();
1664
- }));
1708
+ }, undefined, undefined, this.merchantId));
1665
1709
  case 1:
1666
1710
  case "end":
1667
1711
  return _context10.stop();
1668
1712
  }
1669
- }, _callee10);
1713
+ }, _callee10, this);
1670
1714
  }));
1671
1715
  function validateFields() {
1672
1716
  return _validateFields.apply(this, arguments);
@@ -1685,7 +1729,7 @@ export var ModernElementController = /*#__PURE__*/function () {
1685
1729
  _context11.next = 3;
1686
1730
  break;
1687
1731
  }
1688
- trackError('validate_not_ready', {
1732
+ this.trackError('validate_not_ready', {
1689
1733
  d1: this.status
1690
1734
  });
1691
1735
  return _context11.abrupt("return", {
@@ -1695,7 +1739,7 @@ export var ModernElementController = /*#__PURE__*/function () {
1695
1739
  this.send(AMSMessageType.VALIDATE);
1696
1740
  return _context11.abrupt("return", new Promise(function (resolve) {
1697
1741
  var timer = setTimeout(function () {
1698
- trackError('validate_fields_timeout', {
1742
+ _this12.trackError('validate_fields_timeout', {
1699
1743
  d1: '15000'
1700
1744
  });
1701
1745
  resolve({
@@ -1705,7 +1749,7 @@ export var ModernElementController = /*#__PURE__*/function () {
1705
1749
  _this12.bridge.once(AMSMessageType.VALIDATE_REPLY, function (payload) {
1706
1750
  clearTimeout(timer);
1707
1751
  var isValid = !!(payload !== null && payload !== void 0 && payload.isValid);
1708
- trackElement('validate_result', {
1752
+ _this12.trackElement('validate_result', {
1709
1753
  d1: isValid ? 'valid' : 'invalid'
1710
1754
  });
1711
1755
  resolve(payload || {
@@ -1738,7 +1782,7 @@ export var ModernElementController = /*#__PURE__*/function () {
1738
1782
  }
1739
1783
  }, _callee12);
1740
1784
  }));
1741
- function updatePayment(_x15) {
1785
+ function updatePayment(_x17) {
1742
1786
  return _updatePayment.apply(this, arguments);
1743
1787
  }
1744
1788
  return updatePayment;
@@ -1752,7 +1796,7 @@ export var ModernElementController = /*#__PURE__*/function () {
1752
1796
  key: "destroy",
1753
1797
  value: function destroy() {
1754
1798
  var _this$iframe;
1755
- trackElement('destroy', {
1799
+ this.trackElement('destroy', {
1756
1800
  d1: this.status
1757
1801
  });
1758
1802
  if (this.status === 'initialized' || this.status === 'destroyed') {
@@ -1869,7 +1913,7 @@ export var ModernElementController = /*#__PURE__*/function () {
1869
1913
  // 清理已存在的 modal
1870
1914
  this.handleCloseModal();
1871
1915
  var mode = device.isMobile ? 'mobile' : 'desktop';
1872
- trackElement('open_modal', {
1916
+ this.trackElement('open_modal', {
1873
1917
  d1: mode,
1874
1918
  d2: (payload === null || payload === void 0 ? void 0 : payload.modalId) || ''
1875
1919
  });
@@ -1881,7 +1925,7 @@ export var ModernElementController = /*#__PURE__*/function () {
1881
1925
  payload.url = url.toString();
1882
1926
  } catch (e) {
1883
1927
  var error = new OpenSDKError('Invalid URL', 'INVALID_MODAL_URL', 'APP_RUNTIME');
1884
- trackError('open_modal_invalid_url', {
1928
+ this.trackError('open_modal_invalid_url', {
1885
1929
  d1: 'INVALID_MODAL_URL',
1886
1930
  d2: (payload === null || payload === void 0 ? void 0 : payload.url) || ''
1887
1931
  });
@@ -1920,7 +1964,7 @@ export var ModernElementController = /*#__PURE__*/function () {
1920
1964
  destroy = _openModal.destroy;
1921
1965
  var offReady = modalBridge.once(MessageType.MODAL_TRANSFER_READY, function (_payload, _ports, meta) {
1922
1966
  if (meta && meta.source !== iframe.contentWindow) return;
1923
- trackElement('modal_loaded', {
1967
+ _this15.trackElement('modal_loaded', {
1924
1968
  d1: payload.url
1925
1969
  });
1926
1970
  // 确保 target 已设置(如果 load 事件尚未触发,在此设置)
@@ -1931,7 +1975,7 @@ export var ModernElementController = /*#__PURE__*/function () {
1931
1975
  if (iframeOrigin && iframeOrigin !== 'null') {
1932
1976
  modalBridge.setOrigin(iframeOrigin);
1933
1977
  }
1934
- } catch (_unused7) {
1978
+ } catch (_unused8) {
1935
1979
  // URL 解析失败时保持默认 origin
1936
1980
  }
1937
1981
  // 如果 payload 有 appearance,通过 TRANSFER_MODAL_APPEARANCE 消息发送给 modal
@@ -1949,7 +1993,7 @@ export var ModernElementController = /*#__PURE__*/function () {
1949
1993
  this.modalIframe = iframe;
1950
1994
  this.modalDestroy = function () {
1951
1995
  if (payload.closeConfirm) {
1952
- trackElement('modal_close_confirm', {
1996
+ _this15.trackElement('modal_close_confirm', {
1953
1997
  d1: 'confirm_resolved'
1954
1998
  });
1955
1999
  }
@@ -1966,7 +2010,7 @@ export var ModernElementController = /*#__PURE__*/function () {
1966
2010
  key: "handleCloseModal",
1967
2011
  value: function handleCloseModal() {
1968
2012
  // 如果有等待中的 closeConfirm,resolve 它
1969
- trackElement('modal_closed', {
2013
+ this.trackElement('modal_closed', {
1970
2014
  d1: this.modalBridge ? 'with_bridge' : 'no_bridge'
1971
2015
  });
1972
2016
  if (this.modalBridge) {