@alipay/ams-checkout 0.0.1697942541-dev.1 → 0.0.1697942541-dev.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/umd/ams-checkout.min.js +1 -1
- package/esm/config/index.d.ts +1 -1
- package/esm/config/index.js +4 -4
- package/esm/constant/index.d.ts +12 -0
- package/esm/constant/index.js +12 -0
- package/esm/core/component/index.js +3 -0
- package/esm/core/instance/index.d.ts +13 -1
- package/esm/core/instance/index.js +76 -3
- package/esm/plugin/component/cashierApp.js +2 -2
- package/esm/plugin/component/index.d.ts +9 -2
- package/esm/plugin/component/index.js +378 -168
- package/esm/plugin/component/popupWindow.style.d.ts +6 -1
- package/esm/plugin/component/popupWindow.style.js +21 -11
- package/esm/request/index.d.ts +2 -1
- package/esm/request/index.js +57 -34
- package/esm/service/index.d.ts +9 -1
- package/esm/service/index.js +4 -3
- package/esm/types/index.d.ts +32 -8
- package/esm/types/index.js +12 -0
- package/esm/util/logger.d.ts +55 -0
- package/esm/util/logger.js +177 -0
- package/esm/util/security.d.ts +6 -3
- package/esm/util/security.js +96 -73
- package/package.json +1 -1
@@ -1,33 +1,46 @@
|
|
1
1
|
import { AMSPOPUP_PREFIX, ANIMATION_TIME } from "../../constant";
|
2
2
|
|
3
3
|
// CSS样式字符串
|
4
|
-
var modalStyles = "\n .".concat(AMSPOPUP_PREFIX, "modal {\n /* \u6DFB\u52A0\u5F39\u7A97\u6837\u5F0F */\n
|
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
5
|
|
6
6
|
// 创建和插入样式表
|
7
|
-
var insertStyleSheet = function insertStyleSheet() {
|
7
|
+
export var insertStyleSheet = function insertStyleSheet() {
|
8
8
|
var style = document.createElement('style');
|
9
9
|
style.innerHTML = modalStyles;
|
10
10
|
document.head.appendChild(style);
|
11
11
|
};
|
12
12
|
|
13
13
|
// 插入弹窗
|
14
|
-
var createModal = function createModal() {
|
14
|
+
export var createModal = function createModal(_ref) {
|
15
|
+
var device = _ref.device,
|
16
|
+
url = _ref.url;
|
15
17
|
var overlay = document.createElement('div');
|
16
18
|
overlay.classList.add("".concat(AMSPOPUP_PREFIX, "overlay"), "".concat(AMSPOPUP_PREFIX, "fadeIn"));
|
17
19
|
var modal = document.createElement('div');
|
18
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
|
+
}
|
19
30
|
var iframe = document.createElement('iframe');
|
20
|
-
iframe.src =
|
31
|
+
iframe.src = url; // 替换为实际的 URL 地址
|
21
32
|
iframe.style.border = 'none';
|
22
33
|
iframe.style.width = '100%';
|
23
34
|
iframe.style.height = '100%';
|
24
35
|
modal.appendChild(iframe);
|
25
|
-
document.body
|
26
|
-
|
36
|
+
var body = document.getElementsByTagName('body')[0];
|
37
|
+
body.appendChild(overlay);
|
38
|
+
body.appendChild(modal);
|
39
|
+
return iframe;
|
27
40
|
};
|
28
41
|
|
29
42
|
// 销毁弹窗
|
30
|
-
var destroyModal = function destroyModal() {
|
43
|
+
export var destroyModal = function destroyModal() {
|
31
44
|
var overlay = document.querySelector(".".concat(AMSPOPUP_PREFIX, "overlay"));
|
32
45
|
var modal = document.querySelector(".".concat(AMSPOPUP_PREFIX, "modal"));
|
33
46
|
overlay.classList.remove("".concat(AMSPOPUP_PREFIX, "fadeIn"));
|
@@ -38,7 +51,4 @@ var destroyModal = function destroyModal() {
|
|
38
51
|
overlay.parentNode.removeChild(overlay);
|
39
52
|
modal.parentNode.removeChild(modal);
|
40
53
|
}, ANIMATION_TIME);
|
41
|
-
};
|
42
|
-
|
43
|
-
// 在插入弹窗之前先插入样式表
|
44
|
-
insertStyleSheet();
|
54
|
+
};
|
package/esm/request/index.d.ts
CHANGED
@@ -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>;
|
package/esm/request/index.js
CHANGED
@@ -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
|
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
|
-
|
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
|
-
|
88
|
-
|
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
|
-
|
109
|
-
_context.
|
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
|
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 =
|
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:
|
127
|
-
errorCode:
|
130
|
+
errorMessage: errorMessage,
|
131
|
+
errorCode: errorCode,
|
128
132
|
success: false
|
129
133
|
}));
|
130
|
-
case
|
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
|
133
|
-
_context.prev =
|
134
|
-
_context.t0 = _context["catch"](
|
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
|
-
|
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:
|
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, [[
|
174
|
+
}, _callee, null, [[5, 25]]);
|
152
175
|
}));
|
153
176
|
return _request.apply(this, arguments);
|
154
177
|
}
|
package/esm/service/index.d.ts
CHANGED
@@ -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
|
10
|
+
export declare function queryPaymentInfo(params: CashierSdkActionQueryRequest, options: IrequestConfig, logger: Logger): Promise<CashierSdkActionQueryResult>;
|
package/esm/service/index.js
CHANGED
@@ -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();
|
package/esm/types/index.d.ts
CHANGED
@@ -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 {
|
@@ -68,12 +69,12 @@ export interface IappendIframeNodesParams extends IcreateComponent {
|
|
68
69
|
selector?: Iselector;
|
69
70
|
}
|
70
71
|
export interface IbillingAddress {
|
71
|
-
region
|
72
|
-
address1
|
72
|
+
region?: string;
|
73
|
+
address1?: string;
|
73
74
|
address2?: string;
|
74
|
-
city
|
75
|
+
city?: string;
|
75
76
|
state?: string;
|
76
|
-
zipCode
|
77
|
+
zipCode?: string;
|
77
78
|
}
|
78
79
|
export interface Isubmit {
|
79
80
|
billingAddress?: IbillingAddress;
|
@@ -83,16 +84,19 @@ interface IpaymentSessionConfig {
|
|
83
84
|
paymentMethodCategoryType: paymentMethodCategoryTypeEnum;
|
84
85
|
productSceneVersion: string;
|
85
86
|
}
|
86
|
-
interface IpaymentSecurityConfig {
|
87
|
+
export interface IpaymentSecurityConfig {
|
87
88
|
appId: string;
|
88
89
|
appName: string;
|
89
90
|
bizToken: string;
|
90
91
|
gateway: string;
|
91
92
|
h5gateway: string;
|
92
|
-
tokenCollectTime
|
93
|
+
tokenCollectTime?: string;
|
94
|
+
dataPollingInterval?: string;
|
93
95
|
workSpaceId: string;
|
94
96
|
}
|
95
97
|
export interface IpaymentSessionMetaData {
|
98
|
+
clientId?: string;
|
99
|
+
renderDisplayType?: string;
|
96
100
|
paymentSessionConfig?: IpaymentSessionConfig;
|
97
101
|
securityConfig?: IpaymentSecurityConfig;
|
98
102
|
moneyView?: any;
|
@@ -247,10 +251,9 @@ export interface IrequestConfig {
|
|
247
251
|
beforerRequest?: () => void;
|
248
252
|
afterRequest?: () => void;
|
249
253
|
needEnvInfo?: boolean;
|
250
|
-
needDeviceId?: boolean;
|
251
|
-
waitTime?: string;
|
252
254
|
locale?: string;
|
253
255
|
hostSign?: string;
|
256
|
+
envInfo?: Record<string, any>;
|
254
257
|
}
|
255
258
|
export interface CashierSdkActionQueryRequest {
|
256
259
|
paymentSessionData: string;
|
@@ -286,6 +289,27 @@ export declare enum eventCodeEnum {
|
|
286
289
|
SDK_CALL_URL_ERROR = "SDK_CALL_URL_ERROR",
|
287
290
|
SDK_CALL_URL_SUCCESS = "SDK_CALL_URL_SUCCESS"
|
288
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
|
+
}
|
289
313
|
declare global {
|
290
314
|
interface Window {
|
291
315
|
[key: string]: any;
|
package/esm/types/index.js
CHANGED
@@ -134,4 +134,16 @@ export var eventCodeEnum = /*#__PURE__*/function (eventCodeEnum) {
|
|
134
134
|
eventCodeEnum["SDK_CALL_URL_ERROR"] = "SDK_CALL_URL_ERROR";
|
135
135
|
eventCodeEnum["SDK_CALL_URL_SUCCESS"] = "SDK_CALL_URL_SUCCESS";
|
136
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;
|
137
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
|
+
};
|
package/esm/util/security.d.ts
CHANGED
@@ -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
|
-
|
9
|
-
|
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,
|
15
|
+
export declare const getApdidToken: (scene: string, securityConfig?: IpaymentSecurityConfig) => Promise<string>;
|