@alipay/ams-checkout 1.5.8 → 1.5.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,6 @@
1
+ export declare const insertStyleSheet: () => void;
2
+ export declare const createModal: ({ device, url }: {
3
+ device: any;
4
+ url: any;
5
+ }) => HTMLIFrameElement;
6
+ export declare const destroyModal: () => void;
@@ -0,0 +1,54 @@
1
+ import { AMSPOPUP_PREFIX, ANIMATION_TIME } from "../../constant";
2
+
3
+ // CSS样式字符串
4
+ var modalStyles = "\n .".concat(AMSPOPUP_PREFIX, "modal {\n /* \u6DFB\u52A0\u5F39\u7A97\u6837\u5F0F */\n background-color: #fff;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 9999; /* \u8BBE\u7F6E\u5F39\u7A97\u7684\u5C42\u7EA7\u4E3A 9999 */\n overflow: hidden;\n }\n\n .").concat(AMSPOPUP_PREFIX, "overlay {\n /* \u6DFB\u52A0\u8499\u5C42\u6837\u5F0F */\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.4);\n z-index: 999;\n }\n\n .").concat(AMSPOPUP_PREFIX, "fadeIn {\n /* \u6DFB\u52A0\u6DE1\u5165\u52A8\u753B */\n animation: fadeIn ").concat(ANIMATION_TIME, "ms;\n animation-fill-mode: forwards;\n }\n\n .").concat(AMSPOPUP_PREFIX, "fadeOut {\n /* \u6DFB\u52A0\u6DE1\u51FA\u52A8\u753B */\n animation: fadeOut ").concat(ANIMATION_TIME, "ms;\n animation-fill-mode: forwards;\n }\n\n /* \u5B9A\u4E49\u6DE1\u5165\u52A8\u753B */\n @keyframes fadeIn {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n\n @-webkit-keyframes fadeIn {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n\n @-moz-keyframes fadeIn {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n\n /* \u5B9A\u4E49\u6DE1\u51FA\u52A8\u753B */\n @keyframes fadeOut {\n 0% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n }\n\n @-webkit-keyframes fadeOut {\n 0% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n }\n\n @-moz-keyframes fadeOut {\n 0% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n }\n");
5
+
6
+ // 创建和插入样式表
7
+ export var insertStyleSheet = function insertStyleSheet() {
8
+ var style = document.createElement('style');
9
+ style.innerHTML = modalStyles;
10
+ document.head.appendChild(style);
11
+ };
12
+
13
+ // 插入弹窗
14
+ export var createModal = function createModal(_ref) {
15
+ var device = _ref.device,
16
+ url = _ref.url;
17
+ var overlay = document.createElement('div');
18
+ overlay.classList.add("".concat(AMSPOPUP_PREFIX, "overlay"), "".concat(AMSPOPUP_PREFIX, "fadeIn"));
19
+ var modal = document.createElement('div');
20
+ modal.classList.add("".concat(AMSPOPUP_PREFIX, "modal"), "".concat(AMSPOPUP_PREFIX, "fadeIn"));
21
+ if (device === 'desktop') {
22
+ modal.style.width = '600px';
23
+ modal.style.height = '464px';
24
+ modal.style.borderRadius = '12px';
25
+ } else {
26
+ modal.style.width = 'calc(100% - 16px)';
27
+ modal.style.height = '80%';
28
+ modal.style.borderRadius = '8px';
29
+ }
30
+ var iframe = document.createElement('iframe');
31
+ iframe.src = url; // 替换为实际的 URL 地址
32
+ iframe.style.border = 'none';
33
+ iframe.style.width = '100%';
34
+ iframe.style.height = '100%';
35
+ modal.appendChild(iframe);
36
+ var body = document.getElementsByTagName('body')[0];
37
+ body.appendChild(overlay);
38
+ body.appendChild(modal);
39
+ return iframe;
40
+ };
41
+
42
+ // 销毁弹窗
43
+ export var destroyModal = function destroyModal() {
44
+ var overlay = document.querySelector(".".concat(AMSPOPUP_PREFIX, "overlay"));
45
+ var modal = document.querySelector(".".concat(AMSPOPUP_PREFIX, "modal"));
46
+ overlay.classList.remove("".concat(AMSPOPUP_PREFIX, "fadeIn"));
47
+ overlay.classList.add("".concat(AMSPOPUP_PREFIX, "fadeOut"));
48
+ modal.classList.remove("".concat(AMSPOPUP_PREFIX, "fadeIn"));
49
+ modal.classList.add("".concat(AMSPOPUP_PREFIX, "fadeOut"));
50
+ setTimeout(function () {
51
+ overlay.parentNode.removeChild(overlay);
52
+ modal.parentNode.removeChild(modal);
53
+ }, ANIMATION_TIME);
54
+ };
@@ -1,8 +1,9 @@
1
1
  import { IrequestConfig } from '../types';
2
+ import { Logger } from '../util/logger';
2
3
  /**
3
4
  *
4
5
  * @param requestData 请求参数
5
6
  * @param options 请求配置
6
7
  * @example request({ name: 'test' }, { operation-type: 'xxx.xxx.xxx' })
7
8
  */
8
- export declare function request<T>(requestData: Record<string, any> | undefined, options: IrequestConfig): Promise<T>;
9
+ export declare function request<T>(requestData: Record<string, any> | undefined, options: IrequestConfig, logger: Logger): Promise<T>;
@@ -19,7 +19,6 @@ import { sdkVersion } from "../config/index";
19
19
  import { appId, hostSignMap, lightSandboxMap, requestHost, sofaId, tntInstId } from "../config/request";
20
20
  import { errorEnum } from "../types";
21
21
  import { get } from "../util/get";
22
- import { getApdidToken, getAppname } from "../util/security";
23
22
  import axios from 'axios';
24
23
  import { device, fomatGetwayError, isPC, queryParse, safeJson } from "../util";
25
24
  var _queryParse = queryParse(),
@@ -59,18 +58,17 @@ function requestInstance(options) {
59
58
  * @param options 请求配置
60
59
  * @example request({ name: 'test' }, { operation-type: 'xxx.xxx.xxx' })
61
60
  */
62
- export function request(_x, _x2) {
61
+ export function request(_x, _x2, _x3) {
63
62
  return _request.apply(this, arguments);
64
63
  }
65
64
  function _request() {
66
- _request = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(requestData, options) {
67
- var myRequest, startTime, envInfo, deviceId, _navigator, _data, _yield$myRequest, data, headers, resData, traceId, handleGetWayError, _error$message, _error, timeoutCode, errorCode;
65
+ _request = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(requestData, options, logger) {
66
+ var _options$envInfo;
67
+ var envInfo, _navigator, _data, startTime, myRequest, _yield$myRequest, data, headers, resData, traceId, handleGetWayError, errorMessage, errorCode, _error$message, _error, timeoutCode, _errorCode;
68
68
  return _regeneratorRuntime().wrap(function _callee$(_context) {
69
69
  while (1) switch (_context.prev = _context.next) {
70
70
  case 0:
71
- myRequest = requestInstance(options);
72
- startTime = Date.now();
73
- envInfo = {
71
+ envInfo = _objectSpread(_objectSpread({
74
72
  terminalType: isPC() ? 'WEB' : 'WAP',
75
73
  browserInfo: {
76
74
  browserJavaScriptEnabled: true,
@@ -78,22 +76,13 @@ function _request() {
78
76
  browserUserAgent: navigator.userAgent,
79
77
  browserColorDepth: screen.colorDepth
80
78
  },
81
- locale: options.locale || 'en_US',
82
79
  deviceLanguage: navigator.language,
83
80
  screenWidth: screen.width,
84
81
  screenHeight: screen.height,
85
82
  timeZoneOffset: new Date().getTimezoneOffset()
86
- };
87
- if (!(options !== null && options !== void 0 && options.needDeviceId)) {
88
- _context.next = 8;
89
- break;
90
- }
91
- _context.next = 6;
92
- return getApdidToken(getAppname('Card'), options === null || options === void 0 ? void 0 : options.waitTime);
93
- case 6:
94
- deviceId = _context.sent;
95
- envInfo.deviceId = deviceId;
96
- case 8:
83
+ }, options === null || options === void 0 ? void 0 : options.envInfo), {}, {
84
+ locale: (options === null || options === void 0 || (_options$envInfo = options.envInfo) === null || _options$envInfo === void 0 ? void 0 : _options$envInfo.locale) || 'en_US'
85
+ });
97
86
  try {
98
87
  envInfo.browserInfo.browserJavaEnabled = ((_navigator = navigator) === null || _navigator === void 0 ? void 0 : _navigator.javaEnabled()) || false;
99
88
  // eslint-disable-next-line no-empty
@@ -105,12 +94,14 @@ function _request() {
105
94
  refUrl: window.location.href
106
95
  }
107
96
  })] : [requestData];
108
- _context.prev = 11;
109
- _context.next = 14;
97
+ startTime = Date.now();
98
+ _context.prev = 5;
99
+ myRequest = requestInstance(options);
100
+ _context.next = 9;
110
101
  return myRequest({
111
102
  data: _data
112
103
  });
113
- case 14:
104
+ case 9:
114
105
  _yield$myRequest = _context.sent;
115
106
  data = _yield$myRequest.data;
116
107
  headers = _yield$myRequest.headers;
@@ -119,36 +110,68 @@ function _request() {
119
110
  resData.traceId = traceId || '';
120
111
  handleGetWayError = fomatGetwayError(headers, traceId);
121
112
  if (!(handleGetWayError !== null && handleGetWayError !== void 0 && handleGetWayError.errorCode)) {
122
- _context.next = 23;
113
+ _context.next = 21;
123
114
  break;
124
115
  }
116
+ errorMessage = (resData === null || resData === void 0 ? void 0 : resData.errorMessage) || (handleGetWayError === null || handleGetWayError === void 0 ? void 0 : handleGetWayError.errorMessage);
117
+ errorCode = handleGetWayError === null || handleGetWayError === void 0 ? void 0 : handleGetWayError.errorCode;
118
+ logger.reportRPC({
119
+ name: options === null || options === void 0 ? void 0 : options['Operation-Type'],
120
+ label: 'request',
121
+ time: Date.now() - startTime,
122
+ success: false,
123
+ code: errorCode,
124
+ msg: errorMessage,
125
+ traceId: traceId
126
+ }, {
127
+ // TODO Concerned input data
128
+ }).send();
125
129
  throw new Error(JSON.stringify({
126
- errorMessage: (resData === null || resData === void 0 ? void 0 : resData.errorMessage) || (handleGetWayError === null || handleGetWayError === void 0 ? void 0 : handleGetWayError.errorMessage),
127
- errorCode: handleGetWayError === null || handleGetWayError === void 0 ? void 0 : handleGetWayError.errorCode,
130
+ errorMessage: errorMessage,
131
+ errorCode: errorCode,
128
132
  success: false
129
133
  }));
130
- case 23:
134
+ case 21:
135
+ logger.reportRPC({
136
+ name: options === null || options === void 0 ? void 0 : options['Operation-Type'],
137
+ label: 'request',
138
+ time: Date.now() - startTime,
139
+ success: true,
140
+ code: 'SUCCESS',
141
+ msg: '',
142
+ traceId: traceId
143
+ }).send();
131
144
  return _context.abrupt("return", resData);
132
- case 26:
133
- _context.prev = 26;
134
- _context.t0 = _context["catch"](11);
145
+ case 25:
146
+ _context.prev = 25;
147
+ _context.t0 = _context["catch"](5);
135
148
  _error = safeJson(_context.t0 === null || _context.t0 === void 0 ? void 0 : _context.t0.message, {
136
149
  success: false,
137
150
  errorCode: errorEnum.SYSTEM,
138
- errorMessage: ''
151
+ errorMessage: _context.t0 === null || _context.t0 === void 0 ? void 0 : _context.t0.message
139
152
  });
140
153
  timeoutCode = _context.t0 !== null && _context.t0 !== void 0 && (_error$message = _context.t0.message) !== null && _error$message !== void 0 && _error$message.includes('timeout') ? errorEnum.TIMEOUT : '';
141
- errorCode = (_error === null || _error === void 0 ? void 0 : _error.errorCode) || timeoutCode;
154
+ _errorCode = (_error === null || _error === void 0 ? void 0 : _error.errorCode) || timeoutCode;
155
+ logger.reportRPC({
156
+ name: options === null || options === void 0 ? void 0 : options['Operation-Type'],
157
+ label: 'request',
158
+ time: Date.now() - startTime,
159
+ success: false,
160
+ code: _errorCode,
161
+ msg: _error === null || _error === void 0 ? void 0 : _error.message
162
+ }, {
163
+ // TODO Concerned input data
164
+ }).send();
142
165
  return _context.abrupt("return", Promise.reject({
143
166
  success: false,
144
- errorCode: errorCode,
145
- errorMessage: ''
167
+ errorCode: _errorCode,
168
+ errorMessage: _error === null || _error === void 0 ? void 0 : _error.message
146
169
  }));
147
170
  case 32:
148
171
  case "end":
149
172
  return _context.stop();
150
173
  }
151
- }, _callee, null, [[11, 26]]);
174
+ }, _callee, null, [[5, 25]]);
152
175
  }));
153
176
  return _request.apply(this, arguments);
154
177
  }
@@ -1,2 +1,10 @@
1
+ /**
2
+ * Copyright (c) 2022 International Business Group, Ant Group. All rights reserved.
3
+ *
4
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), the rights to use, copy, modify, merge, and/or distribute the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
5
+ * 1. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE; and
6
+ * 2. If applicable, the use of the Software is also subject to the terms and conditions of any non-disclosure agreement signed by you and the relevant Ant Group entity.
7
+ */
8
+ import { Logger } from '../util/logger';
1
9
  import { CashierSdkActionQueryRequest, CashierSdkActionQueryResult, IrequestConfig } from '../types';
2
- export declare function queryPaymentInfo(params?: CashierSdkActionQueryRequest, options?: IrequestConfig): Promise<CashierSdkActionQueryResult>;
10
+ export declare function queryPaymentInfo(params: CashierSdkActionQueryRequest, options: IrequestConfig, logger: Logger): Promise<CashierSdkActionQueryResult>;
@@ -14,12 +14,13 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
14
14
  * 1. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE; and
15
15
  * 2. If applicable, the use of the Software is also subject to the terms and conditions of any non-disclosure agreement signed by you and the relevant Ant Group entity.
16
16
  */
17
+
17
18
  import { request } from "../request";
18
- export function queryPaymentInfo(_x, _x2) {
19
+ export function queryPaymentInfo(_x, _x2, _x3) {
19
20
  return _queryPaymentInfo.apply(this, arguments);
20
21
  }
21
22
  function _queryPaymentInfo() {
22
- _queryPaymentInfo = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(params, options) {
23
+ _queryPaymentInfo = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(params, options, logger) {
23
24
  var hostSign;
24
25
  return _regeneratorRuntime().wrap(function _callee$(_context) {
25
26
  while (1) switch (_context.prev = _context.next) {
@@ -29,7 +30,7 @@ function _queryPaymentInfo() {
29
30
  hostSign: hostSign,
30
31
  needEnvInfo: true,
31
32
  'Operation-Type': 'com.ipay.iexpcashier.sdkAction.query'
32
- })));
33
+ }), logger));
33
34
  case 2:
34
35
  case "end":
35
36
  return _context.stop();
@@ -22,6 +22,7 @@ export interface IoptionsParams {
22
22
  analytics?: {
23
23
  enabled: boolean;
24
24
  };
25
+ securityConfig?: IsecurityConfig;
25
26
  }
26
27
  export type Iselector = string;
27
28
  export declare enum renderDisplayTypeEnum {
@@ -58,7 +59,9 @@ export declare enum paymentMethodCategoryTypeEnum {
58
59
  }
59
60
  export interface IcreateComponent {
60
61
  sessionData: string;
62
+ paymentSessionData?: string;
61
63
  appearance?: Record<string, any>;
64
+ notRedirectAfterComplete?: boolean;
62
65
  }
63
66
  export interface IappendIframeNodesParams extends IcreateComponent {
64
67
  paymentSessionMetaData: IpaymentSessionMetaData;
@@ -81,16 +84,19 @@ interface IpaymentSessionConfig {
81
84
  paymentMethodCategoryType: paymentMethodCategoryTypeEnum;
82
85
  productSceneVersion: string;
83
86
  }
84
- interface IpaymentSecurityConfig {
87
+ export interface IpaymentSecurityConfig {
85
88
  appId: string;
86
89
  appName: string;
87
90
  bizToken: string;
88
91
  gateway: string;
89
92
  h5gateway: string;
90
- tokenCollectTime: string;
93
+ tokenCollectTime?: string;
94
+ dataPollingInterval?: string;
91
95
  workSpaceId: string;
92
96
  }
93
97
  export interface IpaymentSessionMetaData {
98
+ clientId?: string;
99
+ renderDisplayType?: string;
94
100
  paymentSessionConfig?: IpaymentSessionConfig;
95
101
  securityConfig?: IpaymentSecurityConfig;
96
102
  moneyView?: any;
@@ -143,6 +149,16 @@ export declare enum platformEnum {
143
149
  desktop = "desktop",
144
150
  mobile = "mobile"
145
151
  }
152
+ type EventCallbackResult = {
153
+ result: {
154
+ resultCode: string;
155
+ resultStatus: string;
156
+ resultMessage: string;
157
+ };
158
+ paymentResultCode?: string;
159
+ paymentResultMessage?: string;
160
+ paymentStatus?: string;
161
+ } & Record<string, any>;
146
162
  /**
147
163
  * @description Create an event handler, called when an error occurs in AMSCheckout.
148
164
  */
@@ -163,7 +179,8 @@ export type callOnLog = (state: {
163
179
  */
164
180
  export type callOnEventCallback = (state: {
165
181
  code: string;
166
- message: string;
182
+ message?: string;
183
+ result?: EventCallbackResult;
167
184
  }) => void;
168
185
  export type callonPaymentMethodSelected = (state: {
169
186
  paymentMethodType: string;
@@ -234,15 +251,15 @@ export interface IrequestConfig {
234
251
  beforerRequest?: () => void;
235
252
  afterRequest?: () => void;
236
253
  needEnvInfo?: boolean;
237
- needDeviceId?: boolean;
238
- waitTime?: string;
239
254
  locale?: string;
240
255
  hostSign?: string;
256
+ envInfo?: Record<string, any>;
241
257
  }
242
258
  export interface CashierSdkActionQueryRequest {
243
259
  paymentSessionData: string;
244
260
  paymentSessionConfig?: IpaymentSessionConfig;
245
261
  paymentMethodType?: string;
262
+ notRedirectAfterComplete?: boolean;
246
263
  extParams?: any;
247
264
  }
248
265
  export interface CashierSdkActionQueryResult {
@@ -272,6 +289,27 @@ export declare enum eventCodeEnum {
272
289
  SDK_CALL_URL_ERROR = "SDK_CALL_URL_ERROR",
273
290
  SDK_CALL_URL_SUCCESS = "SDK_CALL_URL_SUCCESS"
274
291
  }
292
+ export interface ThreedData {
293
+ data: any;
294
+ method: string;
295
+ targetUrl: string;
296
+ pti?: number;
297
+ pt?: number;
298
+ }
299
+ export declare enum SecuritySceneEnum {
300
+ CARD = "CARD",
301
+ EASYPAY = "EASYPAY"
302
+ }
303
+ export interface IsecurityConfig {
304
+ scene: string;
305
+ region: string;
306
+ }
307
+ export declare enum RedirectType {
308
+ ApplinkUrl = "ApplinkUrl",
309
+ SchemeUrl = "SchemeUrl",
310
+ NormalUrl = "NormalUrl",
311
+ Unknown = "Unknown"
312
+ }
275
313
  declare global {
276
314
  interface Window {
277
315
  [key: string]: any;
@@ -80,6 +80,7 @@ export var platformEnum = /*#__PURE__*/function (platformEnum) {
80
80
  platformEnum["mobile"] = "mobile";
81
81
  return platformEnum;
82
82
  }({});
83
+
83
84
  /**
84
85
  * @description Create an event handler, called when an error occurs in AMSCheckout.
85
86
  */
@@ -133,4 +134,16 @@ export var eventCodeEnum = /*#__PURE__*/function (eventCodeEnum) {
133
134
  eventCodeEnum["SDK_CALL_URL_ERROR"] = "SDK_CALL_URL_ERROR";
134
135
  eventCodeEnum["SDK_CALL_URL_SUCCESS"] = "SDK_CALL_URL_SUCCESS";
135
136
  return eventCodeEnum;
137
+ }({});
138
+ export var SecuritySceneEnum = /*#__PURE__*/function (SecuritySceneEnum) {
139
+ SecuritySceneEnum["CARD"] = "CARD";
140
+ SecuritySceneEnum["EASYPAY"] = "EASYPAY";
141
+ return SecuritySceneEnum;
142
+ }({});
143
+ export var RedirectType = /*#__PURE__*/function (RedirectType) {
144
+ RedirectType["ApplinkUrl"] = "ApplinkUrl";
145
+ RedirectType["SchemeUrl"] = "SchemeUrl";
146
+ RedirectType["NormalUrl"] = "NormalUrl";
147
+ RedirectType["Unknown"] = "Unknown";
148
+ return RedirectType;
136
149
  }({});
@@ -0,0 +1,55 @@
1
+ interface LogPayload {
2
+ title?: string;
3
+ msg?: string;
4
+ name?: string;
5
+ label?: string;
6
+ time?: number;
7
+ success?: boolean;
8
+ code?: string;
9
+ traceId?: string;
10
+ }
11
+ type Extra = Record<string, string>;
12
+ export interface LogMetaData {
13
+ platform?: string;
14
+ sdkVersion?: string;
15
+ fistLogTime?: number;
16
+ fsDuration?: number;
17
+ instanceId?: string;
18
+ storageId?: string;
19
+ renderDisplayType?: string;
20
+ merchantId?: string;
21
+ productScene?: string;
22
+ productSceneVersion?: string;
23
+ paymentMethodType?: string;
24
+ paymentMethodCategoryType?: string;
25
+ }
26
+ interface Config {
27
+ scriptUrl: string;
28
+ spmConfig: object;
29
+ appId: string;
30
+ server?: string;
31
+ bizType: string;
32
+ batchCount: number;
33
+ productId: string;
34
+ mdata?: LogMetaData;
35
+ version?: string;
36
+ }
37
+ export declare class Logger {
38
+ private logs;
39
+ private config;
40
+ private debug;
41
+ private componentStartTime;
42
+ private isLoaded;
43
+ constructor(config: Config, debug: boolean);
44
+ setMedta(mdata: LogMetaData): void;
45
+ logError(error: LogPayload, extra?: Extra): Logger;
46
+ logInfo(info: LogPayload, extra?: Extra): Logger;
47
+ reportRPC(rpcData: LogPayload, extra?: Extra): Logger;
48
+ reportLogs(): void;
49
+ loadScript(url: string, callback: () => void): void;
50
+ initTracker(): void;
51
+ send(): void;
52
+ setComponentStartTime(val: number): void;
53
+ }
54
+ export declare const LogConfig: Config;
55
+ export {};
@@ -0,0 +1,177 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
5
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
6
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
7
+ 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; }
8
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
9
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
10
+ export var Logger = /*#__PURE__*/function () {
11
+ function Logger(config, debug) {
12
+ _classCallCheck(this, Logger);
13
+ _defineProperty(this, "logs", void 0);
14
+ _defineProperty(this, "config", void 0);
15
+ _defineProperty(this, "debug", void 0);
16
+ _defineProperty(this, "componentStartTime", void 0);
17
+ _defineProperty(this, "isLoaded", void 0);
18
+ this.logs = [];
19
+ this.config = config;
20
+ this.debug = debug;
21
+ this.componentStartTime = 0;
22
+ this.isLoaded = false;
23
+ }
24
+ _createClass(Logger, [{
25
+ key: "setMedta",
26
+ value: function setMedta(mdata) {
27
+ var _window,
28
+ _this = this;
29
+ this.config.mdata = Object.assign(this.config.mdata, mdata);
30
+ if ((_window = window) !== null && _window !== void 0 && _window.iTracker) {
31
+ var _window2;
32
+ (_window2 = window) === null || _window2 === void 0 || (_window2 = _window2.iTracker) === null || _window2 === void 0 || _window2.set(this.config.mdata);
33
+ setTimeout(function () {
34
+ _this.reportLogs();
35
+ }, 80);
36
+ } else {
37
+ this.initTracker();
38
+ }
39
+ }
40
+ }, {
41
+ key: "logError",
42
+ value: function logError(error, extra) {
43
+ this.logs.push({
44
+ type: 'error',
45
+ logPayload: error,
46
+ extra: extra
47
+ });
48
+ if (this.debug) {
49
+ console.error(error);
50
+ }
51
+ return this;
52
+ }
53
+ }, {
54
+ key: "logInfo",
55
+ value: function logInfo(info, extra) {
56
+ this.logs.push({
57
+ type: 'info',
58
+ logPayload: info,
59
+ extra: extra
60
+ });
61
+ if (this.debug) {
62
+ console.log(info);
63
+ }
64
+ return this;
65
+ }
66
+ }, {
67
+ key: "reportRPC",
68
+ value: function reportRPC(rpcData, extra) {
69
+ this.logs.push({
70
+ type: 'rpc',
71
+ logPayload: rpcData,
72
+ extra: extra
73
+ });
74
+ if (this.debug) {
75
+ console.log(rpcData);
76
+ }
77
+ return this;
78
+ }
79
+ }, {
80
+ key: "reportLogs",
81
+ value: function reportLogs() {
82
+ var _window3;
83
+ if (!((_window3 = window) !== null && _window3 !== void 0 && _window3.iTracker)) {
84
+ return;
85
+ }
86
+ var _window$iTracker = window.iTracker,
87
+ logError = _window$iTracker.logError,
88
+ logInfo = _window$iTracker.logInfo,
89
+ reportRPC = _window$iTracker.reportRPC;
90
+ var logs = this.logs;
91
+ var now = Date.now();
92
+ var fsDuration = now - this.componentStartTime;
93
+ while (logs.length > 0) {
94
+ try {
95
+ var log = logs.pop();
96
+ if (log.type === 'error') {
97
+ logError(log.logPayload, _objectSpread({
98
+ fsDuration: fsDuration,
99
+ timeStamp: now
100
+ }, log === null || log === void 0 ? void 0 : log.extra));
101
+ } else if (log.type === 'info') {
102
+ logInfo(log.logPayload, _objectSpread({
103
+ fsDuration: fsDuration,
104
+ timeStamp: now
105
+ }, log === null || log === void 0 ? void 0 : log.extra));
106
+ } else if (log.type === 'rpc') {
107
+ reportRPC(log.logPayload, _objectSpread({
108
+ fsDuration: fsDuration,
109
+ timeStamp: now
110
+ }, log === null || log === void 0 ? void 0 : log.extra));
111
+ }
112
+ } catch (error) {
113
+ console.error('Error occurred while calling iTracker method:', error);
114
+ }
115
+ }
116
+ }
117
+ }, {
118
+ key: "loadScript",
119
+ value: function loadScript(url, callback) {
120
+ var script = document.createElement('script');
121
+ script.type = 'text/javascript';
122
+ script.src = url;
123
+ script.onload = callback;
124
+ script.onerror = function () {
125
+ console.error("unable to load Antom script: ".concat(url));
126
+ };
127
+ document.body.appendChild(script);
128
+ }
129
+ }, {
130
+ key: "initTracker",
131
+ value: function initTracker() {
132
+ var _this2 = this;
133
+ if (this.isLoaded) return;
134
+ this.isLoaded = true;
135
+ this.loadScript(this.config.scriptUrl, function () {
136
+ try {
137
+ var _window4;
138
+ (_window4 = window) === null || _window4 === void 0 || _window4.iTracker.initiTracker(_this2.config);
139
+ setTimeout(function () {
140
+ _this2.reportLogs();
141
+ }, 80);
142
+ } catch (error) {
143
+ console.error('Failed to initialize iTracker:', error);
144
+ }
145
+ });
146
+ }
147
+ }, {
148
+ key: "send",
149
+ value: function send() {
150
+ var _window5;
151
+ if ((_window5 = window) !== null && _window5 !== void 0 && _window5.iTracker) {
152
+ this.reportLogs();
153
+ } else {
154
+ this.initTracker();
155
+ }
156
+ }
157
+ }, {
158
+ key: "setComponentStartTime",
159
+ value: function setComponentStartTime(val) {
160
+ this.componentStartTime = val;
161
+ }
162
+ }]);
163
+ return Logger;
164
+ }();
165
+ export var LogConfig = {
166
+ scriptUrl: 'https://gw.alipayobjects.com/render/p/yuyan_npm/@alipay_intl-tracker/1.6.0/dist/common.min.js',
167
+ spmConfig: {},
168
+ batchCount: 1,
169
+ appId: 'antom_sdk',
170
+ server: 'https://imdap-sea.alipay.com/loggw/dwcookieLogGet.do',
171
+ bizType: 'antom_sdk',
172
+ productId: 'ANTOM_SDK',
173
+ version: 'iteration/20231021',
174
+ mdata: {
175
+ fistLogTime: Date.now()
176
+ }
177
+ };
@@ -1,3 +1,4 @@
1
+ import type { IpaymentSecurityConfig, IsecurityConfig } from '../types';
1
2
  export declare const securityHost: {
2
3
  SG: string;
3
4
  US: string;
@@ -5,8 +6,10 @@ export declare const securityHost: {
5
6
  };
6
7
  export declare const getSecurityHost: (region: string) => string;
7
8
  export declare const appName: {
8
- Card: string;
9
- EasyPay: string;
9
+ CARD: string;
10
+ EASYPAY: string;
10
11
  };
12
+ export declare const initAPSecurity: (securityConfig: IsecurityConfig, successCallback: any, failCallback: any) => void;
13
+ export declare const initSecuritySDK: (appName: string, h5gateway: string, successCallback: () => void, failCallback: (errMsg?: string) => void) => void;
11
14
  export declare const getAppname: (scene: string) => string;
12
- export declare const getApdidToken: (scene: string, waitTime?: string) => Promise<string>;
15
+ export declare const getApdidToken: (scene: string, securityConfig?: IpaymentSecurityConfig) => Promise<string>;