@tap-payments/apple-pay-button 0.0.77-development → 0.0.79-development
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/build/@types/checkoutProfile.d.ts +2 -1
- package/build/@types/tapLocalisation.d.ts +1 -1
- package/build/api.d.ts +8 -13
- package/build/api.js +4 -3
- package/build/features/ApplePayButton/ApplePayButton.d.ts +1 -2
- package/build/hooks/useApplePay.js +43 -20
- package/build/hooks/useMerchantApplePay.js +1 -1
- package/build/utils/config.d.ts +4 -1
- package/build/utils/config.js +1 -1
- package/package.json +1 -1
|
@@ -92,6 +92,7 @@ export interface PaymentMethod {
|
|
|
92
92
|
button_style: Buttonstyle;
|
|
93
93
|
display_name: string;
|
|
94
94
|
default_currency: string;
|
|
95
|
+
identifier?: string;
|
|
95
96
|
}
|
|
96
97
|
interface Buttonstyle {
|
|
97
98
|
background: Background2;
|
|
@@ -129,7 +130,7 @@ interface Assests {
|
|
|
129
130
|
theme: Theme;
|
|
130
131
|
web: Theme;
|
|
131
132
|
}
|
|
132
|
-
|
|
133
|
+
type Theme = Record<ThemeMode, string> & {
|
|
133
134
|
card: {
|
|
134
135
|
light: string;
|
|
135
136
|
dark: string;
|
package/build/api.d.ts
CHANGED
|
@@ -1,18 +1,13 @@
|
|
|
1
1
|
import { MerchantResponse, CheckoutProfileRequest, ChargeRequestBody, AuthorizeRequestBody } from './@types';
|
|
2
2
|
export declare const setAxiosGlobalHeaders: (headers: Record<string, string>) => void;
|
|
3
3
|
export declare const getAxiosGlobalHeaders: () => {
|
|
4
|
-
[x: string]:
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
put?: import("axios").AxiosHeaders | undefined;
|
|
12
|
-
patch?: import("axios").AxiosHeaders | undefined;
|
|
13
|
-
purge?: import("axios").AxiosHeaders | undefined;
|
|
14
|
-
unlink?: import("axios").AxiosHeaders | undefined;
|
|
15
|
-
common?: import("axios").AxiosHeaders | undefined;
|
|
4
|
+
[x: string]: import("axios").AxiosHeaderValue | undefined;
|
|
5
|
+
Accept?: import("axios").AxiosHeaderValue | undefined;
|
|
6
|
+
"Content-Length"?: import("axios").AxiosHeaderValue | undefined;
|
|
7
|
+
"User-Agent"?: import("axios").AxiosHeaderValue | undefined;
|
|
8
|
+
"Content-Encoding"?: import("axios").AxiosHeaderValue | undefined;
|
|
9
|
+
Authorization?: import("axios").AxiosHeaderValue | undefined;
|
|
10
|
+
'Content-Type'?: import("axios").AxiosHeaderValue | undefined;
|
|
16
11
|
};
|
|
17
12
|
declare class APPService {
|
|
18
13
|
setHttpHeaders(headers: Record<string, string>): Promise<void>;
|
|
@@ -25,7 +20,7 @@ declare class APPService {
|
|
|
25
20
|
merchant: any;
|
|
26
21
|
payment_options: any;
|
|
27
22
|
}>;
|
|
28
|
-
appleSession(merchant: Pick<MerchantResponse, 'name' | 'id'>, validationURL: string, merchantRegisteredDomain: string, merchantIdentifier: string): Promise<any>;
|
|
23
|
+
appleSession(merchant: Pick<MerchantResponse, 'name' | 'id'>, validationURL: string, merchantRegisteredDomain: string, merchantIdentifier: string, domainValidator: string): Promise<any>;
|
|
29
24
|
tapTokenization(applePaymentData: Record<string, string>): Promise<any>;
|
|
30
25
|
createCharge(request: ChargeRequestBody): Promise<any>;
|
|
31
26
|
createAuthorize(request: AuthorizeRequestBody): Promise<any>;
|
package/build/api.js
CHANGED
|
@@ -24,7 +24,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
24
24
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
25
25
|
function step(op) {
|
|
26
26
|
if (f) throw new TypeError("Generator is already executing.");
|
|
27
|
-
while (_) try {
|
|
27
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
28
28
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
29
29
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
30
30
|
switch (op[0]) {
|
|
@@ -149,7 +149,7 @@ var APPService = (function () {
|
|
|
149
149
|
enumerable: false,
|
|
150
150
|
configurable: true,
|
|
151
151
|
writable: true,
|
|
152
|
-
value: function (merchant, validationURL, merchantRegisteredDomain, merchantIdentifier) {
|
|
152
|
+
value: function (merchant, validationURL, merchantRegisteredDomain, merchantIdentifier, domainValidator) {
|
|
153
153
|
return __awaiter(this, void 0, void 0, function () {
|
|
154
154
|
var body, data;
|
|
155
155
|
return __generator(this, function (_a) {
|
|
@@ -160,7 +160,8 @@ var APPService = (function () {
|
|
|
160
160
|
origin: merchantRegisteredDomain,
|
|
161
161
|
merchantIdentifier: merchantIdentifier,
|
|
162
162
|
merchantId: merchant.id,
|
|
163
|
-
merchantName: merchant.name
|
|
163
|
+
merchantName: merchant.name,
|
|
164
|
+
domainValidator: domainValidator
|
|
164
165
|
};
|
|
165
166
|
return [4, axiosInstance.post('/validatemerchant', body)];
|
|
166
167
|
case 1:
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import { ApplePayButtonProps, ApplePayRequestData } from '../../@types';
|
|
3
2
|
export type { ApplePayButtonProps, ApplePayRequestData };
|
|
4
|
-
export declare function ApplePayButton(props: ApplePayButtonProps): JSX.Element;
|
|
3
|
+
export declare function ApplePayButton(props: ApplePayButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
5
4
|
export declare const renderApplePayButton: (props: ApplePayButtonProps, elementId: string) => any;
|
|
@@ -24,7 +24,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
24
24
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
25
25
|
function step(op) {
|
|
26
26
|
if (f) throw new TypeError("Generator is already executing.");
|
|
27
|
-
while (_) try {
|
|
27
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
28
28
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
29
29
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
30
30
|
switch (op[0]) {
|
|
@@ -45,6 +45,17 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
45
45
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
46
46
|
}
|
|
47
47
|
};
|
|
48
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
49
|
+
var t = {};
|
|
50
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
51
|
+
t[p] = s[p];
|
|
52
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
53
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
54
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
55
|
+
t[p[i]] = s[p[i]];
|
|
56
|
+
}
|
|
57
|
+
return t;
|
|
58
|
+
};
|
|
48
59
|
import { useCallback, useEffect, useMemo, useState } from 'react';
|
|
49
60
|
import { ApplePayVersion, MW_BASE_URL } from '../constants';
|
|
50
61
|
import { prepareApplePayRequest, shallRenderApplePay } from '../utils/config';
|
|
@@ -54,17 +65,17 @@ import { getApplePayPaymentMethod, getDefaultThemeMode } from '../utils';
|
|
|
54
65
|
import appService, { getAxiosGlobalHeaders, setAxiosGlobalHeaders } from '../api';
|
|
55
66
|
import { ChargeCode, mappingInterface } from '@tap-payments/acceptance-sdk';
|
|
56
67
|
export var useApplePay = function (_a) {
|
|
57
|
-
var _b;
|
|
68
|
+
var _b, _c;
|
|
58
69
|
var buttonProps = _a.buttonProps;
|
|
59
|
-
var
|
|
60
|
-
var
|
|
61
|
-
var
|
|
62
|
-
var
|
|
63
|
-
var
|
|
64
|
-
var
|
|
65
|
-
var
|
|
66
|
-
var
|
|
67
|
-
var
|
|
70
|
+
var _d = useState(), applePayRequestData = _d[0], setApplePayRequestData = _d[1];
|
|
71
|
+
var _e = useState(), applePayRequestConfiguration = _e[0], setApplePayRequestConfiguration = _e[1];
|
|
72
|
+
var _f = useState(), profileData = _f[0], setProfile = _f[1];
|
|
73
|
+
var _g = useState(false), disabled = _g[0], setDisabled = _g[1];
|
|
74
|
+
var _h = useState(false), initialLoading = _h[0], setInitialLoading = _h[1];
|
|
75
|
+
var _j = useState(false), error = _j[0], setError = _j[1];
|
|
76
|
+
var _k = useState(false), success = _k[0], setSuccess = _k[1];
|
|
77
|
+
var _l = useState(false), loading = _l[0], setLoading = _l[1];
|
|
78
|
+
var _m = useState(false), isRounded = _m[0], setIsRounded = _m[1];
|
|
68
79
|
var mappedProps = __assign(__assign({}, buttonProps), { interface: mappingInterface(buttonProps.interface) });
|
|
69
80
|
var interfaceObj = mappedProps.interface, merchant = mappedProps.merchant, customer = mappedProps.customer, acceptance = mappedProps.acceptance, scope = mappedProps.scope, debug = mappedProps.debug, onError = mappedProps.onError, onSuccess = mappedProps.onSuccess, onCancel = mappedProps.onCancel, onReady = mappedProps.onReady, metaData = mappedProps.metaData, headers = mappedProps.headers, operator = mappedProps.operator, order = mappedProps.order, onOrderCreated = mappedProps.onOrderCreated, transaction = mappedProps.transaction, post = mappedProps.post, redirect = mappedProps.redirect;
|
|
70
81
|
var isIframeIntegration = buttonProps.integration === 'iframe';
|
|
@@ -92,7 +103,7 @@ export var useApplePay = function (_a) {
|
|
|
92
103
|
return getApplePayPaymentMethod(profileData.payment_options.payment_methods || []);
|
|
93
104
|
}, [profileData]);
|
|
94
105
|
var initialize = function (metaData) { return __awaiter(void 0, void 0, void 0, function () {
|
|
95
|
-
var headers_1, data, err_1;
|
|
106
|
+
var headers_1, rest, applePayPreparedData_1, data, applePayPreparedData, err_1;
|
|
96
107
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
97
108
|
return __generator(this, function (_o) {
|
|
98
109
|
switch (_o.label) {
|
|
@@ -105,10 +116,11 @@ export var useApplePay = function (_a) {
|
|
|
105
116
|
throw new Error('The device/customer is not eligible to use ApplePay');
|
|
106
117
|
}
|
|
107
118
|
if (metaData) {
|
|
108
|
-
headers_1 = metaData.headers;
|
|
119
|
+
headers_1 = metaData.headers, rest = __rest(metaData, ["headers"]);
|
|
109
120
|
setAxiosGlobalHeaders(__assign({}, headers_1));
|
|
110
|
-
setProfile(
|
|
111
|
-
|
|
121
|
+
setProfile(rest);
|
|
122
|
+
applePayPreparedData_1 = prepareApplePayRequest(__assign(__assign({}, rest), { order: order, acceptance: acceptance, customer: customer }));
|
|
123
|
+
setApplePayRequestData(applePayPreparedData_1.applePaySessionRequest);
|
|
112
124
|
setInitialLoading(false);
|
|
113
125
|
return [2];
|
|
114
126
|
}
|
|
@@ -160,7 +172,8 @@ export var useApplePay = function (_a) {
|
|
|
160
172
|
if (debug)
|
|
161
173
|
console.log('merchant configuration: ', data);
|
|
162
174
|
setProfile(data);
|
|
163
|
-
|
|
175
|
+
applePayPreparedData = prepareApplePayRequest(__assign(__assign({}, data), { order: order, acceptance: acceptance, customer: customer }));
|
|
176
|
+
setApplePayRequestData(applePayPreparedData.applePaySessionRequest);
|
|
164
177
|
onOrderCreated === null || onOrderCreated === void 0 ? void 0 : onOrderCreated((_l = (_k = data.payment_options) === null || _k === void 0 ? void 0 : _k.order) === null || _l === void 0 ? void 0 : _l.id);
|
|
165
178
|
setApplePayRequestConfiguration({
|
|
166
179
|
BASE_URL: MW_BASE_URL,
|
|
@@ -179,6 +192,16 @@ export var useApplePay = function (_a) {
|
|
|
179
192
|
}
|
|
180
193
|
});
|
|
181
194
|
}); };
|
|
195
|
+
var isTapIdentifier = function (id) { return (id.toLowerCase().includes('knet') ? 'knet' : 'tap'); };
|
|
196
|
+
var domainValidator = useMemo(function () {
|
|
197
|
+
var _a, _b, _c;
|
|
198
|
+
if (merchant.identifier)
|
|
199
|
+
return isTapIdentifier(merchant.identifier);
|
|
200
|
+
if (!((_a = profileData === null || profileData === void 0 ? void 0 : profileData.payment_options) === null || _a === void 0 ? void 0 : _a.payment_methods))
|
|
201
|
+
return '';
|
|
202
|
+
var identifier = (_c = (_b = getApplePayPaymentMethod(profileData.payment_options.payment_methods)) === null || _b === void 0 ? void 0 : _b.identifier) !== null && _c !== void 0 ? _c : '';
|
|
203
|
+
return isTapIdentifier(identifier);
|
|
204
|
+
}, [(_c = profileData === null || profileData === void 0 ? void 0 : profileData.payment_options) === null || _c === void 0 ? void 0 : _c.payment_methods, merchant === null || merchant === void 0 ? void 0 : merchant.identifier]);
|
|
182
205
|
var onApplePayButtonClicked = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
183
206
|
var ApplePaySession, session_1;
|
|
184
207
|
var _a;
|
|
@@ -220,7 +243,7 @@ export var useApplePay = function (_a) {
|
|
|
220
243
|
if (debug) {
|
|
221
244
|
console.info("creating merchant session for merchantData: ".concat(JSON.stringify(profileData.merchant), " and validationURL: ").concat(event.validationURL, " and merchant.domain: ").concat(window.location.hostname));
|
|
222
245
|
}
|
|
223
|
-
return [4, appService.appleSession(__assign(__assign({}, profileData.merchant), { id: merchant.id || profileData.merchant.id }), event.validationURL, window.location.hostname, merchant.identifier || merchant.id || profileData.merchant.id)];
|
|
246
|
+
return [4, appService.appleSession(__assign(__assign({}, profileData.merchant), { id: merchant.id || profileData.merchant.id }), event.validationURL, window.location.hostname, merchant.identifier || merchant.id || profileData.merchant.id, domainValidator)];
|
|
224
247
|
case 2:
|
|
225
248
|
merchantSession = _a.sent();
|
|
226
249
|
if (debug)
|
|
@@ -260,13 +283,13 @@ export var useApplePay = function (_a) {
|
|
|
260
283
|
}
|
|
261
284
|
return [3, 11];
|
|
262
285
|
case 2:
|
|
263
|
-
onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(event.payment.token
|
|
286
|
+
onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(event.payment.token);
|
|
264
287
|
session_1.completePayment({ status: ApplePaySession.STATUS_SUCCESS });
|
|
265
288
|
return [3, 12];
|
|
266
289
|
case 3:
|
|
267
290
|
setLoading(true);
|
|
268
291
|
session_1.completePayment({ status: ApplePaySession.STATUS_SUCCESS });
|
|
269
|
-
return [4, appService.tapTokenization(event.payment.token.paymentData)];
|
|
292
|
+
return [4, appService.tapTokenization(__assign(__assign(__assign({}, event.payment.token.paymentData), event.payment.token), { paymentData: undefined }))];
|
|
270
293
|
case 4:
|
|
271
294
|
data = _t.sent();
|
|
272
295
|
setSuccess === null || setSuccess === void 0 ? void 0 : setSuccess(true);
|
|
@@ -275,7 +298,7 @@ export var useApplePay = function (_a) {
|
|
|
275
298
|
case 5:
|
|
276
299
|
setLoading(true);
|
|
277
300
|
session_1.completePayment({ status: ApplePaySession.STATUS_SUCCESS });
|
|
278
|
-
return [4, appService.tapTokenization(event.payment.token.paymentData)];
|
|
301
|
+
return [4, appService.tapTokenization(__assign(__assign(__assign({}, event.payment.token.paymentData), event.payment.token), { paymentData: undefined }))];
|
|
279
302
|
case 6:
|
|
280
303
|
tokenId = (_t.sent()).id;
|
|
281
304
|
supportCurrency = ((_d = (_c = profileData === null || profileData === void 0 ? void 0 : profileData.payment_options) === null || _c === void 0 ? void 0 : _c.supported_currencies) !== null && _d !== void 0 ? _d : [])[0];
|
|
@@ -13,7 +13,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
13
13
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
14
|
function step(op) {
|
|
15
15
|
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
-
while (_) try {
|
|
16
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
17
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
18
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
19
|
switch (op[0]) {
|
package/build/utils/config.d.ts
CHANGED
|
@@ -7,5 +7,8 @@ export declare const getApplePayRequest: ({ order, customer, supportedNetworks,
|
|
|
7
7
|
countryCode: string;
|
|
8
8
|
name: string;
|
|
9
9
|
}) => ApplePayRequestData;
|
|
10
|
-
export declare const prepareApplePayRequest: ({ payment_options, merchant, order, customer, acceptance }: Pick<MetaData, 'merchant' | 'payment_options'> & Pick<ApplePayButtonProps, 'order' | 'customer' | 'acceptance'>) =>
|
|
10
|
+
export declare const prepareApplePayRequest: ({ payment_options, merchant, order, customer, acceptance }: Pick<MetaData, 'merchant' | 'payment_options'> & Pick<ApplePayButtonProps, 'order' | 'customer' | 'acceptance'>) => {
|
|
11
|
+
applePaySessionRequest: ApplePayRequestData;
|
|
12
|
+
paymentMethod: PaymentMethod;
|
|
13
|
+
};
|
|
11
14
|
export declare const shallRenderApplePay: () => boolean;
|
package/build/utils/config.js
CHANGED
|
@@ -57,7 +57,7 @@ export var prepareApplePayRequest = function (_a) {
|
|
|
57
57
|
merchantCapabilities: getMerchantCapabilities(acceptance === null || acceptance === void 0 ? void 0 : acceptance.supportedFundSource),
|
|
58
58
|
name: merchant.name
|
|
59
59
|
});
|
|
60
|
-
return request;
|
|
60
|
+
return { applePaySessionRequest: request, paymentMethod: paymentMethod };
|
|
61
61
|
};
|
|
62
62
|
export var shallRenderApplePay = function () {
|
|
63
63
|
var https = window.location.protocol === 'https:';
|