@alipay/ams-checkout 0.0.1742382470-dev.4 → 0.0.1743078169-dev.3
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/component/component.inline.style.js +1 -1
- package/esm/component/popupWindow.style.js +4 -1
- package/esm/constant/index.d.ts +3 -0
- package/esm/constant/index.js +3 -0
- package/esm/core/component/element/elementContainerService/containerService.d.ts +29 -0
- package/esm/core/component/element/elementContainerService/containerService.js +101 -0
- package/esm/core/component/element/elementContainerService/index.d.ts +19 -0
- package/esm/core/component/element/elementContainerService/index.js +55 -0
- package/esm/core/component/element/elementController/index.d.ts +22 -0
- package/esm/core/component/element/elementController/index.js +364 -0
- package/esm/core/component/element/elementProcessor/addressProcessor.d.ts +17 -0
- package/esm/core/component/element/elementProcessor/addressProcessor.js +122 -0
- package/esm/core/component/element/elementProcessor/authProcessor.d.ts +14 -0
- package/esm/core/component/element/elementProcessor/authProcessor.js +70 -0
- package/esm/core/component/element/elementProcessor/baseElementProcessor.d.ts +36 -0
- package/esm/core/component/element/elementProcessor/baseElementProcessor.js +79 -0
- package/esm/core/component/element/elementProcessor/paymentProcessor.d.ts +17 -0
- package/esm/core/component/element/elementProcessor/paymentProcessor.js +179 -0
- package/esm/core/component/element/index.d.ts +8 -46
- package/esm/core/component/element/index.js +28 -922
- package/esm/core/component/element/type.d.ts +29 -1
- package/esm/core/component/element/util.d.ts +58 -0
- package/esm/core/component/element/util.js +321 -0
- package/esm/core/component/index.d.ts +5 -1
- package/esm/core/component/index.js +1 -2
- package/esm/core/component/oldElement/index.d.ts +59 -0
- package/esm/core/component/oldElement/index.js +956 -0
- package/esm/core/component/oldElement/type.d.ts +351 -0
- package/esm/core/component/oldElement/type.js +81 -0
- package/esm/foundation/core/index.d.ts +6 -1
- package/esm/foundation/core/index.js +68 -34
- package/esm/foundation/index.d.ts +7 -0
- package/esm/foundation/index.js +10 -2
- package/esm/foundation/product-processor/element/index.d.ts +7 -0
- package/esm/foundation/product-processor/element/index.js +24 -0
- package/esm/foundation/service/container/index.d.ts +6 -3
- package/esm/foundation/service/container/index.js +19 -7
- package/esm/foundation/service/container/popup.d.ts +1 -1
- package/esm/foundation/service/event-center.js +1 -0
- package/esm/index.js +1 -0
- package/esm/plugin/component/cashierApp.d.ts +1 -1
- package/esm/plugin/component/index.js +1 -1
- package/esm/types/index.d.ts +1 -1
- package/esm/types/index.js +1 -1
- package/package.json +1 -1
- /package/esm/core/component/{element → oldElement}/components/address.d.ts +0 -0
- /package/esm/core/component/{element → oldElement}/components/address.js +0 -0
- /package/esm/core/component/{element → oldElement}/components/auth.d.ts +0 -0
- /package/esm/core/component/{element → oldElement}/components/auth.js +0 -0
- /package/esm/core/component/{element → oldElement}/components/payment.d.ts +0 -0
- /package/esm/core/component/{element → oldElement}/components/payment.js +0 -0
- /package/esm/core/component/{element → oldElement}/mock.d.ts +0 -0
- /package/esm/core/component/{element → oldElement}/mock.js +0 -0
- /package/esm/core/component/{element → oldElement}/utils.d.ts +0 -0
- /package/esm/core/component/{element → oldElement}/utils.js +0 -0
@@ -1,4 +1,7 @@
|
|
1
|
-
import { ActionForm, ConnectErrorCode, IAmount, IAmountView, IPaymentMethod } from '../../../types';
|
1
|
+
import { ActionForm, ConnectErrorCode, IAmount, IAmountView, IMerchantAppointParam, IPaymentMethod } from '../../../types';
|
2
|
+
import AddressProcessor from './elementProcessor/addressProcessor';
|
3
|
+
import AuthProcessor from './elementProcessor/authProcessor';
|
4
|
+
import PaymentProcessor from './elementProcessor/paymentProcessor';
|
2
5
|
export declare enum ElementPaymentEvent {
|
3
6
|
RENDER_COMPONENT = "renderComponent",
|
4
7
|
CAPTURE_ASSET = "onCaptureAsset",
|
@@ -160,6 +163,8 @@ export interface PaymentMountOptions extends BaseMountOptions {
|
|
160
163
|
'radius-button': string;
|
161
164
|
};
|
162
165
|
};
|
166
|
+
notRedirectAfterComplete?: boolean;
|
167
|
+
merchantAppointParam?: IMerchantAppointParam;
|
163
168
|
}
|
164
169
|
export declare enum AddressEventCallbackName {
|
165
170
|
SHIPPING_CHANGE = "SHIPPING_CHANGE"
|
@@ -347,4 +352,27 @@ export interface AccountQueryResult {
|
|
347
352
|
errorStatus?: string;
|
348
353
|
shippingInfo?: CKPShipping;
|
349
354
|
}
|
355
|
+
export interface IElementOptions {
|
356
|
+
sessionData: string;
|
357
|
+
environment?: ELEMENT_ENVIRONMENT_TYPE;
|
358
|
+
locale?: string;
|
359
|
+
version?: string;
|
360
|
+
appearance?: {
|
361
|
+
theme: ThemeType.Default | ThemeType.Night;
|
362
|
+
};
|
363
|
+
onEventCallback?: ({ code, message, result }: {
|
364
|
+
code: EventCallbackCode;
|
365
|
+
message: string;
|
366
|
+
result?: any;
|
367
|
+
}) => void;
|
368
|
+
loading?: {
|
369
|
+
onStartLoading: () => void;
|
370
|
+
onEndLoading: () => void;
|
371
|
+
};
|
372
|
+
}
|
373
|
+
export interface IElementProcessors {
|
374
|
+
[ElementType.auth]: AuthProcessor;
|
375
|
+
[ElementType.address]: AddressProcessor;
|
376
|
+
[ElementType.payment]: PaymentProcessor;
|
377
|
+
}
|
350
378
|
export {};
|
@@ -0,0 +1,58 @@
|
|
1
|
+
import { IElementStatus } from '../../../foundation';
|
2
|
+
import { Ianalytics, IPaymentSessionMetaData } from '../../../types';
|
3
|
+
import { ContainerController } from './elementContainerService/containerService';
|
4
|
+
import { ELEMENT_ENVIRONMENT_TYPE, IElementOptions } from './type';
|
5
|
+
declare const formatElementOption: (options: IElementOptions) => {
|
6
|
+
environment: ELEMENT_ENVIRONMENT_TYPE;
|
7
|
+
locale?: string;
|
8
|
+
version?: string;
|
9
|
+
appearance?: {
|
10
|
+
theme: import("./type").ThemeType.Default | import("./type").ThemeType.Night;
|
11
|
+
};
|
12
|
+
onEventCallback?: ({ code, message, result }: {
|
13
|
+
code: import("./type").EventCallbackCode;
|
14
|
+
message: string;
|
15
|
+
result?: any;
|
16
|
+
}) => void;
|
17
|
+
loading?: {
|
18
|
+
onStartLoading: () => void;
|
19
|
+
onEndLoading: () => void;
|
20
|
+
};
|
21
|
+
sessionData: string;
|
22
|
+
};
|
23
|
+
/**
|
24
|
+
* 校验渲染条件
|
25
|
+
* 校验当前sdkSelector结点是否存在
|
26
|
+
*/
|
27
|
+
export declare function checkCanMount({ sdkSelector, status }: {
|
28
|
+
sdkSelector: string;
|
29
|
+
status: IElementStatus;
|
30
|
+
}): {
|
31
|
+
success: boolean;
|
32
|
+
errorMsg?: string;
|
33
|
+
};
|
34
|
+
export declare function checkCanUpdate({ status, paymentContainerService, newPaymentSessionData, oldPaymentSessionData, }: {
|
35
|
+
status: IElementStatus;
|
36
|
+
paymentContainerService: ContainerController;
|
37
|
+
newPaymentSessionData: string;
|
38
|
+
oldPaymentSessionData: string;
|
39
|
+
}): boolean;
|
40
|
+
export declare function generateIframeSrc({ paymentSessionObj, paymentSession, instanceId, environment, appVersion, analytics, locale, pageUrl, link, }: {
|
41
|
+
paymentSessionObj: IPaymentSessionMetaData;
|
42
|
+
paymentSession: string;
|
43
|
+
environment: string;
|
44
|
+
analytics: Ianalytics;
|
45
|
+
locale: string;
|
46
|
+
instanceId: string;
|
47
|
+
pageUrl: string;
|
48
|
+
appVersion: string;
|
49
|
+
link?: string;
|
50
|
+
}): string;
|
51
|
+
export declare function handleRedirect(data: any, fromFastSdk?: boolean): void;
|
52
|
+
export declare function redirect(data: {
|
53
|
+
normalUrl?: string;
|
54
|
+
schemeUrl?: string;
|
55
|
+
applinkUrl?: string;
|
56
|
+
callAppJudgeTime?: number;
|
57
|
+
}): Promise<void>;
|
58
|
+
export { formatElementOption };
|
@@ -0,0 +1,321 @@
|
|
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 _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
3
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
4
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
5
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
6
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
7
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
8
|
+
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; }
|
9
|
+
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; }
|
10
|
+
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; }
|
11
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
12
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
13
|
+
import { IElementStatus } from "../../../foundation";
|
14
|
+
import { ERRORMESSAGE } from "../../../constant";
|
15
|
+
import { getIframeUrl } from "../../../plugin/component/cashierApp";
|
16
|
+
import { DisplayTypeEnum, RedirectType, TargetEnum, terminalTypeEnum } from "../../../types";
|
17
|
+
import { device } from "../../../util/index";
|
18
|
+
import CallApp from "../../../util/intl-callapp/es/main";
|
19
|
+
import { getComponentSign, parseSessionData } from "../index";
|
20
|
+
import { ELEMENT_ENVIRONMENT } from "./type";
|
21
|
+
var formatElementOption = function formatElementOption(options) {
|
22
|
+
var environment = options.environment;
|
23
|
+
return _objectSpread(_objectSpread({}, options), {}, {
|
24
|
+
environment: (environment || ELEMENT_ENVIRONMENT.PROD).toLocaleLowerCase()
|
25
|
+
});
|
26
|
+
};
|
27
|
+
|
28
|
+
/**
|
29
|
+
* 校验渲染条件
|
30
|
+
* 校验当前sdkSelector结点是否存在
|
31
|
+
*/
|
32
|
+
export function checkCanMount(_ref) {
|
33
|
+
var sdkSelector = _ref.sdkSelector,
|
34
|
+
status = _ref.status;
|
35
|
+
// 校验当前 sdkSelector 结点是否存在
|
36
|
+
var element = document.querySelector(sdkSelector);
|
37
|
+
if (!element) {
|
38
|
+
console.error("Element with selector ".concat(sdkSelector, " not found."));
|
39
|
+
return {
|
40
|
+
success: false,
|
41
|
+
errorMsg: "Element with selector ".concat(sdkSelector, " not found.")
|
42
|
+
};
|
43
|
+
}
|
44
|
+
if (status === IElementStatus.DESTROYED) {
|
45
|
+
return {
|
46
|
+
success: false,
|
47
|
+
errorMsg: "Creating components in the destroyed state is forbidden."
|
48
|
+
};
|
49
|
+
}
|
50
|
+
if (status !== IElementStatus.READY) {
|
51
|
+
return {
|
52
|
+
success: false,
|
53
|
+
errorMsg: "SDK status error."
|
54
|
+
};
|
55
|
+
}
|
56
|
+
return {
|
57
|
+
success: true
|
58
|
+
};
|
59
|
+
}
|
60
|
+
export function checkCanUpdate(_ref2) {
|
61
|
+
var _oldParseData$connect, _newParseData$connect;
|
62
|
+
var status = _ref2.status,
|
63
|
+
paymentContainerService = _ref2.paymentContainerService,
|
64
|
+
newPaymentSessionData = _ref2.newPaymentSessionData,
|
65
|
+
oldPaymentSessionData = _ref2.oldPaymentSessionData;
|
66
|
+
// 检查当前容器的状态是否为 IElementStatus.IN_BIZ_FLOW
|
67
|
+
if (status !== IElementStatus.IN_BIZ_FLOW) {
|
68
|
+
return false;
|
69
|
+
}
|
70
|
+
|
71
|
+
// 检查支付容器服务是否存在
|
72
|
+
if (!paymentContainerService) {
|
73
|
+
return false;
|
74
|
+
}
|
75
|
+
// 检查update前后的connect状态是否相同
|
76
|
+
var _parseSessionData = parseSessionData(oldPaymentSessionData),
|
77
|
+
_parseSessionData2 = _slicedToArray(_parseSessionData, 1),
|
78
|
+
oldParseData = _parseSessionData2[0];
|
79
|
+
var _parseSessionData3 = parseSessionData(newPaymentSessionData),
|
80
|
+
_parseSessionData4 = _slicedToArray(_parseSessionData3, 1),
|
81
|
+
newParseData = _parseSessionData4[0];
|
82
|
+
if (!(oldParseData !== null && oldParseData !== void 0 && oldParseData.connectFactor) || !(newParseData !== null && newParseData !== void 0 && newParseData.connectFactor)) {
|
83
|
+
return false;
|
84
|
+
}
|
85
|
+
if ((oldParseData === null || oldParseData === void 0 || (_oldParseData$connect = oldParseData.connectFactor) === null || _oldParseData$connect === void 0 ? void 0 : _oldParseData$connect.enableConnect) !== (newParseData === null || newParseData === void 0 || (_newParseData$connect = newParseData.connectFactor) === null || _newParseData$connect === void 0 ? void 0 : _newParseData$connect.enableConnect)) {
|
86
|
+
return false;
|
87
|
+
}
|
88
|
+
return true;
|
89
|
+
}
|
90
|
+
export function generateIframeSrc(_ref3) {
|
91
|
+
var _paymentSessionObj$pa, _paymentSessionObj$pa2;
|
92
|
+
var paymentSessionObj = _ref3.paymentSessionObj,
|
93
|
+
paymentSession = _ref3.paymentSession,
|
94
|
+
instanceId = _ref3.instanceId,
|
95
|
+
environment = _ref3.environment,
|
96
|
+
appVersion = _ref3.appVersion,
|
97
|
+
analytics = _ref3.analytics,
|
98
|
+
locale = _ref3.locale,
|
99
|
+
pageUrl = _ref3.pageUrl,
|
100
|
+
link = _ref3.link;
|
101
|
+
var componentSign = getComponentSign(paymentSessionObj);
|
102
|
+
var productSceneVersion = (paymentSessionObj === null || paymentSessionObj === void 0 || (_paymentSessionObj$pa = paymentSessionObj.paymentSessionConfig) === null || _paymentSessionObj$pa === void 0 ? void 0 : _paymentSessionObj$pa.productSceneVersion) || '';
|
103
|
+
var productScene = (paymentSessionObj === null || paymentSessionObj === void 0 || (_paymentSessionObj$pa2 = paymentSessionObj.paymentSessionConfig) === null || _paymentSessionObj$pa2 === void 0 ? void 0 : _paymentSessionObj$pa2.productScene) || '';
|
104
|
+
var extendInfo = (paymentSessionObj === null || paymentSessionObj === void 0 ? void 0 : paymentSessionObj.extendInfo) || '';
|
105
|
+
var mid = paymentSessionObj === null || paymentSessionObj === void 0 ? void 0 : paymentSessionObj.clientId;
|
106
|
+
var hostSign = (paymentSession || '').split('&&')[1] || '';
|
107
|
+
var baseUrl = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, ELEMENT_ENVIRONMENT.DEV, 'http://page.alipay.net/page/antom-web-checkout-v2'), ELEMENT_ENVIRONMENT.TEST, 'http://page.test.alipay.net/page/antom-web-checkout-v2'), ELEMENT_ENVIRONMENT.SIT, 'http://page.test.alipay.net/page/antom-web-checkout-v2'), ELEMENT_ENVIRONMENT.PRE, 'https://pre.ac.alipay.com/page/antom-web-checkout-v2'), ELEMENT_ENVIRONMENT.SANDBOX, 'https://checkout.antom.com'), ELEMENT_ENVIRONMENT.PROD, 'https://checkout.antom.com');
|
108
|
+
var _env = (environment === null || environment === void 0 ? void 0 : environment.toLocaleUpperCase()) || ELEMENT_ENVIRONMENT.DEV;
|
109
|
+
if (!link) {
|
110
|
+
link = "".concat(baseUrl[_env]).concat(pageUrl);
|
111
|
+
}
|
112
|
+
var _getIframeUrl = getIframeUrl({
|
113
|
+
renderDisplayType: DisplayTypeEnum.inline,
|
114
|
+
componentSign: componentSign,
|
115
|
+
analytics: analytics,
|
116
|
+
productScene: productScene,
|
117
|
+
productSceneVersion: productSceneVersion,
|
118
|
+
environment: environment,
|
119
|
+
appVersion: appVersion,
|
120
|
+
extendInfo: extendInfo,
|
121
|
+
locale: locale,
|
122
|
+
instanceId: instanceId,
|
123
|
+
hostSign: hostSign,
|
124
|
+
mid: mid,
|
125
|
+
elementLink: link // TODO Connect本地调试link
|
126
|
+
}),
|
127
|
+
path = _getIframeUrl.path,
|
128
|
+
locationSearch = _getIframeUrl.locationSearch;
|
129
|
+
console.log('[debug] generateIframeSrc', path, locationSearch);
|
130
|
+
return "".concat(path, "?").concat(locationSearch);
|
131
|
+
}
|
132
|
+
export function handleRedirect(data) {
|
133
|
+
var _data$isDestroy, _data$isCallApp, _data$callAppDetectSu;
|
134
|
+
var fromFastSdk = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
135
|
+
console.log('local payment sdk new element redirect arg ----', this);
|
136
|
+
var _data = typeof data === 'string' ? {
|
137
|
+
normalUrl: data
|
138
|
+
} : _objectSpread(_objectSpread({}, data), {}, {
|
139
|
+
applinkUrl: (data === null || data === void 0 ? void 0 : data.applinkUrl) || '',
|
140
|
+
schemeUrl: (data === null || data === void 0 ? void 0 : data.schemeUrl) || '',
|
141
|
+
normalUrl: (data === null || data === void 0 ? void 0 : data.normalUrl) || '',
|
142
|
+
target: data === null || data === void 0 ? void 0 : data.target,
|
143
|
+
isDestroy: (_data$isDestroy = data === null || data === void 0 ? void 0 : data.isDestroy) !== null && _data$isDestroy !== void 0 ? _data$isDestroy : true,
|
144
|
+
isCallApp: (_data$isCallApp = data === null || data === void 0 ? void 0 : data.isCallApp) !== null && _data$isCallApp !== void 0 ? _data$isCallApp : false,
|
145
|
+
callAppDetectSuccessDelay: (_data$callAppDetectSu = data === null || data === void 0 ? void 0 : data.callAppDetectSuccessDelay) !== null && _data$callAppDetectSu !== void 0 ? _data$callAppDetectSu : 2000
|
146
|
+
});
|
147
|
+
// const logParams = {
|
148
|
+
// applinkUrl: data?.applinkUrl || '',
|
149
|
+
// schemeUrl: data?.schemeUrl || '',
|
150
|
+
// normalUrl: data?.normalUrl || '',
|
151
|
+
// target: data?.target,
|
152
|
+
// isDestroy: data?.isDestroy ?? true,
|
153
|
+
// isCallApp: data?.isCallApp ?? false,
|
154
|
+
// callAppDetectSuccessDelay: data?.callAppDetectSuccessDelay ?? 2000,
|
155
|
+
// };
|
156
|
+
// this.AMSSDK.logger
|
157
|
+
// .logInfo(
|
158
|
+
// {
|
159
|
+
// title: 'sdk_event_call_url_start',
|
160
|
+
// },
|
161
|
+
// {
|
162
|
+
// redirectInfo: JSON.stringify(logParams),
|
163
|
+
// },
|
164
|
+
// )
|
165
|
+
// .send();
|
166
|
+
var successCallback = function successCallback(type, url, durationInSeconds) {
|
167
|
+
// TODO
|
168
|
+
// event.dispatchToSDK(EVENT.eventCallback.name, {
|
169
|
+
// code: eventCodeEnum.SDK_CALL_URL_SUCCESS,
|
170
|
+
// message: `Successfully opened the app,${type}: ${url}`,
|
171
|
+
// });
|
172
|
+
var extra = {
|
173
|
+
redirectInfo: JSON.stringify(_data),
|
174
|
+
openType: type,
|
175
|
+
url: url,
|
176
|
+
fromFastSdk: fromFastSdk
|
177
|
+
};
|
178
|
+
if (durationInSeconds) {
|
179
|
+
extra['durationInSeconds'] = durationInSeconds;
|
180
|
+
}
|
181
|
+
// this.AMSSDK.logger
|
182
|
+
// .logInfo(
|
183
|
+
// {
|
184
|
+
// title: 'sdk_event_call_url_success',
|
185
|
+
// },
|
186
|
+
// extra,
|
187
|
+
// )
|
188
|
+
// .send();
|
189
|
+
};
|
190
|
+
var failCallback = function failCallback(type, url, durationInSeconds) {
|
191
|
+
// event.dispatchToSDK(EVENT.eventCallback.name, {
|
192
|
+
// code: eventCodeEnum.SDK_CALL_URL_ERROR,
|
193
|
+
// message: `Failed to open app,applinkUrl: ${_data?.applinkUrl} schemeUrl: ${_data?.schemeUrl} normalUrl: ${_data?.normalUrl}`,
|
194
|
+
// });
|
195
|
+
var extra = {
|
196
|
+
redirectInfo: JSON.stringify(_data),
|
197
|
+
openType: type,
|
198
|
+
url: url,
|
199
|
+
fromFastSdk: fromFastSdk
|
200
|
+
};
|
201
|
+
if (durationInSeconds) {
|
202
|
+
extra['durationInSeconds'] = durationInSeconds;
|
203
|
+
}
|
204
|
+
// this.AMSSDK.logger
|
205
|
+
// .logInfo(
|
206
|
+
// {
|
207
|
+
// title: 'sdk_error_call_url_failed',
|
208
|
+
// },
|
209
|
+
// extra,
|
210
|
+
// )
|
211
|
+
// .send();
|
212
|
+
};
|
213
|
+
|
214
|
+
// 支持 target: _blank,新开tab页打开
|
215
|
+
if (_data.target === TargetEnum.BLANK) {
|
216
|
+
if (!_data.normalUrl) return failCallback(RedirectType.NormalUrl, '');
|
217
|
+
successCallback(RedirectType.NormalUrl, _data.normalUrl);
|
218
|
+
window.open(_data.normalUrl);
|
219
|
+
return;
|
220
|
+
}
|
221
|
+
if (_data.target === TargetEnum.REPLACE && !(_data !== null && _data !== void 0 && _data.applinkUrl) && !(_data !== null && _data !== void 0 && _data.schemeUrl)) {
|
222
|
+
if (!_data.normalUrl) return failCallback(RedirectType.NormalUrl, '');
|
223
|
+
successCallback(RedirectType.NormalUrl, _data.normalUrl);
|
224
|
+
window.location.replace(_data.normalUrl);
|
225
|
+
return;
|
226
|
+
}
|
227
|
+
// TODO 销毁iframe和全局loading
|
228
|
+
// if (_data?.isDestroy) this.cleanContainer();
|
229
|
+
// 唤端
|
230
|
+
if (_data !== null && _data !== void 0 && _data.isCallApp && _data !== null && _data !== void 0 && _data.schemeUrl) {
|
231
|
+
var startCallAppTime = new Date();
|
232
|
+
var detectSuccessDelay = typeof (data === null || data === void 0 ? void 0 : data.callAppDetectSuccessDelay) === 'number' ? data.callAppDetectSuccessDelay : 5000;
|
233
|
+
redirect({
|
234
|
+
schemeUrl: _data === null || _data === void 0 ? void 0 : _data.schemeUrl,
|
235
|
+
callAppJudgeTime: detectSuccessDelay
|
236
|
+
}).then(function () {
|
237
|
+
var endCallAppTime = new Date();
|
238
|
+
var durationInMilliseconds = endCallAppTime.getTime() - startCallAppTime.getTime();
|
239
|
+
var durationInSeconds = durationInMilliseconds / 1000;
|
240
|
+
successCallback(RedirectType.SchemeUrl, _data === null || _data === void 0 ? void 0 : _data.schemeUrl, durationInSeconds);
|
241
|
+
}).catch(function () {
|
242
|
+
var endCallAppTime = new Date();
|
243
|
+
var durationInMilliseconds = endCallAppTime.getTime() - startCallAppTime.getTime();
|
244
|
+
var durationInSeconds = durationInMilliseconds / 1000;
|
245
|
+
failCallback(RedirectType.SchemeUrl, _data.schemeUrl, durationInSeconds);
|
246
|
+
});
|
247
|
+
return;
|
248
|
+
}
|
249
|
+
redirect({
|
250
|
+
applinkUrl: _data === null || _data === void 0 ? void 0 : _data.applinkUrl
|
251
|
+
}).then(function () {
|
252
|
+
successCallback(RedirectType.ApplinkUrl, _data === null || _data === void 0 ? void 0 : _data.applinkUrl);
|
253
|
+
}).catch(function () {
|
254
|
+
if (_data !== null && _data !== void 0 && _data.applinkUrl) failCallback(RedirectType.ApplinkUrl, _data === null || _data === void 0 ? void 0 : _data.applinkUrl);
|
255
|
+
return redirect({
|
256
|
+
schemeUrl: _data === null || _data === void 0 ? void 0 : _data.schemeUrl
|
257
|
+
});
|
258
|
+
}).then(function () {
|
259
|
+
successCallback(RedirectType.SchemeUrl, _data === null || _data === void 0 ? void 0 : _data.schemeUrl);
|
260
|
+
}).catch(function () {
|
261
|
+
if (_data !== null && _data !== void 0 && _data.schemeUrl) failCallback(RedirectType.SchemeUrl, _data === null || _data === void 0 ? void 0 : _data.schemeUrl);
|
262
|
+
return redirect({
|
263
|
+
normalUrl: _data === null || _data === void 0 ? void 0 : _data.normalUrl
|
264
|
+
});
|
265
|
+
}).then(function () {
|
266
|
+
successCallback(RedirectType.NormalUrl, _data === null || _data === void 0 ? void 0 : _data.normalUrl);
|
267
|
+
}).catch(function () {
|
268
|
+
failCallback(RedirectType.NormalUrl, _data === null || _data === void 0 ? void 0 : _data.normalUrl);
|
269
|
+
});
|
270
|
+
}
|
271
|
+
export function redirect(data) {
|
272
|
+
return new Promise(function (resolve, reject) {
|
273
|
+
var terminalType = device.isMobile ? terminalTypeEnum.WAP : terminalTypeEnum.WEB;
|
274
|
+
var isWeb = terminalType === terminalTypeEnum.WEB;
|
275
|
+
var normalUrl = (data === null || data === void 0 ? void 0 : data.normalUrl) || '';
|
276
|
+
var schemeUrl = (data === null || data === void 0 ? void 0 : data.schemeUrl) || '';
|
277
|
+
var applinkUrl = (data === null || data === void 0 ? void 0 : data.applinkUrl) || '';
|
278
|
+
var callAppJudgeTime = (data === null || data === void 0 ? void 0 : data.callAppJudgeTime) || '';
|
279
|
+
var jumpFunc = function jumpFunc() {
|
280
|
+
if (normalUrl) {
|
281
|
+
resolve();
|
282
|
+
window.location.href = normalUrl;
|
283
|
+
return;
|
284
|
+
}
|
285
|
+
reject(ERRORMESSAGE.SDK_CALL_URL_ERROR.REDIRECT_ERROR);
|
286
|
+
};
|
287
|
+
var callAppFunc = function callAppFunc() {
|
288
|
+
if (!schemeUrl && !applinkUrl) {
|
289
|
+
jumpFunc();
|
290
|
+
return;
|
291
|
+
}
|
292
|
+
var config = {
|
293
|
+
fallback: function fallback() {
|
294
|
+
jumpFunc();
|
295
|
+
},
|
296
|
+
successCb: function successCb() {
|
297
|
+
resolve();
|
298
|
+
},
|
299
|
+
delay: 0
|
300
|
+
};
|
301
|
+
if (callAppJudgeTime) {
|
302
|
+
config['resultJudgmentTime'] = callAppJudgeTime;
|
303
|
+
}
|
304
|
+
try {
|
305
|
+
var callLib = new CallApp(config);
|
306
|
+
callLib.open({
|
307
|
+
scheme: schemeUrl,
|
308
|
+
link: applinkUrl
|
309
|
+
});
|
310
|
+
} catch (error) {
|
311
|
+
jumpFunc();
|
312
|
+
}
|
313
|
+
};
|
314
|
+
if (isWeb) {
|
315
|
+
jumpFunc();
|
316
|
+
} else {
|
317
|
+
callAppFunc();
|
318
|
+
}
|
319
|
+
});
|
320
|
+
}
|
321
|
+
export { formatElementOption };
|
@@ -1,8 +1,12 @@
|
|
1
1
|
import ComponentApp from '../../plugin/component';
|
2
|
-
import { ComponentSignEnum, IcreateComponent, IoptionsParams, IPaymentSessionMetaData, Iselector, Isubmit, PaymentMethodTypeEnum, SubPaymentMethodTypeEnum } from '../../types';
|
2
|
+
import { ComponentSignEnum, IappendIframeNodesParams, IcreateComponent, IoptionsParams, IPaymentSessionMetaData, Iselector, Isubmit, PaymentMethodTypeEnum, SubPaymentMethodTypeEnum } from '../../types';
|
3
3
|
import CoreInstance from '../instance/index';
|
4
4
|
export declare const getComponentSign: (params: IPaymentSessionMetaData) => ComponentSignEnum;
|
5
5
|
export declare const parseSessionData: (sessionData: string) => [IPaymentSessionMetaData, string];
|
6
|
+
export declare const handleParams: (params: IcreateComponent, _this: any) => Promise<{
|
7
|
+
iframeNodesParams: IappendIframeNodesParams;
|
8
|
+
componentSign: ComponentSignEnum.EASY_PAY_WALLET | ComponentSignEnum.EASY_PAY_APM | ComponentSignEnum.CASHIER_PAYMENT_CARD | ComponentSignEnum.CASHIER_PAYMENT_BANK | ComponentSignEnum.CASHIER_PAYMENT_APM | ComponentSignEnum.AUTO_DEBIT_WALLET | ComponentSignEnum.AUTO_DEBIT_PAY_WALLET | ComponentSignEnum.VAULTING_CARD | ComponentSignEnum.CHECKOUT_PAYMENT | ComponentSignEnum.ELEMENT_PAYMENT | ComponentSignEnum.ELEMENT_ADDRESS;
|
9
|
+
}>;
|
6
10
|
export type IAMSComponentOptions = IoptionsParams & {
|
7
11
|
appVersion: string;
|
8
12
|
};
|
@@ -70,7 +70,6 @@ export var parseSessionData = function parseSessionData(sessionData) {
|
|
70
70
|
return [{}, sessionData];
|
71
71
|
}
|
72
72
|
};
|
73
|
-
|
74
73
|
// pc easy-pay execute 1.0 Process
|
75
74
|
var resetEasyPaySceneVersion = function resetEasyPaySceneVersion(parseData) {
|
76
75
|
if (isPC() && parseData !== null && parseData !== void 0 && parseData.paymentSessionConfig) {
|
@@ -92,7 +91,7 @@ var handleSessionData = function handleSessionData(originSessionData) {
|
|
92
91
|
resetEasyPaySceneVersion(parseData);
|
93
92
|
return [parseData !== null && parseData !== void 0 ? parseData : {}, sessionData];
|
94
93
|
};
|
95
|
-
var handleParams = function handleParams(params, _this) {
|
94
|
+
export var handleParams = function handleParams(params, _this) {
|
96
95
|
var _params = Object.assign({
|
97
96
|
paymentSessionMetaData: {},
|
98
97
|
renderDisplayType: DisplayTypeEnum.popup
|
@@ -0,0 +1,59 @@
|
|
1
|
+
import { IPaymentSessionMetaData } from '../../../types';
|
2
|
+
import type { AddressMountOptions, AddressMountResult, IElementOptions, LinkAuthMountOptions, LinkAuthMountResult, PaymentMountOptions, PaymentMountResult } from './type';
|
3
|
+
export interface IElementProcessorOptions {
|
4
|
+
paymentSessionConfig: IPaymentSessionMetaData['paymentSessionConfig'];
|
5
|
+
sessionData: string;
|
6
|
+
environment: string;
|
7
|
+
locale: string;
|
8
|
+
isConnect: boolean;
|
9
|
+
}
|
10
|
+
export declare class ElementComponent {
|
11
|
+
private parseData;
|
12
|
+
private loading;
|
13
|
+
private sessionData;
|
14
|
+
private elementContainer;
|
15
|
+
private authBase;
|
16
|
+
private addressBase;
|
17
|
+
private paymentBase;
|
18
|
+
private _options;
|
19
|
+
private eventService;
|
20
|
+
private sdkActionRes;
|
21
|
+
private oneAccountRes;
|
22
|
+
private launchSource;
|
23
|
+
private initCompleted;
|
24
|
+
private isConnect;
|
25
|
+
private iframeSrc;
|
26
|
+
private mountOptions;
|
27
|
+
private iframes;
|
28
|
+
private loadingElement;
|
29
|
+
private componentsCount;
|
30
|
+
private eventCallback;
|
31
|
+
private ApplePayService;
|
32
|
+
constructor(options: IElementOptions);
|
33
|
+
private createElement;
|
34
|
+
private beforeMount;
|
35
|
+
private createComponentSdk;
|
36
|
+
private createIframeSrc;
|
37
|
+
private closeLoading;
|
38
|
+
private addListener;
|
39
|
+
private launchFunc;
|
40
|
+
private showIframe;
|
41
|
+
private afterInit;
|
42
|
+
private sendRenderData;
|
43
|
+
private removeListener;
|
44
|
+
private registerEventListener;
|
45
|
+
private mountAuth;
|
46
|
+
private mountAddress;
|
47
|
+
private mountPayment;
|
48
|
+
private initApplePaySdk;
|
49
|
+
mountErrorHandle(): void;
|
50
|
+
mount(renderOptions: AddressMountOptions, sdkSelector: string): AddressMountResult;
|
51
|
+
mount(renderOptions: PaymentMountOptions, sdkSelector: string): PaymentMountResult;
|
52
|
+
mount(renderOptions: LinkAuthMountOptions, sdkSelector: string): LinkAuthMountResult;
|
53
|
+
private resetState;
|
54
|
+
unmount(): void;
|
55
|
+
private onAfterSubmitFunc;
|
56
|
+
private onValidateFunc;
|
57
|
+
private validatePromiseFuncs;
|
58
|
+
submitPayment(): Promise<void>;
|
59
|
+
}
|