@alipay/ams-checkout 2.0.28 → 2.0.30

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.
Files changed (180) hide show
  1. package/ams-checkout.js +3 -3
  2. package/dist/ams-checkout.min.js +1 -1
  3. package/esm/config/index.js +1 -1
  4. package/esm/core/component/element/elementProcessor/convertPaymentMethods.d.ts +1 -0
  5. package/esm/core/component/element/elementProcessor/convertPaymentMethods.js +4 -2
  6. package/esm/core/component/element/modernElementController/index.d.ts +4 -1
  7. package/esm/core/component/element/modernElementController/index.js +184 -132
  8. package/esm/core/component/element/type.d.ts +4 -0
  9. package/esm/modern/component/channel.d.ts +21 -0
  10. package/esm/modern/component/component.inline.style.d.ts +10 -0
  11. package/esm/modern/component/component.popup.style.d.ts +26 -0
  12. package/esm/modern/component/popupWindow.style.d.ts +27 -0
  13. package/esm/modern/config/index.d.ts +23 -0
  14. package/esm/modern/config/request.d.ts +21 -0
  15. package/esm/modern/constant/auto-debit.d.ts +12 -0
  16. package/esm/modern/constant/easysafepay.d.ts +16 -0
  17. package/esm/modern/constant/element.d.ts +27 -0
  18. package/esm/modern/constant/index.d.ts +331 -0
  19. package/esm/modern/core/bus/ability/callback.d.ts +9 -0
  20. package/esm/modern/core/bus/ability/security.d.ts +10 -0
  21. package/esm/modern/core/bus/ability/tracker.d.ts +9 -0
  22. package/esm/modern/core/bus/index.d.ts +125 -0
  23. package/esm/modern/core/bus/interface.d.ts +36 -0
  24. package/esm/modern/core/component/address.d.ts +8 -0
  25. package/esm/modern/core/component/appPreloadProcessing.d.ts +1 -0
  26. package/esm/modern/core/component/ckp/index.d.ts +29 -0
  27. package/esm/modern/core/component/element/EventCenter/index.d.ts +41 -0
  28. package/esm/modern/core/component/element/config.d.ts +10 -0
  29. package/esm/modern/core/component/element/elementContainerService/containerService.d.ts +34 -0
  30. package/esm/modern/core/component/element/elementContainerService/index.d.ts +20 -0
  31. package/esm/modern/core/component/element/elementController/index.d.ts +54 -0
  32. package/esm/modern/core/component/element/elementProcessor/addressProcessor.d.ts +20 -0
  33. package/esm/modern/core/component/element/elementProcessor/authProcessor.d.ts +20 -0
  34. package/esm/modern/core/component/element/elementProcessor/baseElementProcessor.d.ts +42 -0
  35. package/esm/modern/core/component/element/elementProcessor/convertPaymentMethods.d.ts +23 -0
  36. package/esm/modern/core/component/element/elementProcessor/paymentProcessor.d.ts +37 -0
  37. package/esm/modern/core/component/element/index.d.ts +17 -0
  38. package/esm/modern/core/component/element/mock.d.ts +10 -0
  39. package/esm/modern/core/component/element/modernElementController/adapter.d.ts +19 -0
  40. package/esm/modern/core/component/element/modernElementController/index.d.ts +172 -0
  41. package/esm/modern/core/component/element/type.d.ts +590 -0
  42. package/esm/modern/core/component/element/util.d.ts +93 -0
  43. package/esm/modern/core/component/index.d.ts +58 -0
  44. package/esm/modern/core/instance/index.d.ts +97 -0
  45. package/esm/modern/core/utils/connectConfig.d.ts +11 -0
  46. package/esm/modern/foundation/core/index.d.ts +36 -0
  47. package/esm/modern/foundation/index.d.ts +93 -0
  48. package/esm/modern/foundation/product-processor/autoDebit/deps.d.ts +14 -0
  49. package/esm/modern/foundation/product-processor/autoDebit/index.d.ts +48 -0
  50. package/esm/modern/foundation/product-processor/easysafepay/deps.d.ts +20 -0
  51. package/esm/modern/foundation/product-processor/easysafepay/index.d.ts +29 -0
  52. package/esm/modern/foundation/product-processor/element/index.d.ts +7 -0
  53. package/esm/modern/foundation/service/api-bus/ability/globalData.d.ts +10 -0
  54. package/esm/modern/foundation/service/api-bus/ability/request.d.ts +10 -0
  55. package/esm/modern/foundation/service/api-bus/ability/security.d.ts +12 -0
  56. package/esm/modern/foundation/service/api-bus/ability/tracker.d.ts +9 -0
  57. package/esm/modern/foundation/service/api-bus/busManager.d.ts +127 -0
  58. package/esm/modern/foundation/service/api-bus/index.d.ts +20 -0
  59. package/esm/modern/foundation/service/api-bus/interface.d.ts +48 -0
  60. package/esm/modern/foundation/service/container/index.d.ts +42 -0
  61. package/esm/modern/foundation/service/container/popup.d.ts +31 -0
  62. package/esm/modern/foundation/service/container/utils.d.ts +7 -0
  63. package/esm/modern/foundation/service/event-center.d.ts +82 -0
  64. package/esm/modern/foundation/service/global-data/index.d.ts +11 -0
  65. package/esm/modern/foundation/service/index.d.ts +19 -0
  66. package/esm/modern/foundation/service/log/index.d.ts +44 -0
  67. package/esm/modern/foundation/service/log/keys.d.ts +13 -0
  68. package/esm/modern/foundation/service/log/processor.d.ts +9 -0
  69. package/esm/modern/foundation/service/log/types.d.ts +33 -0
  70. package/esm/modern/foundation/service/requester/deps.d.ts +17 -0
  71. package/esm/modern/foundation/service/requester/requester.d.ts +22 -0
  72. package/esm/modern/foundation/service/security/index.d.ts +33 -0
  73. package/esm/modern/foundation/service/security/security.d.ts +54 -0
  74. package/esm/modern/foundation/utils/gray_scale_utils.d.ts +7 -0
  75. package/esm/modern/foundation/utils/payment_context_utils.d.ts +13 -0
  76. package/esm/modern/foundation/utils/payment_product_utils.d.ts +13 -0
  77. package/esm/modern/foundation/utils/preload_helper.d.ts +24 -0
  78. package/esm/modern/foundation/utils/redirect_utils.d.ts +11 -0
  79. package/esm/modern/foundation/utils/system_events.d.ts +4 -0
  80. package/esm/modern/foundation/utils/web_app_url_utils.d.ts +114 -0
  81. package/esm/modern/index.js +1 -1
  82. package/esm/modern/loadAntomTracker.d.ts +7 -0
  83. package/esm/modern/loadAntomTracker.js +64 -0
  84. package/esm/modern/loader/constant.d.ts +36 -0
  85. package/esm/modern/loader/utils/proxyPerformance.d.ts +20 -0
  86. package/esm/modern/main.d.ts +54 -0
  87. package/esm/modern/{index.d.ts → modern/index.d.ts} +1 -1
  88. package/esm/modern/modern/loadAntomTracker.d.ts +7 -0
  89. package/esm/modern/modern/preload/antomManifestAdapter.d.ts +11 -0
  90. package/esm/modern/modern/preload/config.d.ts +10 -0
  91. package/esm/modern/modern/preload/gatewayPreconnection.d.ts +53 -0
  92. package/esm/modern/modern/preload/preloadAntomElements.d.ts +12 -0
  93. package/esm/modern/modern/preload/startAntomPreload.d.ts +2 -0
  94. package/esm/modern/modern/sdk/applepay-core/ApplePayHostService.d.ts +102 -0
  95. package/esm/modern/modern/sdk/elements/CVVElement.d.ts +144 -0
  96. package/esm/modern/modern/sdk/elements/PaymentElement.d.ts +204 -0
  97. package/esm/modern/modern/sdk/elements/appearanceRules.d.ts +59 -0
  98. package/esm/modern/modern/sdk/elements/appearanceRulesDefaults.d.ts +2 -0
  99. package/esm/modern/modern/sdk/eventsMap.d.ts +135 -0
  100. package/esm/modern/modern/sdk/oneapi/iexpfront/PaymentSessionService.d.ts +69 -0
  101. package/esm/modern/modern/sdk/oneapi/iexpfront/definitions.d.ts +5346 -0
  102. package/esm/modern/modern/sdk/oneapi/iexpfront/preConnection.d.ts +6 -0
  103. package/esm/modern/modern/sdk/stageName.d.ts +3 -0
  104. package/esm/modern/modern/sdk/tools/awaitWrap.d.ts +14 -0
  105. package/esm/modern/modern/sdk/tools/buildPageUrl.d.ts +4 -0
  106. package/esm/modern/modern/sdk/tools/checkSessionData.d.ts +1 -0
  107. package/esm/modern/modern/sdk/tools/expressElement/applePay.d.ts +9 -0
  108. package/esm/modern/modern/sdk/tools/expressElement/applePayHostToken.d.ts +32 -0
  109. package/esm/modern/modern/sdk/tools/expressElement/types.d.ts +277 -0
  110. package/esm/modern/modern/sdk/tools/getDevReqConfig.d.ts +2 -0
  111. package/esm/modern/modern/sdk/tools/getLocaleFromRenderData.d.ts +6 -0
  112. package/esm/modern/modern/sdk/tools/getMetaData.d.ts +126 -0
  113. package/esm/modern/modern/sdk/tools/modalMessageMonitor.d.ts +41 -0
  114. package/esm/modern/modern/sdk/tools/openModal.d.ts +20 -0
  115. package/esm/modern/modern/sdk/tools/paymentElement/applePayHostToken.d.ts +38 -0
  116. package/esm/modern/modern/sdk/tools/paymentElement/googlePayHostToken.d.ts +38 -0
  117. package/esm/modern/modern/sdk/tools/paymentElement/tracker.d.ts +16 -0
  118. package/esm/modern/modern/sdk/tools/paymentElement/walletHostListeners.d.ts +19 -0
  119. package/esm/modern/modern/sdk/tools/preloadTracking.d.ts +5 -0
  120. package/esm/modern/modern/sdk/tools/showToast.d.ts +33 -0
  121. package/esm/modern/modern/sdk/tools/validatePaymentAmount.d.ts +19 -0
  122. package/esm/modern/modern/sdk/tracking/elementTracker.d.ts +65 -0
  123. package/esm/modern/modern/sdk/types.d.ts +310 -0
  124. package/esm/modern/modern/tools.d.ts +26 -0
  125. package/esm/modern/plugin/applepay/component.d.ts +50 -0
  126. package/esm/modern/plugin/applepay/index.d.ts +17 -0
  127. package/esm/modern/plugin/applepay/interface.d.ts +161 -0
  128. package/esm/modern/plugin/applepay/service.d.ts +54 -0
  129. package/esm/modern/plugin/component/cashierApp.d.ts +38 -0
  130. package/esm/modern/plugin/component/channel.d.ts +73 -0
  131. package/esm/modern/plugin/component/component.inline.style.d.ts +10 -0
  132. package/esm/modern/plugin/component/component.popup.style.d.ts +25 -0
  133. package/esm/modern/plugin/component/index.d.ts +133 -0
  134. package/esm/modern/plugin/component/popupWindow.style.d.ts +11 -0
  135. package/esm/modern/plugin/const.d.ts +2 -0
  136. package/esm/modern/plugin/payment-element/utils.d.ts +2 -0
  137. package/esm/modern/plugin/paypal/index.d.ts +20 -0
  138. package/esm/modern/plugin/type.d.ts +34 -0
  139. package/esm/modern/plugin/utils.d.ts +6 -0
  140. package/esm/modern/preload/antomManifestAdapter.d.ts +11 -0
  141. package/esm/modern/preload/antomManifestAdapter.js +116 -0
  142. package/esm/modern/preload/config.d.ts +10 -0
  143. package/esm/modern/preload/config.js +46 -0
  144. package/esm/modern/preload/gatewayPreconnection.d.ts +53 -0
  145. package/esm/modern/preload/gatewayPreconnection.js +213 -0
  146. package/esm/modern/preload/preloadAntomElements.d.ts +12 -0
  147. package/esm/modern/preload/preloadAntomElements.js +99 -0
  148. package/esm/modern/preload/startAntomPreload.d.ts +2 -0
  149. package/esm/modern/preload/startAntomPreload.js +9 -0
  150. package/esm/modern/request/index.d.ts +9 -0
  151. package/esm/modern/request/utils.d.ts +28 -0
  152. package/esm/modern/service/index.d.ts +13 -0
  153. package/esm/modern/tools.js +1 -1
  154. package/esm/modern/types/index.d.ts +862 -0
  155. package/esm/modern/util/beforeConfirm.d.ts +14 -0
  156. package/esm/modern/util/createIframeNode.d.ts +6 -0
  157. package/esm/modern/util/debug.d.ts +1 -0
  158. package/esm/modern/util/get.d.ts +25 -0
  159. package/esm/modern/util/getBackScheme.d.ts +5 -0
  160. package/esm/modern/util/index.d.ts +61 -0
  161. package/esm/modern/util/jshield-apdid/apdid-loader.d.ts +89 -0
  162. package/esm/modern/util/jshield-apdid/index.d.ts +21 -0
  163. package/esm/modern/util/logger.d.ts +67 -0
  164. package/esm/modern/util/mock.d.ts +1 -0
  165. package/esm/modern/util/redirect.d.ts +6 -0
  166. package/esm/modern/util/security-registry.d.ts +72 -0
  167. package/esm/modern/util/security.d.ts +55 -0
  168. package/esm/modern/util/spm-map.d.ts +217 -0
  169. package/esm/modern/util/storage.d.ts +2 -0
  170. package/esm/modern/util/timezone.d.ts +1 -0
  171. package/esm/modern/util/upgrade.d.ts +39 -0
  172. package/esm/modern/util/versionCompare.d.ts +15 -0
  173. package/esm/tsdoc-metadata.json +1 -1
  174. package/esm/types/index.d.ts +6 -0
  175. package/esm/util/logger.js +1 -1
  176. package/esm/util/timezone.d.ts +1 -0
  177. package/esm/util/timezone.js +8 -0
  178. package/package.json +2 -1
  179. package/types.d.ts +308 -13
  180. package/types.untrimmed.d.ts +343 -13
@@ -0,0 +1,39 @@
1
+ export declare function isWebPlatform(platform?: string): boolean;
2
+ export interface UpgradeItem {
3
+ productScene?: string;
4
+ v: string;
5
+ appVersion: string;
6
+ platform?: string;
7
+ mid?: string;
8
+ greyscale?: string;
9
+ }
10
+ export interface UpgradeSdkInfo {
11
+ productScene?: string;
12
+ sdkVersion: string;
13
+ appVersion?: string;
14
+ greyscale?: number;
15
+ mid?: string;
16
+ }
17
+ export declare function findUpgradeVersion(upgradeItems: UpgradeItem[], sdkInfo: UpgradeSdkInfo): string;
18
+ export declare const getGrascaleId: (key?: string) => string;
19
+ export declare function getGrayscaleValue(seed?: string): number;
20
+ export declare function isGreyscaleMatch(item: UpgradeItem, randomGreyscale: number): boolean;
21
+ /**
22
+ * 查询匹配到的版本
23
+ * @param _extendInfo
24
+ * @param param1
25
+ * @returns
26
+ */
27
+ export declare const getMatchAppVersion: (_extendInfo: string, sdkInfo: UpgradeSdkInfo) => string;
28
+ /**
29
+ * 获取保存的加载版本
30
+ * @param versionKey
31
+ * @returns
32
+ */
33
+ export declare const getLastAppVersion: (versionKey: string) => string;
34
+ /**
35
+ * 保存指定场景的加载版本供下次使用
36
+ * @param versionKey
37
+ * @returns
38
+ */
39
+ export declare const setLastAppVersion: (versionKey: string, appVersion: string) => boolean;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * 返回值0标识一样大,1表示v1大,-1表示v2大
3
+ * @param v1
4
+ * @param v2
5
+ */
6
+ export declare function compareVersion(v1: string, v2: string): 0 | 1 | -1;
7
+ /**
8
+ * 判断version版本是否在range参数版本的范围内
9
+ * @param version
10
+ * @param range
11
+ * @returns
12
+ */
13
+ export declare function isVersionInStringRange(version: string, range: string): boolean;
14
+ export declare function isVersionInRange(currentVersion: any, minVersion: any, maxVersion: any): boolean;
15
+ export declare function matchVersion(config: any, currentVersion: any): boolean;
@@ -5,7 +5,7 @@
5
5
  "toolPackages": [
6
6
  {
7
7
  "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.59.1"
8
+ "packageVersion": "7.59.4"
9
9
  }
10
10
  ]
11
11
  }
@@ -807,6 +807,12 @@ export interface IPaymentMethod {
807
807
  category?: string;
808
808
  paymentElements?: IPaymentElement[];
809
809
  paymentMethodId?: string;
810
+ /** Token 支付模式;缺失或 null 表示不支持 */
811
+ supportTokenizedMode?: 'EASYSAFEPAY' | 'TOKENIZEDPAY' | null;
812
+ /** Token 状态 */
813
+ paymentMethodIdStatus?: 'ACTIVE' | 'INACTIVE' | null;
814
+ /** 脱敏后的渠道账号 */
815
+ userLoginId?: string;
810
816
  paymentMethodDetail?: {
811
817
  last4?: string;
812
818
  requireIssuerAuthentication?: string;
@@ -296,6 +296,6 @@ export var LogConfig = {
296
296
  version: 'iteration/20231021',
297
297
  mdata: {
298
298
  firstLogTime: Date.now(),
299
- sdkVersion: "2.0.28"
299
+ sdkVersion: "2.0.30"
300
300
  }
301
301
  };
@@ -0,0 +1 @@
1
+ export declare const getIdengineTimezone: () => string;
@@ -0,0 +1,8 @@
1
+ export var getIdengineTimezone = function getIdengineTimezone() {
2
+ var offsetMinutes = -new Date().getTimezoneOffset();
3
+ var sign = offsetMinutes >= 0 ? '+' : '-';
4
+ var absoluteMinutes = Math.abs(offsetMinutes);
5
+ var hours = Math.floor(absoluteMinutes / 60);
6
+ var minutes = absoluteMinutes % 60;
7
+ return "UTC".concat(sign).concat(hours).concat(minutes ? ":".concat(String(minutes).padStart(2, '0')) : '');
8
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alipay/ams-checkout",
3
- "version": "2.0.28",
3
+ "version": "2.0.30",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "exports": {
@@ -89,6 +89,7 @@
89
89
  ]
90
90
  },
91
91
  "dependencies": {
92
+ "@antintl/opensdk-preload": "^1.0.0",
92
93
  "axios": "^1.3.4",
93
94
  "proxy-polyfill": "^0.3.2",
94
95
  "uuid": "^9.0.0"
package/types.d.ts CHANGED
@@ -203,14 +203,23 @@ export declare type AntomLayouts = 'tabs' | 'accordion';
203
203
 
204
204
  /* Excluded from this release type: AntomOpenModalConfig */
205
205
 
206
+ export declare interface AntomPreloadConfig {
207
+ /** Elements2 types the merchant expects to create after loading the SDK. */
208
+ elements: AntomPreloadElement[];
209
+ }
210
+
211
+ export declare type AntomPreloadElement = 'payment' | 'express' | 'vaulting' | 'CVV';
212
+
206
213
  /**
207
214
  * @description The Antom main class, all uses are based on this class instance
208
215
  */
209
216
  export declare class AntomSDK extends BaseElementsFactory {
210
217
  static version: string;
211
218
  private stopModalMessageMonitor;
219
+ private readonly apiTracker;
212
220
  constructor(config?: AntomSDKConfig);
213
221
  protected canUseElements(): Array<ElementListItemType>;
222
+ init(): Promise<this>;
214
223
  /**
215
224
  * @description 更新配置
216
225
  */
@@ -223,17 +232,34 @@ export declare class AntomSDK extends BaseElementsFactory {
223
232
  createElement(elementType: 'vaulting', options?: VaultingAppConfig): VaultingElement;
224
233
  createElement(elementType: 'CVV', options: CVVAppConfig): CVVElement;
225
234
  createElement(elementType: 'express', options?: ExpressAppConfig): ExpressElement;
235
+ createElement(elementType: 'expressVaulting', options?: ExpressVaultingAppConfig): ExpressVaultingElement;
226
236
  getElement(elementType: 'payment', options?: PaymentAppConfig): PaymentElement;
227
237
  getElement(elementType: 'vaulting', options?: VaultingAppConfig): VaultingElement;
228
238
  getElement(elementType: 'CVV', options?: CVVAppConfig): CVVElement;
229
239
  getElement(elementType: 'express', options?: ExpressAppConfig): ExpressElement;
240
+ getElement(elementType: 'expressVaulting', options?: ExpressVaultingAppConfig): ExpressVaultingElement;
230
241
  /**
231
242
  * 从 elements 容器或直接传入的 MainElement 中提取指定类型的主元素
232
243
  * @throws {AntomSDKError} 当无法找到有效的主元素时抛出错误
233
244
  */
234
245
  private extractMainElement;
235
246
  confirmCardSetup(options: ConfirmCardSetupOptions): Promise<SubmitResult>;
247
+ private runConfirmCardSetup;
236
248
  confirmPayment(options: ConfirmPaymentOptions): Promise<SubmitResult>;
249
+ private runConfirmPayment;
250
+ /**
251
+ * 触发 Express Vaulting element 的 PayPal 绑卡提交流程。
252
+ *
253
+ * iframe 收到 OPENSDK@CONFIRM_VAULTING 后执行 submitPay + 单次 inquiry 兜底,
254
+ * 完成后通过 OPENSDK@CONFIRM_VAULTING_RESULT 回包,Promise resolve。
255
+ *
256
+ * @param options.elements 已挂载的 ExpressVaultingElement 或包含它的 Elements 实例
257
+ * @param options.redirect 跳转策略,默认 'always',透传给 iframe
258
+ */
259
+ confirmVaulting(options: {
260
+ elements: BaseMainElement | BaseElements;
261
+ redirect?: 'always' | 'if_required';
262
+ }): Promise<ExpressVaultingResult>;
237
263
  }
238
264
 
239
265
  /**
@@ -328,8 +354,8 @@ export declare const AntomSDKErrorCodes: {
328
354
  readonly ELEMENT_DEFINE_ERROR: "ELEMENT_DEFINE_ERROR";
329
355
  readonly ELEMENT_ALREADY_REGISTERED: "ELEMENT_ALREADY_REGISTERED";
330
356
  readonly CANNOT_CREATE_SAME_ELEMENT_TWICE: "CANNOT_CREATE_SAME_ELEMENT_TWICE";
331
- readonly GROUPS_ONLY_ONE_MAIN_ELEMENT: "GROUPS_ONLY_ONE_MAIN_ELEMENT"; /** @deprecated 传入 elements 时无需重复传递,且不会覆盖 Element 的会话。 */
332
- readonly GROUPS_NOT_FOUND_MAIN_ELEMENT: "GROUPS_NOT_FOUND_MAIN_ELEMENT"; /** 无 UI 模式必填,仅用于创建内部 CVVElement。 */
357
+ readonly GROUPS_ONLY_ONE_MAIN_ELEMENT: "GROUPS_ONLY_ONE_MAIN_ELEMENT";
358
+ readonly GROUPS_NOT_FOUND_MAIN_ELEMENT: "GROUPS_NOT_FOUND_MAIN_ELEMENT";
333
359
  readonly NOT_SUPPORT_ELEMENT: "NOT_SUPPORT_ELEMENT";
334
360
  readonly NOT_SUPPORT_SUBMIT: "NOT_SUPPORT_SUBMIT";
335
361
  readonly UPDATE_CONFIG_TIMEOUT: "UPDATE_CONFIG_TIMEOUT";
@@ -2312,6 +2338,7 @@ export declare interface CVVAppConfig extends BaseElementAppConfig {
2312
2338
  /* Excluded from this release type: renderData */
2313
2339
  /* Excluded from this release type: sdkVersion */
2314
2340
  /* Excluded from this release type: _requestConfig */
2341
+ /* Excluded from this release type: preloadTelemetryContext */
2315
2342
  /**
2316
2343
  * @description 语言配置
2317
2344
  */
@@ -2334,10 +2361,17 @@ export declare type CVVAppearanceProps = {
2334
2361
  export declare class CVVElement extends BaseMainElement<CVVElementConfig, CVVElementEvents> {
2335
2362
  static elementType: string;
2336
2363
  private readonly sessionData;
2364
+ private readonly elementTracker;
2365
+ private _mountInProgress;
2366
+ private _destroyInProgress;
2337
2367
  constructor(name: string, config: CVVElementConfig);
2338
2368
  /* Excluded from this release type: setup */
2339
2369
  /* Excluded from this release type: updateConfig */
2340
2370
  /* Excluded from this release type: submit */
2371
+ mount(container: HTMLElement): Promise<void>;
2372
+ on<T extends keyof CVVElementEvents>(event: T, handler: (payload: CVVElementEvents[T]) => void): void;
2373
+ unmount(): void;
2374
+ destroy(): void;
2341
2375
  protected focus(): void;
2342
2376
  protected blur(): void;
2343
2377
  protected clear(): void;
@@ -3078,8 +3112,12 @@ declare interface ElementPluginChangeStates {
3078
3112
  declare type ElementPluginNameEnum = 'SET_STATE' | 'PASSIVE_SET_STATE';
3079
3113
 
3080
3114
  declare class Elements extends BaseElements {
3115
+ private readonly apiTracker;
3081
3116
  protected canUseElements(): Array<ElementListItemType>;
3082
3117
  constructor(config: BaseElementsConfig);
3118
+ init(): Promise<this>;
3119
+ updateConfig(config: Partial<BaseElementsConfig>): void;
3120
+ destroy(): void;
3083
3121
  createElement(elementType: 'vaulting', options?: VaultingAppConfig): VaultingElement;
3084
3122
  createElement(elementType: 'express', options?: ExpressAppConfig): ExpressElement;
3085
3123
  getElement(elementType: 'vaulting', options?: VaultingAppConfig): VaultingElement;
@@ -3257,6 +3295,7 @@ export declare interface ExpressAppConfig extends BaseElementAppConfig {
3257
3295
  /* Excluded from this release type: setupError */
3258
3296
  /* Excluded from this release type: locale */
3259
3297
  /* Excluded from this release type: _paypalSdkEnvironment */
3298
+ /* Excluded from this release type: preloadTelemetryContext */
3260
3299
  /**
3261
3300
  * 是否运行在 Native App 的 WebView 中。
3262
3301
  * 为 true 时,跳转通过 onRedirect 事件委托给 Native 端处理。
@@ -3288,6 +3327,17 @@ export declare interface ExpressClickEvent {
3288
3327
  expressPaymentType: string;
3289
3328
  }
3290
3329
 
3330
+ declare type ExpressCompletePaymentResult = {
3331
+ success: boolean;
3332
+ result?: any;
3333
+ error?: {
3334
+ code: string;
3335
+ message: string;
3336
+ };
3337
+ userCanceled3D?: boolean;
3338
+ status?: 'SUCCESS' | 'CANCELLED' | 'FAIL' | 'PROCESSING';
3339
+ };
3340
+
3291
3341
  /** confirm 事件负载(统一终态,替代 approve) */
3292
3342
  export declare interface ExpressConfirmData {
3293
3343
  expressPaymentType: string;
@@ -3334,6 +3384,10 @@ export declare interface ExpressConfirmData {
3334
3384
  */
3335
3385
  export declare class ExpressElement extends BaseMainElement<ExpressElementConfig, ExpressElementEvents> {
3336
3386
  static elementType: string;
3387
+ private readonly elementTracker;
3388
+ private _mountInProgress;
3389
+ private _destroyInProgress;
3390
+ private _registeringInternalListeners;
3337
3391
  /**
3338
3392
  * Store all function-type callbacks locally, not involved in postMessage serialization
3339
3393
  */
@@ -3352,6 +3406,12 @@ export declare class ExpressElement extends BaseMainElement<ExpressElementConfig
3352
3406
  private _localHandlers;
3353
3407
  /** 支付流程进行中标志(click → confirm/error/cancel 之间) */
3354
3408
  private _paymentInProgress;
3409
+ /**
3410
+ * confirm 窗口超时标志:iframe 在 20s onTimeout 发 error(MERCHANT_CONFIRM_TIMEOUT) 时置位,
3411
+ * completePayment 入口据此立即返失败(不发 COMPLETE_PAYMENT,不进 5min 兜底)。
3412
+ * 每新一轮 confirm 事件到达时复位(见 on() 重写)。
3413
+ */
3414
+ private _confirmWindowTimedOut;
3355
3415
  /**
3356
3416
  * 是否已收到 iframe 业务层 ready 事件(app.tsx sendReady)。
3357
3417
  * 注意:与 host `status='ready'`(由 HANDSHAKE_ACK 触发,bridge.js:450 同步回发,与 amount 解析无关)不同。
@@ -3374,6 +3434,7 @@ export declare class ExpressElement extends BaseMainElement<ExpressElementConfig
3374
3434
  */
3375
3435
  private _emit;
3376
3436
  updateConfig(newConfig: ExpressAppConfig): Promise<ExpressElementEvents['OPENSDK@UPDATE_CONFIG_REPLY']>;
3437
+ private runUpdateConfig;
3377
3438
  private updateConfigTransaction;
3378
3439
  private updateAmountConfigWithSanitizedDebug;
3379
3440
  private getAmountValidationReason;
@@ -3389,19 +3450,13 @@ export declare class ExpressElement extends BaseMainElement<ExpressElementConfig
3389
3450
  * iframe 收到 OPENSDK@COMPLETE_PAYMENT 后执行 submitPay / polling 等,
3390
3451
  * 完成后通过 OPENSDK@COMPLETE_PAYMENT_RESULT 回包,Promise resolve。
3391
3452
  */
3392
- completePayment(redirect?: 'always' | 'if_required'): Promise<{
3393
- success: boolean;
3394
- result?: any;
3395
- error?: {
3396
- code: string;
3397
- message: string;
3398
- };
3399
- /** 用户是否手动关闭 3D 弹窗(透传 webapp COMPLETE_PAYMENT_RESULT.userCanceled3D) */
3400
- userCanceled3D?: boolean;
3401
- status?: 'SUCCESS' | 'CANCELLED' | 'FAIL' | 'PROCESSING';
3402
- }>;
3453
+ completePayment(redirect?: 'always' | 'if_required'): Promise<ExpressCompletePaymentResult>;
3454
+ private runCompletePayment;
3403
3455
  setup(): Promise<Partial<ExpressAppConfig> | undefined>;
3404
3456
  private registerInternalListeners;
3457
+ mount(container: HTMLElement): Promise<void>;
3458
+ unmount(): void;
3459
+ destroy(): void;
3405
3460
  protected focus(): void;
3406
3461
  protected blur(): void;
3407
3462
  protected clear(): void;
@@ -3510,6 +3565,184 @@ declare type ExpressSetupError = ErrorPayload & {
3510
3565
  mulityLanguageMapping?: boolean;
3511
3566
  };
3512
3567
 
3568
+ /**
3569
+ * @public
3570
+ * @description Express Vaulting element app config type
3571
+ */
3572
+ export declare interface ExpressVaultingAppConfig extends BaseElementAppConfig {
3573
+ /**
3574
+ * @description payment sessionData,无法通过 updateConfig 更新
3575
+ */
3576
+ sessionData?: string;
3577
+ /**
3578
+ * @description 开通的支付方式列表,本期固定为 ['PAYPAL_DIRECTDEBIT']
3579
+ */
3580
+ paymentMethods?: string[];
3581
+ /** PayPal 按钮配置 */
3582
+ paypal?: ExpressVaultingPayPalConfig;
3583
+ /** PayPal 按钮文案类型 */
3584
+ buttonType?: {
3585
+ paypal?: 'paypal' | 'checkout' | 'buynow' | 'pay';
3586
+ };
3587
+ /** 按钮统一高度(px) */
3588
+ buttonHeight?: number;
3589
+ /** PayPal 按钮主题色 */
3590
+ buttonTheme?: {
3591
+ paypal?: 'gold' | 'blue' | 'silver' | 'white' | 'black';
3592
+ };
3593
+ }
3594
+
3595
+ /**
3596
+ * @public
3597
+ * @description cancel 事件负载
3598
+ */
3599
+ export declare interface ExpressVaultingCancelEvent {
3600
+ paymentMethodType: ExpressVaultingMethod;
3601
+ data?: unknown;
3602
+ }
3603
+
3604
+ /**
3605
+ * @public
3606
+ * @description click 事件负载
3607
+ */
3608
+ export declare interface ExpressVaultingClickEvent {
3609
+ paymentMethodType: ExpressVaultingMethod;
3610
+ }
3611
+
3612
+ /**
3613
+ * @public
3614
+ * @description confirm 事件负载(PayPal onApprove 成功后触发,商户可在回调中调 confirmVaulting)
3615
+ */
3616
+ export declare interface ExpressVaultingConfirmEvent {
3617
+ paymentMethodType: ExpressVaultingMethod;
3618
+ payerInfo?: ExpressVaultingPayerInfo;
3619
+ }
3620
+
3621
+ /**
3622
+ * @public
3623
+ * @description Express Vaulting element - PayPal 绑卡 Element
3624
+ *
3625
+ * Host 侧只保留 Element 生命周期与 bridge 连接;PayPal 按钮渲染、Braintree SDK
3626
+ * 加载、submit/inquiry 都由 express_vaulting webapp 承接。
3627
+ *
3628
+ * setup 阶段调 sdkActionQuery 拿 paypalClientToken,握手时下发给 iframe(系分
3629
+ * 4.1 节 BR-007:client token 必须来自握手,iframe 不自调 sdkActionQuery)。
3630
+ */
3631
+ export declare class ExpressVaultingElement extends BaseMainElement<ExpressVaultingElementConfig, ExpressVaultingElementEvents> {
3632
+ static elementType: string;
3633
+ /**
3634
+ * Host-side fullscreen overlay shown while the PayPal popup is open.
3635
+ *
3636
+ * PayPal Braintree vault flow renders its own popup + backdrop inside the
3637
+ * iframe body, so without a host overlay the backdrop only masks the tiny
3638
+ * button area. Mirrors ExpressElement: show on `click`, hide on
3639
+ * `confirm` / `cancel` / `error`.
3640
+ */
3641
+ private _paypalOverlay;
3642
+ constructor(name: string, config: ExpressVaultingElementConfig);
3643
+ /* Excluded from this release type: setup */
3644
+ /* Excluded from this release type: registerInternalListeners */
3645
+ protected focus(): void;
3646
+ protected blur(): void;
3647
+ protected clear(): void;
3648
+ /* Excluded from this release type: _confirmVaulting */
3649
+ }
3650
+
3651
+ /**
3652
+ * @public
3653
+ * @description Express Vaulting element config type
3654
+ */
3655
+ export declare interface ExpressVaultingElementConfig extends BaseElementConfig<ExpressVaultingAppConfig> {
3656
+ }
3657
+
3658
+ /**
3659
+ * @public
3660
+ * @description Express Vaulting element 事件类型
3661
+ */
3662
+ export declare interface ExpressVaultingElementEvents extends AntomBridgeWithNativeEventMap<ExpressVaultingAppConfig> {
3663
+ ready: ExpressVaultingReadyEvent;
3664
+ click: ExpressVaultingClickEvent;
3665
+ confirm: ExpressVaultingConfirmEvent;
3666
+ cancel: ExpressVaultingCancelEvent;
3667
+ error: ExpressVaultingErrorEvent;
3668
+ 'OPENSDK@CONFIRM_VAULTING': {
3669
+ requestId: string;
3670
+ redirect?: 'always' | 'if_required';
3671
+ };
3672
+ 'OPENSDK@CONFIRM_VAULTING_RESULT': {
3673
+ requestId: string;
3674
+ result: ExpressVaultingResult;
3675
+ };
3676
+ }
3677
+
3678
+ /**
3679
+ * @public
3680
+ * @description error 事件负载
3681
+ */
3682
+ export declare interface ExpressVaultingErrorEvent extends ErrorPayload<string> {
3683
+ paymentMethodType: ExpressVaultingMethod;
3684
+ }
3685
+
3686
+ /**
3687
+ * Supported express vaulting payment methods. All bridge event payloads carry
3688
+ * `paymentMethodType` — use this enum instead of硬编码 strings so adding a
3689
+ * new wallet only needs one entry here. Must match the iframe-side enum in
3690
+ * elements2/express_vaulting/interface.ts.
3691
+ */
3692
+ declare enum ExpressVaultingMethod {
3693
+ PAYPAL_DIRECTDEBIT = "PAYPAL_DIRECTDEBIT"
3694
+ }
3695
+
3696
+ /**
3697
+ * @public
3698
+ * @description Braintree tokenizePayment 返回的 payer 信息,随 confirm 事件透传给商户
3699
+ */
3700
+ export declare interface ExpressVaultingPayerInfo {
3701
+ payerId?: string;
3702
+ email?: string;
3703
+ firstName?: string;
3704
+ lastName?: string;
3705
+ countryCode?: string;
3706
+ phone?: string;
3707
+ }
3708
+
3709
+ /**
3710
+ * MERCHANT_CONFIRM_TIMEOUT is owned by the iframe side (mirrors express_element:
3711
+ * iframe starts a 20s timer on the `confirm` event and sends
3712
+ * `error(MERCHANT_CONFIRM_TIMEOUT)` if the merchant never calls confirmVaulting).
3713
+ * See elements2/express_vaulting/app.tsx + tools/error.ts.
3714
+ */
3715
+ /**
3716
+ * @public
3717
+ * @description PayPal 按钮配置
3718
+ */
3719
+ export declare interface ExpressVaultingPayPalConfig {
3720
+ /** 按钮形状 */
3721
+ buttonShape?: 'pill' | 'rect' | 'sharp';
3722
+ }
3723
+
3724
+ /**
3725
+ * @public
3726
+ * @description ready 事件负载
3727
+ */
3728
+ export declare interface ExpressVaultingReadyEvent {
3729
+ availablePaymentMethods: Partial<Record<ExpressVaultingMethod, boolean>>;
3730
+ }
3731
+
3732
+ /**
3733
+ * @public
3734
+ * @description confirmVaulting 返回结果
3735
+ */
3736
+ export declare interface ExpressVaultingResult {
3737
+ status: 'SUCCESS' | 'PROCESSING' | 'FAIL' | 'CANCELLED';
3738
+ paymentMethodId?: string;
3739
+ payerId?: string;
3740
+ error?: {
3741
+ code: string;
3742
+ message: string;
3743
+ };
3744
+ }
3745
+
3513
3746
  declare interface ExpSupportBank {
3514
3747
  /**
3515
3748
  * @description 银行名称
@@ -4569,6 +4802,8 @@ export declare interface LoadAntomConfig extends Omit<BaseFactoryConfig, 'tracke
4569
4802
  * @description 环境配置,默认为prod
4570
4803
  */
4571
4804
  env?: 'sandbox' | 'prod';
4805
+ /** Starts best-effort Elements2 resource preload without delaying loadAntom. */
4806
+ preload?: AntomPreloadConfig;
4572
4807
  }
4573
4808
 
4574
4809
  /**
@@ -7144,6 +7379,7 @@ export declare interface PaymentAppConfig extends BaseElementAppConfig {
7144
7379
  /* Excluded from this release type: sdkVersion */
7145
7380
  /* Excluded from this release type: _requestConfig */
7146
7381
  /* Excluded from this release type: logMetaData */
7382
+ /* Excluded from this release type: preloadTelemetryContext */
7147
7383
  /* Excluded from this release type: heightOfVisible */
7148
7384
  /**
7149
7385
  * Amount & Currency
@@ -7178,14 +7414,23 @@ export declare type PaymentAppearanceProps = {
7178
7414
  export declare class PaymentElement extends BaseMainElement<PaymentElementConfig, PaymentElementEvents> {
7179
7415
  static elementType: string;
7180
7416
  private _paymentInProgress;
7417
+ private readonly paymentTracker;
7418
+ private _mountStartedAt;
7419
+ private _mountInProgress;
7420
+ private _mountPhase;
7421
+ private _destroyInProgress;
7181
7422
  private readonly walletLogger;
7182
7423
  constructor(name: string, config: PaymentElementConfig);
7183
7424
  /* Excluded from this release type: setup */
7425
+ mount(container: HTMLElement): Promise<void>;
7184
7426
  /**
7185
7427
  * @description Update payment element configuration with amount validation and appearance Rules support
7186
7428
  */
7187
7429
  updateConfig(newConfig: Partial<PaymentAppConfig>): Promise<PaymentElementEvents['OPENSDK@UPDATE_CONFIG_REPLY']>;
7188
7430
  /* Excluded from this release type: submit */
7431
+ on<T extends keyof PaymentElementEvents>(event: T, handler: (payload: PaymentElementEvents[T]) => void): void;
7432
+ unmount(): void;
7433
+ destroy(): void;
7189
7434
  protected focus(): void;
7190
7435
  protected blur(): void;
7191
7436
  protected clear(): void;
@@ -7215,6 +7460,11 @@ export declare interface PaymentElementEvents extends AntomBridgeWithNativeEvent
7215
7460
  'OPENSDK@GET_GOOGLE_PAY_TOKEN': GetGooglePayTokenRequest;
7216
7461
  /** host 完成 Google Pay token 获取后回包给 webapp */
7217
7462
  'OPENSDK@GET_GOOGLE_PAY_TOKEN_REPLY': GetGooglePayTokenReply;
7463
+ /** WebApp notifies the host when the selected payment method changes. */
7464
+ paymentMethodChanged: {
7465
+ type: string;
7466
+ name?: string;
7467
+ };
7218
7468
  }
7219
7469
 
7220
7470
  declare interface PaymentElementView {
@@ -7564,6 +7814,33 @@ declare interface PaymentMethodView {
7564
7814
  * @description 分期银行信息列表
7565
7815
  */
7566
7816
  supportIppBankList?: FrontSupportIppBank[];
7817
+ /**
7818
+ * @description consult 是否打标该支付方式支持代扣(tokenPay)。
7819
+ *
7820
+ * <p>来源 iexpprod {@code PaymentOption.supportTokenPay}(Boolean, 默认 false), 仅当 iexpfront 显式传
7821
+ * {@code PaymentFactor.markSupportTokenPay=true} 时 iexpprod 才会打标。 sdkQuery 内部流转字段。
7822
+ */
7823
+ supportTokenPay?: boolean;
7824
+ /**
7825
+ * @description tokenized 模式, 取值 EASYSAFEPAY / TOKENIZEDPAY;null 或缺失表示不支持。
7826
+ *
7827
+ * <p>sdkQuery 响应下发, submitPayByPaymentSession 由 SDK 原值回传; 服务端不信任前端回传值, 必须与会话上下文比对。
7828
+ */
7829
+ supportTokenizedMode?: 'EASYSAFEPAY' | 'TOKENIZEDPAY' | null;
7830
+ /**
7831
+ * @description 用户是否选择开启 token 支付(首次支付/授权场景的入口标识)。
7832
+ *
7833
+ * <p>submitPayByPaymentSession 请求入参, 由前端上报。
7834
+ */
7835
+ enableTokenPay?: boolean;
7836
+ /**
7837
+ * @description token(accessToken) 状态, 取值 ACTIVE / INACTIVE, 对齐 iexpprod facade {@code
7838
+ * AlipayAccessTokenStatusEnum}。
7839
+ *
7840
+ * <p>sdkQuery 响应下发, 取 {@code PaymentMethodTokenDetail.alipayAccessTokenStatus}; 首次支付(无
7841
+ * tokenDetail)不下发。
7842
+ */
7843
+ paymentMethodIdStatus?: 'ACTIVE' | 'INACTIVE' | null;
7567
7844
  }
7568
7845
 
7569
7846
  declare interface PaymentOption {
@@ -7687,6 +7964,14 @@ declare interface PaymentOption {
7687
7964
  * @description 支付支持的交互方式
7688
7965
  */
7689
7966
  interactionTypes?: string[];
7967
+ /**
7968
+ * @description 支付方式是否支持代扣(token pay)
7969
+ * <p>
7970
+ * 仅当请求侧 PaymentFactor.markSupportTokenPay=true 时才可能被置为 true;
7971
+ * 默认 false, 未打标时与现状完全一致, 向后兼容。
7972
+ * @default false
7973
+ */
7974
+ supportTokenPay?: boolean;
7690
7975
  }
7691
7976
 
7692
7977
  declare interface PaymentQuoteInfo {
@@ -7978,6 +8263,8 @@ declare interface PollingSetting {
7978
8263
  pollingTimes?: string;
7979
8264
  }
7980
8265
 
8266
+ /* Excluded from this release type: PreloadTelemetryContext */
8267
+
7981
8268
  declare interface PromotionDetail {
7982
8269
  /**
7983
8270
  * @description promotion amount for mobile view
@@ -24644,6 +24931,7 @@ export declare interface VaultingAppConfig extends BaseElementAppConfig {
24644
24931
  /* Excluded from this release type: renderDataError */
24645
24932
  /* Excluded from this release type: sdkVersion */
24646
24933
  /* Excluded from this release type: _requestConfig */
24934
+ /* Excluded from this release type: preloadTelemetryContext */
24647
24935
  }
24648
24936
 
24649
24937
  export declare type VaultingAppearance = PickAntomAppearance<VaultingAppearanceProps>;
@@ -24661,6 +24949,9 @@ export declare type VaultingAppearanceProps = {
24661
24949
  */
24662
24950
  export declare class VaultingElement extends BaseMainElement<VaultingElementConfig, VaultingElementEvents> {
24663
24951
  static elementType: string;
24952
+ private readonly elementTracker;
24953
+ private _mountInProgress;
24954
+ private _destroyInProgress;
24664
24955
  constructor(name: string, config: VaultingElementConfig);
24665
24956
  /* Excluded from this release type: setup */
24666
24957
  /**
@@ -24670,6 +24961,10 @@ export declare class VaultingElement extends BaseMainElement<VaultingElementConf
24670
24961
  */
24671
24962
  updateConfig(newConfig: Partial<VaultingAppConfig>): Promise<VaultingElementEvents['OPENSDK@UPDATE_CONFIG_REPLY']>;
24672
24963
  /* Excluded from this release type: submit */
24964
+ mount(container: HTMLElement): Promise<void>;
24965
+ on<T extends keyof VaultingElementEvents>(event: T, handler: (payload: VaultingElementEvents[T]) => void): void;
24966
+ unmount(): void;
24967
+ destroy(): void;
24673
24968
  protected focus(): void;
24674
24969
  protected blur(): void;
24675
24970
  protected clear(): void;