vona-module-pay-paypal 5.0.3 → 5.0.4
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/bean/payProvider.paypal.d.ts +14 -3
- package/dist/bean/payProvider.paypal.d.ts.map +1 -1
- package/dist/index.js +375 -69
- package/dist/index.js.map +1 -1
- package/dist/lib/index.d.ts +1 -1
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/paypalGateway.d.ts +23 -0
- package/dist/lib/paypalGateway.d.ts.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/bean/payProvider.paypal.ts +395 -84
- package/src/lib/index.ts +1 -1
- package/src/lib/paypalGateway.ts +129 -0
- package/src/types/index.ts +2 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { IDecoratorPayProviderOptions, IPayProviderClientOptions, IPayProviderClientRecord, IPayProviderExecute, IPayProviderPaymentInput, IPayProviderPaymentSnapshot, IPayProviderRefundInput, IPayProviderRefundSnapshot, IPayProviderVerifiedWebhook, IPayProviderWebhookInput } from 'vona-module-a-pay';
|
|
2
2
|
import { BeanBase } from 'vona';
|
|
3
|
+
import type { IPaypalGateway } from '../lib/paypalGateway.ts';
|
|
3
4
|
export interface IPayProviderPaypalClientRecord extends IPayProviderClientRecord {
|
|
4
5
|
}
|
|
5
6
|
export interface IPayProviderPaypalClientOptions extends IPayProviderClientOptions {
|
|
@@ -8,16 +9,26 @@ export interface IPayProviderPaypalClientOptions extends IPayProviderClientOptio
|
|
|
8
9
|
clientSecret: string | undefined;
|
|
9
10
|
};
|
|
10
11
|
webhookId: string | undefined;
|
|
12
|
+
gateway?: IPaypalGateway;
|
|
11
13
|
}
|
|
12
14
|
export interface IPayProviderOptionsPaypal extends IDecoratorPayProviderOptions<IPayProviderPaypalClientRecord, IPayProviderPaypalClientOptions> {
|
|
13
15
|
}
|
|
14
16
|
export declare class PayProviderPaypal extends BeanBase implements IPayProviderExecute<IPayProviderPaypalClientOptions> {
|
|
15
17
|
startPayment(input: IPayProviderPaymentInput, clientOptions: IPayProviderPaypalClientOptions): Promise<IPayProviderPaymentSnapshot>;
|
|
18
|
+
confirmPayment(input: IPayProviderPaymentInput, clientOptions: IPayProviderPaypalClientOptions): Promise<IPayProviderPaymentSnapshot>;
|
|
16
19
|
queryPayment(input: IPayProviderPaymentInput, clientOptions: IPayProviderPaypalClientOptions): Promise<IPayProviderPaymentSnapshot>;
|
|
17
20
|
createRefund(input: IPayProviderRefundInput, clientOptions: IPayProviderPaypalClientOptions): Promise<IPayProviderRefundSnapshot>;
|
|
18
|
-
queryRefund(
|
|
19
|
-
verifyWebhook(
|
|
20
|
-
private
|
|
21
|
+
queryRefund(input: IPayProviderRefundInput, clientOptions: IPayProviderPaypalClientOptions): Promise<IPayProviderRefundSnapshot>;
|
|
22
|
+
verifyWebhook(input: IPayProviderWebhookInput, clientOptions: IPayProviderPaypalClientOptions): Promise<IPayProviderVerifiedWebhook>;
|
|
23
|
+
private _mapWebhook;
|
|
24
|
+
private _inputFromOrder;
|
|
25
|
+
private _mapOrder;
|
|
26
|
+
private _mapRefund;
|
|
27
|
+
private _gateway;
|
|
28
|
+
private _gatewayOptions;
|
|
29
|
+
private _throwGatewayError;
|
|
30
|
+
private _assertReady;
|
|
31
|
+
private _assertMerchant;
|
|
21
32
|
}
|
|
22
33
|
declare module 'vona-module-a-pay' {
|
|
23
34
|
interface IPayProviderRecord {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payProvider.paypal.d.ts","sourceRoot":"","sources":["../../src/bean/payProvider.paypal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,4BAA4B,EAC5B,yBAAyB,EACzB,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,2BAA2B,EAC3B,uBAAuB,EACvB,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"payProvider.paypal.d.ts","sourceRoot":"","sources":["../../src/bean/payProvider.paypal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,4BAA4B,EAC5B,yBAAyB,EACzB,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,2BAA2B,EAC3B,uBAAuB,EACvB,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,QAAQ,EAAU,MAAM,MAAM,CAAC;AAIxC,OAAO,KAAK,EAAE,cAAc,EAAyB,MAAM,yBAAyB,CAAC;AAIrF,MAAM,WAAW,8BAA+B,SAAQ,wBAAwB;CAAG;AAEnF,MAAM,WAAW,+BAAgC,SAAQ,yBAAyB;IAChF,gBAAgB,EAAE;QAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IACrF,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AASD,MAAM,WAAW,yBAA0B,SAAQ,4BAA4B,CAC7E,8BAA8B,EAC9B,+BAA+B,CAChC;CAAG;AAEJ,qBAwBa,iBACX,SAAQ,QACR,YAAW,mBAAmB,CAAC,+BAA+B,CAAC;IAEzD,YAAY,CAChB,KAAK,EAAE,wBAAwB,EAC/B,aAAa,EAAE,+BAA+B,GAC7C,OAAO,CAAC,2BAA2B,CAAC;IA0CjC,cAAc,CAClB,KAAK,EAAE,wBAAwB,EAC/B,aAAa,EAAE,+BAA+B,GAC7C,OAAO,CAAC,2BAA2B,CAAC;IAajC,YAAY,CAChB,KAAK,EAAE,wBAAwB,EAC/B,aAAa,EAAE,+BAA+B,GAC7C,OAAO,CAAC,2BAA2B,CAAC;IASjC,YAAY,CAChB,KAAK,EAAE,uBAAuB,EAC9B,aAAa,EAAE,+BAA+B,GAC7C,OAAO,CAAC,0BAA0B,CAAC;IAoBhC,WAAW,CACf,KAAK,EAAE,uBAAuB,EAC9B,aAAa,EAAE,+BAA+B,GAC7C,OAAO,CAAC,0BAA0B,CAAC;IAahC,aAAa,CACjB,KAAK,EAAE,wBAAwB,EAC/B,aAAa,EAAE,+BAA+B,GAC7C,OAAO,CAAC,2BAA2B,CAAC;YAezB,WAAW;IA+EzB,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,SAAS;IAkEjB,OAAO,CAAC,UAAU;IAqBlB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,eAAe;CAaxB;AAuED,OAAO,QAAQ,mBAAmB,CAAC;IACjC,UAAiB,kBAAkB;QACjC,mBAAmB,EAAE,yBAAyB,CAAC;KAChD;CACF"}
|
package/dist/index.js
CHANGED
|
@@ -1,18 +1,116 @@
|
|
|
1
|
+
import { PaymentsController, OrdersController, Client, Environment, CheckoutPaymentIntent, OrderStatus } from '@cabloy/paypal-server-sdk';
|
|
1
2
|
import { useApp, BeanInfo, BeanBase, BeanScopeBase } from 'vona';
|
|
2
3
|
import { __decorate } from 'tslib';
|
|
3
|
-
import { OrdersController, CheckoutPaymentIntent, OrderStatus, PaymentsController, Client, Environment } from '@cabloy/paypal-server-sdk';
|
|
4
4
|
import { PayProvider } from 'vona-module-a-pay';
|
|
5
|
+
import { z } from 'zod';
|
|
5
6
|
import { Scope } from 'vona-module-a-bean';
|
|
6
7
|
|
|
8
|
+
class PaypalGatewayError extends Error {
|
|
9
|
+
constructor(status, message) {
|
|
10
|
+
super(message);
|
|
11
|
+
this.status = void 0;
|
|
12
|
+
this.status = status;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function createPaypalGateway(fetcher) {
|
|
16
|
+
return {
|
|
17
|
+
async createOrder(options, input) {
|
|
18
|
+
return (await new OrdersController(createClient(options)).createOrder(input)).result;
|
|
19
|
+
},
|
|
20
|
+
async captureOrder(options, input) {
|
|
21
|
+
return (await new OrdersController(createClient(options)).captureOrder(input)).result;
|
|
22
|
+
},
|
|
23
|
+
async getOrder(options, input) {
|
|
24
|
+
return (await new OrdersController(createClient(options)).getOrder(input)).result;
|
|
25
|
+
},
|
|
26
|
+
async refundCapturedPayment(options, input) {
|
|
27
|
+
return (await new PaymentsController(createClient(options)).refundCapturedPayment(input)).result;
|
|
28
|
+
},
|
|
29
|
+
async getRefund(options, input) {
|
|
30
|
+
return (await new PaymentsController(createClient(options)).getRefund(input)).result;
|
|
31
|
+
},
|
|
32
|
+
async verifyWebhookSignature(options, input) {
|
|
33
|
+
const transmissionId = getHeader(input.headers, 'paypal-transmission-id');
|
|
34
|
+
const transmissionTime = getHeader(input.headers, 'paypal-transmission-time');
|
|
35
|
+
const certUrl = getHeader(input.headers, 'paypal-cert-url');
|
|
36
|
+
const authAlgo = getHeader(input.headers, 'paypal-auth-algo');
|
|
37
|
+
const transmissionSig = getHeader(input.headers, 'paypal-transmission-sig');
|
|
38
|
+
if (!transmissionId || !transmissionTime || !certUrl || !authAlgo || !transmissionSig) {
|
|
39
|
+
throw new PaypalGatewayError(401, 'PayPal webhook transmission headers are invalid');
|
|
40
|
+
}
|
|
41
|
+
const apiBaseUrl = options.environment === 'sandbox' ? 'https://api-m.sandbox.paypal.com' : 'https://api-m.paypal.com';
|
|
42
|
+
const tokenResponse = await fetcher(`${apiBaseUrl}/v1/oauth2/token`, {
|
|
43
|
+
method: 'POST',
|
|
44
|
+
headers: {
|
|
45
|
+
'authorization': `Basic ${Buffer.from(`${options.clientId}:${options.clientSecret}`).toString('base64')}`,
|
|
46
|
+
'content-type': 'application/x-www-form-urlencoded'
|
|
47
|
+
},
|
|
48
|
+
body: 'grant_type=client_credentials'
|
|
49
|
+
});
|
|
50
|
+
const token = asRecord$1(tokenResponse.ok ? await tokenResponse.json() : undefined);
|
|
51
|
+
const accessToken = readString$1(token.access_token);
|
|
52
|
+
if (!accessToken) {
|
|
53
|
+
throw new PaypalGatewayError(401, 'PayPal webhook verification authentication failed');
|
|
54
|
+
}
|
|
55
|
+
const response = await fetcher(`${apiBaseUrl}/v1/notifications/verify-webhook-signature`, {
|
|
56
|
+
method: 'POST',
|
|
57
|
+
headers: {
|
|
58
|
+
'authorization': `Bearer ${accessToken}`,
|
|
59
|
+
'content-type': 'application/json'
|
|
60
|
+
},
|
|
61
|
+
body: JSON.stringify({
|
|
62
|
+
auth_algo: authAlgo,
|
|
63
|
+
cert_url: certUrl,
|
|
64
|
+
transmission_id: transmissionId,
|
|
65
|
+
transmission_sig: transmissionSig,
|
|
66
|
+
transmission_time: transmissionTime,
|
|
67
|
+
webhook_id: options.webhookId,
|
|
68
|
+
webhook_event: input.body
|
|
69
|
+
})
|
|
70
|
+
});
|
|
71
|
+
if (!response.ok) throw new PaypalGatewayError(401, 'PayPal webhook verification failed');
|
|
72
|
+
const result = asRecord$1(await response.json());
|
|
73
|
+
if (readString$1(result.verification_status) !== 'SUCCESS') {
|
|
74
|
+
throw new PaypalGatewayError(401, 'PayPal webhook signature is invalid');
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
function createClient(options) {
|
|
80
|
+
return new Client({
|
|
81
|
+
clientCredentialsAuthCredentials: {
|
|
82
|
+
oAuthClientId: options.clientId,
|
|
83
|
+
oAuthClientSecret: options.clientSecret
|
|
84
|
+
},
|
|
85
|
+
timeout: 0,
|
|
86
|
+
environment: options.environment === 'live' ? Environment.Production : Environment.Sandbox
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
function asRecord$1(value) {
|
|
90
|
+
return value && typeof value === 'object' ? value : {};
|
|
91
|
+
}
|
|
92
|
+
function readString$1(value) {
|
|
93
|
+
return typeof value === 'string' && value ? value : undefined;
|
|
94
|
+
}
|
|
95
|
+
function getHeader(headers, key) {
|
|
96
|
+
const value = headers[key];
|
|
97
|
+
return Array.isArray(value) ? value[0] : value;
|
|
98
|
+
}
|
|
99
|
+
|
|
7
100
|
const app = useApp();
|
|
101
|
+
const PaypalWebhookSchema = z.object({
|
|
102
|
+
id: z.string().min(1).max(255),
|
|
103
|
+
event_type: z.string().min(1).max(255),
|
|
104
|
+
resource: z.record(z.string(), z.unknown())
|
|
105
|
+
});
|
|
8
106
|
let PayProviderPaypal = class PayProviderPaypal extends BeanBase {
|
|
9
107
|
async startPayment(input, clientOptions) {
|
|
10
108
|
if (input.providerOrderId) return await this.queryPayment(input, clientOptions);
|
|
11
109
|
if (!input.returnUrl || !input.cancelUrl) {
|
|
12
110
|
this.app.throw(422, 'PayPal payment requires return and cancel URLs');
|
|
13
111
|
}
|
|
14
|
-
|
|
15
|
-
const
|
|
112
|
+
this._assertReady(clientOptions);
|
|
113
|
+
const order = await this._gateway(clientOptions).createOrder(this._gatewayOptions(clientOptions), {
|
|
16
114
|
paypalRequestId: input.idempotencyKey,
|
|
17
115
|
body: {
|
|
18
116
|
intent: CheckoutPaymentIntent.Capture,
|
|
@@ -30,102 +128,266 @@ let PayProviderPaypal = class PayProviderPaypal extends BeanBase {
|
|
|
30
128
|
}]
|
|
31
129
|
}
|
|
32
130
|
});
|
|
33
|
-
const
|
|
34
|
-
const approvalUrl =
|
|
35
|
-
|
|
131
|
+
const orderRecord = asRecord(order);
|
|
132
|
+
const approvalUrl = readString(asArray(orderRecord.links).map(asRecord).find(item => item.rel === 'approve')?.href);
|
|
133
|
+
const orderId = readString(orderRecord.id);
|
|
134
|
+
if (!orderId || !approvalUrl) this.app.throw(502, 'PayPal did not return an approval order');
|
|
36
135
|
return {
|
|
37
136
|
state: 'requires_action',
|
|
38
|
-
providerPaymentId:
|
|
39
|
-
providerOrderId:
|
|
137
|
+
providerPaymentId: orderId,
|
|
138
|
+
providerOrderId: orderId,
|
|
40
139
|
nextAction: {
|
|
41
140
|
kind: 'redirect',
|
|
42
141
|
url: approvalUrl
|
|
43
142
|
}
|
|
44
143
|
};
|
|
45
144
|
}
|
|
145
|
+
async confirmPayment(input, clientOptions) {
|
|
146
|
+
this._assertReady(clientOptions);
|
|
147
|
+
if (!input.providerOrderId) this.app.throw(409, 'PayPal payment has no provider order');
|
|
148
|
+
const order = await this._gateway(clientOptions).captureOrder(this._gatewayOptions(clientOptions), {
|
|
149
|
+
id: input.providerOrderId,
|
|
150
|
+
paypalRequestId: input.idempotencyKey
|
|
151
|
+
});
|
|
152
|
+
return this._mapOrder(order, input, clientOptions);
|
|
153
|
+
}
|
|
46
154
|
async queryPayment(input, clientOptions) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
const orders = new OrdersController(this._createClient(clientOptions));
|
|
51
|
-
const response = await orders.getOrder({
|
|
155
|
+
this._assertReady(clientOptions);
|
|
156
|
+
if (!input.providerOrderId) this.app.throw(409, 'PayPal payment has no provider order');
|
|
157
|
+
const order = await this._gateway(clientOptions).getOrder(this._gatewayOptions(clientOptions), {
|
|
52
158
|
id: input.providerOrderId
|
|
53
159
|
});
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
160
|
+
return this._mapOrder(order, input, clientOptions);
|
|
161
|
+
}
|
|
162
|
+
async createRefund(input, clientOptions) {
|
|
163
|
+
this._assertReady(clientOptions);
|
|
164
|
+
const refund = await this._gateway(clientOptions).refundCapturedPayment(this._gatewayOptions(clientOptions), {
|
|
165
|
+
captureId: input.providerCaptureId,
|
|
166
|
+
paypalRequestId: input.idempotencyKey,
|
|
167
|
+
body: {
|
|
168
|
+
amount: {
|
|
169
|
+
currencyCode: input.currency,
|
|
170
|
+
value: formatMinorAmount(input.amountMinor, input.currency)
|
|
171
|
+
},
|
|
172
|
+
customId: String(input.refundOperationId),
|
|
173
|
+
invoiceId: input.businessReference
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
return this._mapRefund(refund, input, clientOptions);
|
|
177
|
+
}
|
|
178
|
+
async queryRefund(input, clientOptions) {
|
|
179
|
+
this._assertReady(clientOptions);
|
|
180
|
+
if (!input.providerRefundId) this.app.throw(409, 'PayPal refund has no provider refund identifier');
|
|
181
|
+
const refund = await this._gateway(clientOptions).getRefund(this._gatewayOptions(clientOptions), {
|
|
182
|
+
refundId: input.providerRefundId
|
|
183
|
+
});
|
|
184
|
+
return this._mapRefund(refund, input, clientOptions);
|
|
185
|
+
}
|
|
186
|
+
async verifyWebhook(input, clientOptions) {
|
|
187
|
+
this._assertReady(clientOptions);
|
|
188
|
+
const webhook = PaypalWebhookSchema.safeParse(input.body);
|
|
189
|
+
if (!webhook.success) this.app.throw(400, 'PayPal webhook is invalid');
|
|
190
|
+
try {
|
|
191
|
+
await this._gateway(clientOptions).verifyWebhookSignature(this._gatewayOptions(clientOptions), input);
|
|
192
|
+
} catch (error) {
|
|
193
|
+
this._throwGatewayError(error);
|
|
194
|
+
}
|
|
195
|
+
return await this._mapWebhook(webhook.data, clientOptions);
|
|
196
|
+
}
|
|
197
|
+
async _mapWebhook(event, clientOptions) {
|
|
198
|
+
const resource = event.resource;
|
|
199
|
+
const amount = parsePaypalAmount(resource.amount);
|
|
200
|
+
const currency = parsePaypalCurrency(resource.amount);
|
|
201
|
+
const resourceId = readString(resource.id);
|
|
202
|
+
if (!resourceId || !amount || !currency) this.app.throw(400, 'PayPal webhook has invalid resource');
|
|
203
|
+
if (isRefundEvent(event.event_type)) {
|
|
204
|
+
const refundOperationId = readString(readField(resource, 'customId', 'custom_id'));
|
|
205
|
+
const captureId = readNestedString(resource, ['supplementary_data', 'related_ids', 'capture_id']);
|
|
206
|
+
if (!refundOperationId || !captureId) this.app.throw(400, 'PayPal refund webhook is not correlated');
|
|
207
|
+
const refund = await this.$scope.pay.model.refundOperation.getById(refundOperationId);
|
|
208
|
+
if (!refund) this.app.throw(404, 'PayPal refund operation not found');
|
|
209
|
+
const session = await this.$scope.pay.model.paymentSession.getById(refund.paymentSessionId);
|
|
210
|
+
if (!session || session.providerCaptureId !== captureId) {
|
|
211
|
+
this.app.throw(409, 'PayPal refund webhook capture conflicts');
|
|
212
|
+
}
|
|
213
|
+
const snapshot = this._mapRefund(resource, {
|
|
214
|
+
paymentSessionId: session.id,
|
|
215
|
+
refundOperationId: refund.id,
|
|
216
|
+
businessReference: refund.businessReference,
|
|
217
|
+
idempotencyKey: '',
|
|
218
|
+
amountMinor: refund.amountMinor,
|
|
219
|
+
currency: refund.currency,
|
|
220
|
+
providerCaptureId: captureId,
|
|
221
|
+
providerRefundId: resourceId
|
|
222
|
+
}, clientOptions);
|
|
58
223
|
return {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
224
|
+
eventId: event.id,
|
|
225
|
+
eventType: event.event_type,
|
|
226
|
+
refundOperationId: refund.id,
|
|
227
|
+
refund: snapshot,
|
|
228
|
+
summary: {
|
|
229
|
+
amountMinor: amount,
|
|
230
|
+
currency
|
|
65
231
|
}
|
|
66
232
|
};
|
|
67
233
|
}
|
|
68
|
-
if (
|
|
234
|
+
if (event.event_type.startsWith('PAYMENT.CAPTURE.')) {
|
|
235
|
+
const orderId = readNestedString(resource, ['supplementaryData', 'relatedIds', 'orderId']);
|
|
236
|
+
if (!orderId) this.app.throw(400, 'PayPal capture webhook has no order identifier');
|
|
237
|
+
const order = await this._gateway(clientOptions).getOrder(this._gatewayOptions(clientOptions), {
|
|
238
|
+
id: orderId
|
|
239
|
+
});
|
|
240
|
+
const input = this._inputFromOrder(order, orderId);
|
|
241
|
+
const payment = this._mapOrder(order, input, clientOptions);
|
|
242
|
+
if (!['succeeded', 'failed', 'cancelled'].includes(payment.state)) {
|
|
243
|
+
this.app.throw(400, 'PayPal capture webhook is not terminal');
|
|
244
|
+
}
|
|
245
|
+
if (payment.providerCaptureId && payment.providerCaptureId !== resourceId) {
|
|
246
|
+
this.app.throw(409, 'PayPal capture webhook conflicts with order capture');
|
|
247
|
+
}
|
|
69
248
|
return {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
249
|
+
eventId: event.id,
|
|
250
|
+
eventType: event.event_type,
|
|
251
|
+
paymentSessionId: input.paymentSessionId,
|
|
252
|
+
payment,
|
|
253
|
+
summary: {
|
|
254
|
+
amountMinor: amount,
|
|
255
|
+
currency
|
|
256
|
+
}
|
|
73
257
|
};
|
|
74
258
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
259
|
+
this.app.throw(400, 'PayPal webhook event type is unsupported');
|
|
260
|
+
}
|
|
261
|
+
_inputFromOrder(order, providerOrderId) {
|
|
262
|
+
const orderRecord = asRecord(order);
|
|
263
|
+
const unit = asArray(readField(orderRecord, 'purchaseUnits', 'purchase_units'))[0];
|
|
264
|
+
const unitRecord = asRecord(unit);
|
|
265
|
+
const customId = readString(readField(unitRecord, 'customId', 'custom_id'));
|
|
266
|
+
const businessReference = readString(readField(unitRecord, 'invoiceId', 'invoice_id'));
|
|
267
|
+
const amountMinor = parsePaypalAmount(readField(unitRecord, 'amount'));
|
|
268
|
+
const currency = parsePaypalCurrency(readField(unitRecord, 'amount'));
|
|
269
|
+
if (!customId || !businessReference || amountMinor === undefined || !currency) {
|
|
270
|
+
this.app.throw(400, 'PayPal order is not correlated');
|
|
81
271
|
}
|
|
82
|
-
|
|
272
|
+
return {
|
|
273
|
+
paymentSessionId: customId,
|
|
274
|
+
businessReference,
|
|
275
|
+
idempotencyKey: '',
|
|
276
|
+
amountMinor,
|
|
277
|
+
currency,
|
|
278
|
+
providerOrderId
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
_mapOrder(order, input, clientOptions) {
|
|
282
|
+
const orderRecord = asRecord(order);
|
|
283
|
+
const orderId = readString(orderRecord.id);
|
|
284
|
+
if (!orderId || orderId !== input.providerOrderId) {
|
|
285
|
+
this.app.throw(409, 'PayPal order identifier conflicts');
|
|
286
|
+
}
|
|
287
|
+
const units = asArray(readField(orderRecord, 'purchaseUnits', 'purchase_units'));
|
|
288
|
+
if (units.length !== 1) this.app.throw(409, 'PayPal order has an invalid purchase-unit count');
|
|
289
|
+
const unit = asRecord(units[0]);
|
|
290
|
+
if (readString(readField(unit, 'customId', 'custom_id')) !== String(input.paymentSessionId) || readString(readField(unit, 'invoiceId', 'invoice_id')) !== input.businessReference || parsePaypalAmount(readField(unit, 'amount')) !== input.amountMinor || parsePaypalCurrency(readField(unit, 'amount')) !== input.currency) {
|
|
291
|
+
this.app.throw(409, 'PayPal order facts conflict with the payment session');
|
|
292
|
+
}
|
|
293
|
+
this._assertMerchant(unit, clientOptions);
|
|
294
|
+
const captures = asArray(readField(asRecord(readField(unit, 'payments')), 'captures'));
|
|
295
|
+
if (captures.length > 1) this.app.throw(409, 'PayPal order has multiple captures');
|
|
296
|
+
const capture = asRecord(captures[0]);
|
|
297
|
+
const captureId = readString(capture.id);
|
|
298
|
+
const captureStatus = readString(capture.status);
|
|
299
|
+
if (captureId) {
|
|
300
|
+
if (parsePaypalAmount(capture.amount) !== input.amountMinor || parsePaypalCurrency(capture.amount) !== input.currency) {
|
|
301
|
+
this.app.throw(409, 'PayPal capture facts conflict with the payment session');
|
|
302
|
+
}
|
|
303
|
+
if (captureStatus === 'COMPLETED') {
|
|
304
|
+
return {
|
|
305
|
+
state: 'succeeded',
|
|
306
|
+
providerPaymentId: orderId,
|
|
307
|
+
providerOrderId: orderId,
|
|
308
|
+
providerCaptureId: captureId,
|
|
309
|
+
nextAction: {
|
|
310
|
+
kind: 'completed'
|
|
311
|
+
}
|
|
312
|
+
};
|
|
313
|
+
}
|
|
314
|
+
if (captureStatus === 'FAILED' || captureStatus === 'DECLINED') {
|
|
315
|
+
return {
|
|
316
|
+
state: 'failed',
|
|
317
|
+
providerPaymentId: orderId,
|
|
318
|
+
providerOrderId: orderId,
|
|
319
|
+
providerCaptureId: captureId
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
if (captureStatus === 'PENDING') {
|
|
323
|
+
return {
|
|
324
|
+
state: 'processing',
|
|
325
|
+
providerPaymentId: orderId,
|
|
326
|
+
providerOrderId: orderId,
|
|
327
|
+
providerCaptureId: captureId
|
|
328
|
+
};
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
if (orderRecord.status === OrderStatus.Voided) {
|
|
83
332
|
return {
|
|
84
|
-
state: '
|
|
85
|
-
providerPaymentId:
|
|
86
|
-
providerOrderId:
|
|
333
|
+
state: 'cancelled',
|
|
334
|
+
providerPaymentId: orderId,
|
|
335
|
+
providerOrderId: orderId
|
|
87
336
|
};
|
|
88
337
|
}
|
|
89
338
|
return {
|
|
90
339
|
state: 'requires_action',
|
|
91
|
-
providerPaymentId:
|
|
92
|
-
providerOrderId:
|
|
340
|
+
providerPaymentId: orderId,
|
|
341
|
+
providerOrderId: orderId
|
|
93
342
|
};
|
|
94
343
|
}
|
|
95
|
-
|
|
96
|
-
const
|
|
97
|
-
const
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
return mapRefund(response.result?.status, response.result?.id);
|
|
344
|
+
_mapRefund(refund, input, clientOptions) {
|
|
345
|
+
const record = asRecord(refund);
|
|
346
|
+
const providerRefundId = readString(record.id);
|
|
347
|
+
if (!providerRefundId) this.app.throw(502, 'PayPal refund returned no identifier');
|
|
348
|
+
if (input.providerRefundId && input.providerRefundId !== providerRefundId || readString(readField(record, 'customId', 'custom_id')) !== String(input.refundOperationId) || readString(readField(record, 'invoiceId', 'invoice_id')) !== input.businessReference || parsePaypalAmount(record.amount) !== input.amountMinor || parsePaypalCurrency(record.amount) !== input.currency) {
|
|
349
|
+
this.app.throw(409, 'PayPal refund facts conflict with the refund operation');
|
|
350
|
+
}
|
|
351
|
+
this._assertMerchant(record, clientOptions);
|
|
352
|
+
return mapRefund(readString(record.status), providerRefundId);
|
|
108
353
|
}
|
|
109
|
-
|
|
110
|
-
this.
|
|
354
|
+
_gateway(clientOptions) {
|
|
355
|
+
return clientOptions.gateway ?? createPaypalGateway(this.bean.core.fetch);
|
|
111
356
|
}
|
|
112
|
-
|
|
113
|
-
|
|
357
|
+
_gatewayOptions(clientOptions) {
|
|
358
|
+
const {
|
|
359
|
+
clientId,
|
|
360
|
+
clientSecret
|
|
361
|
+
} = clientOptions.secretCredential;
|
|
362
|
+
const webhookId = clientOptions.webhookId;
|
|
363
|
+
if (!clientId || !clientSecret || !webhookId) {
|
|
364
|
+
this.app.throw(503, 'PayPal is not fully configured');
|
|
365
|
+
}
|
|
366
|
+
return {
|
|
367
|
+
environment: clientOptions.environment,
|
|
368
|
+
clientId,
|
|
369
|
+
clientSecret,
|
|
370
|
+
webhookId
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
_throwGatewayError(error) {
|
|
374
|
+
if (error instanceof PaypalGatewayError) this.app.throw(error.status, error.message);
|
|
375
|
+
throw error;
|
|
114
376
|
}
|
|
115
|
-
|
|
377
|
+
_assertReady(clientOptions) {
|
|
116
378
|
const {
|
|
117
379
|
clientId,
|
|
118
380
|
clientSecret
|
|
119
381
|
} = clientOptions.secretCredential;
|
|
120
|
-
if (!clientId || !clientSecret
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
}
|
|
382
|
+
if (!clientId || !clientSecret || !clientOptions.webhookId || !clientOptions.merchantReference) {
|
|
383
|
+
this.app.throw(503, 'PayPal is not fully configured');
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
_assertMerchant(value, clientOptions) {
|
|
387
|
+
const merchantId = readNestedString(value, ['payee', 'merchantId']) ?? readNestedString(value, ['payee', 'merchant_id']) ?? readNestedString(value, ['sellerReceivableBreakdown', 'payee', 'merchantId']) ?? readNestedString(value, ['seller_receivable_breakdown', 'payee', 'merchant_id']);
|
|
388
|
+
if (!merchantId || merchantId !== clientOptions.merchantReference) {
|
|
389
|
+
this.app.throw(409, 'PayPal merchant reference conflicts');
|
|
390
|
+
}
|
|
129
391
|
}
|
|
130
392
|
};
|
|
131
393
|
PayProviderPaypal = __decorate([PayProvider({
|
|
@@ -142,12 +404,13 @@ PayProviderPaypal = __decorate([PayProvider({
|
|
|
142
404
|
},
|
|
143
405
|
clients: {
|
|
144
406
|
default: {
|
|
145
|
-
environment:
|
|
407
|
+
environment: app.meta.env.PAYPAL_ENVIRONMENT,
|
|
146
408
|
secretCredential: {
|
|
147
409
|
clientId: app.meta.env.PAYPAL_CLIENT_ID,
|
|
148
410
|
clientSecret: app.meta.env.PAYPAL_CLIENT_SECRET
|
|
149
411
|
},
|
|
150
|
-
webhookId: app.meta.env.PAYPAL_WEBHOOK_ID
|
|
412
|
+
webhookId: app.meta.env.PAYPAL_WEBHOOK_ID,
|
|
413
|
+
merchantReference: app.meta.env.PAYPAL_MERCHANT_REFERENCE
|
|
151
414
|
}
|
|
152
415
|
}
|
|
153
416
|
}), BeanInfo({
|
|
@@ -177,6 +440,49 @@ function mapRefund(status, providerRefundId) {
|
|
|
177
440
|
providerRefundId
|
|
178
441
|
};
|
|
179
442
|
}
|
|
443
|
+
function asRecord(value) {
|
|
444
|
+
return value && typeof value === 'object' ? value : {};
|
|
445
|
+
}
|
|
446
|
+
function asArray(value) {
|
|
447
|
+
return Array.isArray(value) ? value : [];
|
|
448
|
+
}
|
|
449
|
+
function readString(value) {
|
|
450
|
+
return typeof value === 'string' && value ? value : undefined;
|
|
451
|
+
}
|
|
452
|
+
function readField(record, ...keys) {
|
|
453
|
+
for (const key of keys) {
|
|
454
|
+
if (record[key] !== undefined) return record[key];
|
|
455
|
+
}
|
|
456
|
+
return undefined;
|
|
457
|
+
}
|
|
458
|
+
function readNestedString(value, path) {
|
|
459
|
+
let current = value;
|
|
460
|
+
for (const key of path) {
|
|
461
|
+
const record = asRecord(current);
|
|
462
|
+
current = record[key] ?? record[camelToSnake(key)];
|
|
463
|
+
}
|
|
464
|
+
return readString(current);
|
|
465
|
+
}
|
|
466
|
+
function camelToSnake(value) {
|
|
467
|
+
return value.replace(/[A-Z]/g, character => `_${character.toLowerCase()}`);
|
|
468
|
+
}
|
|
469
|
+
function parsePaypalAmount(value) {
|
|
470
|
+
const amount = asRecord(value);
|
|
471
|
+
if (readString(readField(amount, 'currencyCode', 'currency_code')) !== 'USD') return undefined;
|
|
472
|
+
const decimal = readString(amount.value);
|
|
473
|
+
if (!decimal || !/^\d+\.\d{2}$/.test(decimal)) return undefined;
|
|
474
|
+
const [whole, fractional] = decimal.split('.');
|
|
475
|
+
const result = Number(whole) * 100 + Number(fractional);
|
|
476
|
+
return Number.isSafeInteger(result) ? result : undefined;
|
|
477
|
+
}
|
|
478
|
+
function parsePaypalCurrency(value) {
|
|
479
|
+
const amount = asRecord(value);
|
|
480
|
+
const currency = readString(readField(amount, 'currencyCode', 'currency_code'));
|
|
481
|
+
return currency === 'USD' ? currency : undefined;
|
|
482
|
+
}
|
|
483
|
+
function isRefundEvent(eventType) {
|
|
484
|
+
return eventType === 'PAYMENT.CAPTURE.REFUNDED' || eventType.startsWith('PAYMENT.REFUND.');
|
|
485
|
+
}
|
|
180
486
|
|
|
181
487
|
let ScopeModulePayPaypal = class ScopeModulePayPaypal extends BeanScopeBase {};
|
|
182
488
|
ScopeModulePayPaypal = __decorate([Scope(), BeanInfo({
|
|
@@ -184,5 +490,5 @@ ScopeModulePayPaypal = __decorate([Scope(), BeanInfo({
|
|
|
184
490
|
})], ScopeModulePayPaypal);
|
|
185
491
|
/** scope: end */
|
|
186
492
|
|
|
187
|
-
export { PayProviderPaypal, ScopeModulePayPaypal };
|
|
493
|
+
export { PayProviderPaypal, PaypalGatewayError, ScopeModulePayPaypal, createPaypalGateway };
|
|
188
494
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/bean/payProvider.paypal.ts","../src/.metadata/index.ts"],"sourcesContent":[null,null],"names":["app","useApp","PayProviderPaypal","BeanBase","startPayment","input","clientOptions","providerOrderId","queryPayment","returnUrl","cancelUrl","throw","orders","OrdersController","_createClient","response","createOrder","paypalRequestId","idempotencyKey","body","intent","CheckoutPaymentIntent","Capture","applicationContext","purchaseUnits","customId","String","paymentSessionId","invoiceId","businessReference","amount","currencyCode","currency","value","formatMinorAmount","amountMinor","order","result","approvalUrl","links","find","item","rel","href","id","state","providerPaymentId","nextAction","kind","url","getOrder","capture","payments","captures","status","providerCaptureId","OrderStatus","Voided","createRefund","PaymentsController","refundCapturedPayment","captureId","mapRefund","queryRefund","_input","_clientOptions","verifyWebhook","clientId","clientSecret","secretCredential","Client","clientCredentialsAuthCredentials","oAuthClientId","oAuthClientSecret","timeout","environment","Environment","Production","Sandbox","__decorate","PayProvider","base","capabilities","redirectCheckout","embeddedCheckout","automaticCapture","manualCapture","refunds","partialRefunds","webhooks","clients","default","meta","env","PAYPAL_CLIENT_ID","PAYPAL_CLIENT_SECRET","webhookId","PAYPAL_WEBHOOK_ID","__z_BeanInfo","module","Number","isSafeInteger","Error","Math","floor","padStart","providerRefundId","ScopeModulePayPaypal","BeanScopeBase","Scope"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/lib/paypalGateway.ts","../src/bean/payProvider.paypal.ts","../src/.metadata/index.ts"],"sourcesContent":[null,null,null],"names":["PaypalGatewayError","Error","constructor","status","message","createPaypalGateway","fetcher","createOrder","options","input","OrdersController","createClient","result","captureOrder","getOrder","refundCapturedPayment","PaymentsController","getRefund","verifyWebhookSignature","transmissionId","getHeader","headers","transmissionTime","certUrl","authAlgo","transmissionSig","apiBaseUrl","environment","tokenResponse","method","Buffer","from","clientId","clientSecret","toString","body","token","asRecord","ok","json","undefined","accessToken","readString","access_token","response","JSON","stringify","auth_algo","cert_url","transmission_id","transmission_sig","transmission_time","webhook_id","webhookId","webhook_event","verification_status","Client","clientCredentialsAuthCredentials","oAuthClientId","oAuthClientSecret","timeout","Environment","Production","Sandbox","value","key","Array","isArray","app","useApp","PaypalWebhookSchema","z","object","id","string","min","max","event_type","resource","record","unknown","PayProviderPaypal","BeanBase","startPayment","clientOptions","providerOrderId","queryPayment","returnUrl","cancelUrl","throw","_assertReady","order","_gateway","_gatewayOptions","paypalRequestId","idempotencyKey","intent","CheckoutPaymentIntent","Capture","applicationContext","purchaseUnits","customId","String","paymentSessionId","invoiceId","businessReference","amount","currencyCode","currency","formatMinorAmount","amountMinor","orderRecord","approvalUrl","asArray","links","map","find","item","rel","href","orderId","state","providerPaymentId","nextAction","kind","url","confirmPayment","_mapOrder","createRefund","refund","captureId","providerCaptureId","refundOperationId","_mapRefund","queryRefund","providerRefundId","refundId","verifyWebhook","webhook","safeParse","success","error","_throwGatewayError","_mapWebhook","data","event","parsePaypalAmount","parsePaypalCurrency","resourceId","isRefundEvent","readField","readNestedString","$scope","pay","model","refundOperation","getById","session","paymentSession","snapshot","eventId","eventType","summary","startsWith","_inputFromOrder","payment","includes","unit","unitRecord","units","length","_assertMerchant","captures","capture","captureStatus","OrderStatus","Voided","mapRefund","gateway","bean","core","fetch","secretCredential","merchantReference","merchantId","__decorate","PayProvider","base","capabilities","redirectCheckout","embeddedCheckout","automaticCapture","manualCapture","refunds","partialRefunds","webhooks","clients","default","meta","env","PAYPAL_ENVIRONMENT","PAYPAL_CLIENT_ID","PAYPAL_CLIENT_SECRET","PAYPAL_WEBHOOK_ID","PAYPAL_MERCHANT_REFERENCE","__z_BeanInfo","module","Number","isSafeInteger","Math","floor","padStart","keys","path","current","camelToSnake","replace","character","toLowerCase","decimal","test","whole","fractional","split","ScopeModulePayPaypal","BeanScopeBase","Scope"],"mappings":"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"}
|
package/dist/lib/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export
|
|
1
|
+
export * from './paypalGateway.ts';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|