vona-module-pay-mock 5.0.2 → 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.
@@ -34,13 +34,19 @@ declare module 'vona' {
34
34
  /** dto: begin */
35
35
  export * from '../dto/mockPaymentComplete.tsx';
36
36
  export * from '../dto/mockPaymentReceipt.tsx';
37
+ export * from '../dto/mockRefundComplete.tsx';
38
+ export * from '../dto/mockRefundReceipt.tsx';
37
39
  import type { IDtoOptionsMockPaymentComplete } from '../dto/mockPaymentComplete.tsx';
38
40
  import type { IDtoOptionsMockPaymentReceipt } from '../dto/mockPaymentReceipt.tsx';
41
+ import type { IDtoOptionsMockRefundComplete } from '../dto/mockRefundComplete.tsx';
42
+ import type { IDtoOptionsMockRefundReceipt } from '../dto/mockRefundReceipt.tsx';
39
43
  import 'vona-module-a-web';
40
44
  declare module 'vona-module-a-web' {
41
45
  interface IDtoRecord {
42
46
  'pay-mock:mockPaymentComplete': IDtoOptionsMockPaymentComplete;
43
47
  'pay-mock:mockPaymentReceipt': IDtoOptionsMockPaymentReceipt;
48
+ 'pay-mock:mockRefundComplete': IDtoOptionsMockRefundComplete;
49
+ 'pay-mock:mockRefundReceipt': IDtoOptionsMockRefundReceipt;
44
50
  }
45
51
  }
46
52
  declare module 'vona-module-pay-mock' {
@@ -49,6 +55,8 @@ declare module 'vona-module-pay-mock' {
49
55
  /** dto: begin */
50
56
  import type { DtoMockPaymentComplete } from '../dto/mockPaymentComplete.tsx';
51
57
  import type { DtoMockPaymentReceipt } from '../dto/mockPaymentReceipt.tsx';
58
+ import type { DtoMockRefundComplete } from '../dto/mockRefundComplete.tsx';
59
+ import type { DtoMockRefundReceipt } from '../dto/mockRefundReceipt.tsx';
52
60
  declare module 'vona-module-pay-mock' {
53
61
  interface IDtoOptionsMockPaymentComplete {
54
62
  fields?: TypeEntityOptionsFields<DtoMockPaymentComplete, IDtoOptionsMockPaymentComplete[TypeSymbolKeyFieldsMore]>;
@@ -56,6 +64,12 @@ declare module 'vona-module-pay-mock' {
56
64
  interface IDtoOptionsMockPaymentReceipt {
57
65
  fields?: TypeEntityOptionsFields<DtoMockPaymentReceipt, IDtoOptionsMockPaymentReceipt[TypeSymbolKeyFieldsMore]>;
58
66
  }
67
+ interface IDtoOptionsMockRefundComplete {
68
+ fields?: TypeEntityOptionsFields<DtoMockRefundComplete, IDtoOptionsMockRefundComplete[TypeSymbolKeyFieldsMore]>;
69
+ }
70
+ interface IDtoOptionsMockRefundReceipt {
71
+ fields?: TypeEntityOptionsFields<DtoMockRefundReceipt, IDtoOptionsMockRefundReceipt[TypeSymbolKeyFieldsMore]>;
72
+ }
59
73
  }
60
74
  /** dto: end */
61
75
  /** controller: begin */
@@ -87,6 +101,7 @@ declare module 'vona-module-pay-mock' {
87
101
  declare module 'vona-module-a-web' {
88
102
  interface IApiPathPostRecord {
89
103
  '/pay/mock/payment-session/:id/complete': undefined;
104
+ '/pay/mock/payment-session/refund-operation/:id/complete': undefined;
90
105
  }
91
106
  }
92
107
  /** controller: end */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/.metadata/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/.metadata/index.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export interface IPayProviderOptionsMock extends IDecoratorPayProviderOptions<IP
11
11
  }
12
12
  export declare class PayProviderMock extends BeanBase implements IPayProviderExecute<IPayProviderMockClientOptions> {
13
13
  startPayment(input: IPayProviderPaymentInput, _clientOptions: IPayProviderMockClientOptions): Promise<IPayProviderPaymentSnapshot>;
14
+ confirmPayment(input: IPayProviderPaymentInput, clientOptions: IPayProviderMockClientOptions): Promise<IPayProviderPaymentSnapshot>;
14
15
  queryPayment(input: IPayProviderPaymentInput, _clientOptions: IPayProviderMockClientOptions): Promise<IPayProviderPaymentSnapshot>;
15
16
  createRefund(input: IPayProviderRefundInput, _clientOptions: IPayProviderMockClientOptions): Promise<IPayProviderRefundSnapshot>;
16
17
  verifyWebhook(input: IPayProviderWebhookInput, clientOptions: IPayProviderMockClientOptions): Promise<IPayProviderVerifiedWebhook>;
@@ -1 +1 @@
1
- {"version":3,"file":"payProvider.mock.d.ts","sourceRoot":"","sources":["../../src/bean/payProvider.mock.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;AAexC,MAAM,WAAW,4BAA6B,SAAQ,wBAAwB;IAC5E,SAAS,EAAE,KAAK,CAAC;CAClB;AAED,MAAM,WAAW,6BAA8B,SAAQ,yBAAyB;IAC9E,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAID,MAAM,WAAW,uBAAwB,SAAQ,4BAA4B,CAC3E,4BAA4B,EAC5B,6BAA6B,CAC9B;CAAG;AAEJ,qBAyBa,eACX,SAAQ,QACR,YAAW,mBAAmB,CAAC,6BAA6B,CAAC;IAEvD,YAAY,CAChB,KAAK,EAAE,wBAAwB,EAC/B,cAAc,EAAE,6BAA6B,GAC5C,OAAO,CAAC,2BAA2B,CAAC;IAQjC,YAAY,CAChB,KAAK,EAAE,wBAAwB,EAC/B,cAAc,EAAE,6BAA6B,GAC5C,OAAO,CAAC,2BAA2B,CAAC;IAOjC,YAAY,CAChB,KAAK,EAAE,uBAAuB,EAC9B,cAAc,EAAE,6BAA6B,GAC5C,OAAO,CAAC,0BAA0B,CAAC;IAOhC,aAAa,CACjB,KAAK,EAAE,wBAAwB,EAC/B,aAAa,EAAE,6BAA6B,GAC3C,OAAO,CAAC,2BAA2B,CAAC;CAgCxC"}
1
+ {"version":3,"file":"payProvider.mock.d.ts","sourceRoot":"","sources":["../../src/bean/payProvider.mock.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;AAyBxC,MAAM,WAAW,4BAA6B,SAAQ,wBAAwB;IAC5E,SAAS,EAAE,KAAK,CAAC;CAClB;AAED,MAAM,WAAW,6BAA8B,SAAQ,yBAAyB;IAC9E,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAID,MAAM,WAAW,uBAAwB,SAAQ,4BAA4B,CAC3E,4BAA4B,EAC5B,6BAA6B,CAC9B;CAAG;AAEJ,qBAyBa,eACX,SAAQ,QACR,YAAW,mBAAmB,CAAC,6BAA6B,CAAC;IAEvD,YAAY,CAChB,KAAK,EAAE,wBAAwB,EAC/B,cAAc,EAAE,6BAA6B,GAC5C,OAAO,CAAC,2BAA2B,CAAC;IAQjC,cAAc,CAClB,KAAK,EAAE,wBAAwB,EAC/B,aAAa,EAAE,6BAA6B,GAC3C,OAAO,CAAC,2BAA2B,CAAC;IAIjC,YAAY,CAChB,KAAK,EAAE,wBAAwB,EAC/B,cAAc,EAAE,6BAA6B,GAC5C,OAAO,CAAC,2BAA2B,CAAC;IAOjC,YAAY,CAChB,KAAK,EAAE,uBAAuB,EAC9B,cAAc,EAAE,6BAA6B,GAC5C,OAAO,CAAC,0BAA0B,CAAC;IAOhC,aAAa,CACjB,KAAK,EAAE,wBAAwB,EAC/B,aAAa,EAAE,6BAA6B,GAC3C,OAAO,CAAC,2BAA2B,CAAC;CAmDxC"}
@@ -3,9 +3,12 @@ import type { IDecoratorControllerOptions } from 'vona-module-a-web';
3
3
  import { BeanBase } from 'vona';
4
4
  import { DtoMockPaymentComplete } from '../dto/mockPaymentComplete.tsx';
5
5
  import { DtoMockPaymentReceipt } from '../dto/mockPaymentReceipt.tsx';
6
+ import { DtoMockRefundComplete } from '../dto/mockRefundComplete.tsx';
7
+ import { DtoMockRefundReceipt } from '../dto/mockRefundReceipt.tsx';
6
8
  export interface IControllerOptionsMockPayment extends IDecoratorControllerOptions {
7
9
  }
8
10
  export declare class ControllerMockPayment extends BeanBase {
9
11
  complete(id: TableIdentity, command: DtoMockPaymentComplete): Promise<DtoMockPaymentReceipt>;
12
+ completeRefund(id: TableIdentity, command: DtoMockRefundComplete): Promise<DtoMockRefundReceipt>;
10
13
  }
11
14
  //# sourceMappingURL=mockPayment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mockPayment.d.ts","sourceRoot":"","sources":["../../src/controller/mockPayment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAIhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,MAAM,WAAW,6BAA8B,SAAQ,2BAA2B;CAAG;AAErF,qBAGa,qBAAsB,SAAQ,QAAQ;IAG3C,QAAQ,CACwB,EAAE,EAAE,aAAa,EACzC,OAAO,EAAE,sBAAsB,GAC1C,OAAO,CAAC,qBAAqB,CAAC;CAGlC"}
1
+ {"version":3,"file":"mockPayment.d.ts","sourceRoot":"","sources":["../../src/controller/mockPayment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAIhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,MAAM,WAAW,6BAA8B,SAAQ,2BAA2B;CAAG;AAErF,qBAGa,qBAAsB,SAAQ,QAAQ;IAG3C,QAAQ,CACwB,EAAE,EAAE,aAAa,EACzC,OAAO,EAAE,sBAAsB,GAC1C,OAAO,CAAC,qBAAqB,CAAC;IAM3B,cAAc,CACkB,EAAE,EAAE,aAAa,EACzC,OAAO,EAAE,qBAAqB,GACzC,OAAO,CAAC,oBAAoB,CAAC;CAGjC"}
@@ -0,0 +1,7 @@
1
+ import type { IDecoratorDtoOptions } from 'vona-module-a-web';
2
+ export interface IDtoOptionsMockRefundComplete extends IDecoratorDtoOptions {
3
+ }
4
+ export declare class DtoMockRefundComplete {
5
+ outcome: 'succeeded' | 'failed' | 'cancelled';
6
+ }
7
+ //# sourceMappingURL=mockRefundComplete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockRefundComplete.d.ts","sourceRoot":"","sources":["../../src/dto/mockRefundComplete.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAM9D,MAAM,WAAW,6BAA8B,SAAQ,oBAAoB;CAAG;AAE9E,qBACa,qBAAqB;IAEhC,OAAO,EAAE,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;CAC/C"}
@@ -0,0 +1,9 @@
1
+ import type { TableIdentity } from 'table-identity';
2
+ import type { IDecoratorDtoOptions } from 'vona-module-a-web';
3
+ export interface IDtoOptionsMockRefundReceipt extends IDecoratorDtoOptions {
4
+ }
5
+ export declare class DtoMockRefundReceipt {
6
+ refundOperationId: TableIdentity;
7
+ accepted: true;
8
+ }
9
+ //# sourceMappingURL=mockRefundReceipt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockRefundReceipt.d.ts","sourceRoot":"","sources":["../../src/dto/mockRefundReceipt.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAK9D,MAAM,WAAW,4BAA6B,SAAQ,oBAAoB;CAAG;AAE7E,qBACa,oBAAoB;IAE/B,iBAAiB,EAAE,aAAa,CAAC;IAGjC,QAAQ,EAAE,IAAI,CAAC;CAChB"}
package/dist/index.js CHANGED
@@ -65,6 +65,54 @@ let ServicePayMock = class ServicePayMock extends BeanBase {
65
65
  accepted: true
66
66
  };
67
67
  }
68
+ async completeRefundOperation(refundOperationId, outcome) {
69
+ this._assertSimulatorEnabled();
70
+ const refund = await this.$scope.pay.model.refundOperation.getById(refundOperationId);
71
+ if (!refund) this.app.throw(404, 'mock refund operation not found');
72
+ const session = await this.$scope.pay.model.paymentSession.getById(refund.paymentSessionId);
73
+ if (!session) this.app.throw(404, 'mock refund operation not found');
74
+ if (!(await this.bean.passport.isSystemAdmin())) {
75
+ this.app.throw(403, 'mock refund completion requires system administrator authority');
76
+ }
77
+ if (session.providerName !== 'pay-mock:mock' || session.clientName !== 'default' || session.environment !== 'sandbox' || refund.state !== 'pending') {
78
+ this.app.throw(409, 'mock refund operation is not actionable');
79
+ }
80
+ const {
81
+ clientOptions
82
+ } = this.bean.payProvider.resolveByName(session.providerName, session.clientName);
83
+ const secret = clientOptions.secretWebhook;
84
+ if (typeof secret !== 'string' || !secret) {
85
+ this.app.throw(500, 'mock webhook secret is not configured');
86
+ }
87
+ const rawBody = JSON.stringify({
88
+ eventId: `mock-refund-${randomUUID()}`,
89
+ eventType: `refund.${outcome}`,
90
+ refundOperationId: String(refund.id),
91
+ state: outcome,
92
+ amountMinor: refund.amountMinor,
93
+ currency: refund.currency,
94
+ providerRefundId: refund.providerRefundId ?? `mock-refund-${refund.id}`
95
+ });
96
+ const signature = createHmac('sha256', secret).update(rawBody).digest('hex');
97
+ const instanceName = this.ctx.instanceName;
98
+ const instanceHeaderField = this.app.config.instance.headerField;
99
+ const response = await fetch(this.app.util.getAbsoluteUrlByApiPath(`/pay/webhook/${session.providerName}/${session.clientName}`), {
100
+ method: 'POST',
101
+ headers: {
102
+ 'content-type': 'application/json',
103
+ 'x-pay-mock-signature': signature,
104
+ ...(instanceName && instanceHeaderField ? {
105
+ [instanceHeaderField]: instanceName
106
+ } : {})
107
+ },
108
+ body: rawBody
109
+ });
110
+ if (!response.ok) this.app.throw(502, 'mock refund webhook was rejected');
111
+ return {
112
+ refundOperationId: refund.id,
113
+ accepted: true
114
+ };
115
+ }
68
116
  _assertSimulatorEnabled() {
69
117
  if (this.app.meta.env.META_MODE === 'prod') {
70
118
  this.app.throw(404, 'mock payment simulator is unavailable');
@@ -97,12 +145,38 @@ DtoMockPaymentReceipt = __decorate([Dto(), BeanInfo({
97
145
  module: "pay-mock"
98
146
  })], DtoMockPaymentReceipt);
99
147
 
148
+ let DtoMockRefundComplete = class DtoMockRefundComplete {
149
+ constructor() {
150
+ this.outcome = void 0;
151
+ }
152
+ };
153
+ __decorate([Api.field(z.enum(['succeeded', 'failed', 'cancelled'])), __metadata("design:type", String)], DtoMockRefundComplete.prototype, "outcome", void 0);
154
+ DtoMockRefundComplete = __decorate([Dto(), BeanInfo({
155
+ module: "pay-mock"
156
+ })], DtoMockRefundComplete);
157
+
158
+ let DtoMockRefundReceipt = class DtoMockRefundReceipt {
159
+ constructor() {
160
+ this.refundOperationId = void 0;
161
+ this.accepted = void 0;
162
+ }
163
+ };
164
+ __decorate([Api.field(v.tableIdentity()), __metadata("design:type", Object)], DtoMockRefundReceipt.prototype, "refundOperationId", void 0);
165
+ __decorate([Api.field(v.required()), __metadata("design:type", Boolean)], DtoMockRefundReceipt.prototype, "accepted", void 0);
166
+ DtoMockRefundReceipt = __decorate([Dto(), BeanInfo({
167
+ module: "pay-mock"
168
+ })], DtoMockRefundReceipt);
169
+
100
170
  let ControllerMockPayment = class ControllerMockPayment extends BeanBase {
101
171
  async complete(id, command) {
102
172
  return await this.scope.service.payMock.completePaymentSession(id, command.outcome);
103
173
  }
174
+ async completeRefund(id, command) {
175
+ return await this.scope.service.payMock.completeRefundOperation(id, command.outcome);
176
+ }
104
177
  };
105
178
  __decorate([Web.post(':id/complete'), Api.body(DtoMockPaymentReceipt), __param(0, Arg.param('id', v.tableIdentity())), __param(1, Arg.body()), __metadata("design:type", Function), __metadata("design:paramtypes", [Object, DtoMockPaymentComplete]), __metadata("design:returntype", Promise)], ControllerMockPayment.prototype, "complete", null);
179
+ __decorate([Web.post('refund-operation/:id/complete'), Api.body(DtoMockRefundReceipt), __param(0, Arg.param('id', v.tableIdentity())), __param(1, Arg.body()), __metadata("design:type", Function), __metadata("design:paramtypes", [Object, DtoMockRefundComplete]), __metadata("design:returntype", Promise)], ControllerMockPayment.prototype, "completeRefund", null);
106
180
  ControllerMockPayment = __decorate([Controller('mock/payment-session', {
107
181
  meta: {
108
182
  mode: ['dev', 'test']
@@ -111,7 +185,7 @@ ControllerMockPayment = __decorate([Controller('mock/payment-session', {
111
185
  module: "pay-mock"
112
186
  })], ControllerMockPayment);
113
187
 
114
- const WebhookBodySchema = z.object({
188
+ const PaymentWebhookBodySchema = z.object({
115
189
  eventId: z.string().min(1).max(255),
116
190
  eventType: z.enum(['payment.succeeded', 'payment.failed', 'payment.cancelled']),
117
191
  paymentSessionId: z.string().min(1),
@@ -121,6 +195,15 @@ const WebhookBodySchema = z.object({
121
195
  providerPaymentId: z.string().min(1).max(255).optional(),
122
196
  providerCaptureId: z.string().min(1).max(255).optional()
123
197
  });
198
+ const RefundWebhookBodySchema = z.object({
199
+ eventId: z.string().min(1).max(255),
200
+ eventType: z.enum(['refund.pending', 'refund.succeeded', 'refund.failed', 'refund.cancelled']),
201
+ refundOperationId: z.string().min(1),
202
+ state: z.enum(['pending', 'succeeded', 'failed', 'cancelled']),
203
+ amountMinor: z.number().int().positive(),
204
+ currency: z.string().length(3),
205
+ providerRefundId: z.string().min(1).max(255).optional()
206
+ });
124
207
  const app = useApp();
125
208
  let PayProviderMock = class PayProviderMock extends BeanBase {
126
209
  async startPayment(input, _clientOptions) {
@@ -132,6 +215,9 @@ let PayProviderMock = class PayProviderMock extends BeanBase {
132
215
  }
133
216
  };
134
217
  }
218
+ async confirmPayment(input, clientOptions) {
219
+ return await this.queryPayment(input, clientOptions);
220
+ }
135
221
  async queryPayment(input, _clientOptions) {
136
222
  return {
137
223
  state: 'processing',
@@ -153,22 +239,40 @@ let PayProviderMock = class PayProviderMock extends BeanBase {
153
239
  if (!expected || !actual || !safeEqual(actual, expected)) {
154
240
  this.app.throw(401, 'mock webhook signature is invalid');
155
241
  }
156
- const body = WebhookBodySchema.safeParse(input.body);
157
- if (!body.success) this.app.throw(400, 'mock webhook is invalid');
158
- const eventType = `payment.${body.data.state}`;
159
- if (body.data.eventType !== eventType) this.app.throw(400, 'mock webhook event type is invalid');
242
+ const payment = PaymentWebhookBodySchema.safeParse(input.body);
243
+ if (payment.success) {
244
+ const eventType = `payment.${payment.data.state}`;
245
+ if (payment.data.eventType !== eventType) this.app.throw(400, 'mock webhook event type is invalid');
246
+ return {
247
+ eventId: payment.data.eventId,
248
+ eventType,
249
+ paymentSessionId: payment.data.paymentSessionId,
250
+ payment: {
251
+ state: payment.data.state,
252
+ providerPaymentId: payment.data.providerPaymentId,
253
+ providerCaptureId: payment.data.providerCaptureId
254
+ },
255
+ summary: {
256
+ amountMinor: payment.data.amountMinor,
257
+ currency: payment.data.currency
258
+ }
259
+ };
260
+ }
261
+ const refund = RefundWebhookBodySchema.safeParse(input.body);
262
+ if (!refund.success) this.app.throw(400, 'mock webhook is invalid');
263
+ const eventType = `refund.${refund.data.state}`;
264
+ if (refund.data.eventType !== eventType) this.app.throw(400, 'mock webhook event type is invalid');
160
265
  return {
161
- eventId: body.data.eventId,
266
+ eventId: refund.data.eventId,
162
267
  eventType,
163
- paymentSessionId: body.data.paymentSessionId,
164
- payment: {
165
- state: body.data.state,
166
- providerPaymentId: body.data.providerPaymentId,
167
- providerCaptureId: body.data.providerCaptureId
268
+ refundOperationId: refund.data.refundOperationId,
269
+ refund: {
270
+ state: refund.data.state,
271
+ providerRefundId: refund.data.providerRefundId
168
272
  },
169
273
  summary: {
170
- amountMinor: body.data.amountMinor,
171
- currency: body.data.currency
274
+ amountMinor: refund.data.amountMinor,
275
+ currency: refund.data.currency
172
276
  }
173
277
  };
174
278
  }
@@ -212,5 +316,5 @@ ScopeModulePayMock = __decorate([Scope(), BeanInfo({
212
316
  })], ScopeModulePayMock);
213
317
  /** scope: end */
214
318
 
215
- export { ControllerMockPayment, DtoMockPaymentComplete, DtoMockPaymentReceipt, PayProviderMock, ScopeModulePayMock, ServicePayMock };
319
+ export { ControllerMockPayment, DtoMockPaymentComplete, DtoMockPaymentReceipt, DtoMockRefundComplete, DtoMockRefundReceipt, PayProviderMock, ScopeModulePayMock, ServicePayMock };
216
320
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/service/payMock.ts","../src/dto/mockPaymentComplete.tsx","../src/dto/mockPaymentReceipt.tsx","../src/controller/mockPayment.ts","../src/bean/payProvider.mock.ts","../src/.metadata/index.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["ServicePayMock","BeanBase","completePaymentSession","paymentSessionId","outcome","_assertSimulatorEnabled","session","$scope","pay","model","paymentSession","getById","String","userId","bean","passport","currentUser","id","app","throw","providerName","clientName","environment","state","expiresAt","Date","clientOptions","payProvider","resolveByName","secret","secretWebhook","rawBody","JSON","stringify","eventId","randomUUID","eventType","amountMinor","currency","providerPaymentId","providerCaptureId","signature","createHmac","update","digest","instanceName","ctx","instanceHeaderField","config","instance","headerField","response","fetch","util","getAbsoluteUrlByApiPath","method","headers","body","ok","accepted","meta","env","META_MODE","__decorate","Service","__z_BeanInfo","module","DtoMockPaymentComplete","constructor","Api","field","z","enum","prototype","Dto","DtoMockPaymentReceipt","v","tableIdentity","required","ControllerMockPayment","complete","command","scope","service","payMock","Web","post","__param","Arg","param","Controller","mode","WebhookBodySchema","object","string","min","max","number","int","nonnegative","length","optional","useApp","PayProviderMock","startPayment","input","_clientOptions","nextAction","kind","queryPayment","createRefund","providerRefundId","refundOperationId","verifyWebhook","actual","Array","isArray","expected","undefined","safeEqual","safeParse","success","data","payment","summary","PayProvider","base","capabilities","redirectCheckout","embeddedCheckout","automaticCapture","manualCapture","refunds","partialRefunds","webhooks","clients","default","secretCredential","PAY_MOCK_DEFAULT_CREDENTIAL","PAY_MOCK_DEFAULT_WEBHOOK","secondary","PAY_MOCK_SECONDARY_CREDENTIAL","PAY_MOCK_SECONDARY_WEBHOOK","actualBuffer","Buffer","from","expectedBuffer","timingSafeEqual","ScopeModulePayMock","BeanScopeBase","Scope"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/service/payMock.ts","../src/dto/mockPaymentComplete.tsx","../src/dto/mockPaymentReceipt.tsx","../src/dto/mockRefundComplete.tsx","../src/dto/mockRefundReceipt.tsx","../src/controller/mockPayment.ts","../src/bean/payProvider.mock.ts","../src/.metadata/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":["ServicePayMock","BeanBase","completePaymentSession","paymentSessionId","outcome","_assertSimulatorEnabled","session","$scope","pay","model","paymentSession","getById","String","userId","bean","passport","currentUser","id","app","throw","providerName","clientName","environment","state","expiresAt","Date","clientOptions","payProvider","resolveByName","secret","secretWebhook","rawBody","JSON","stringify","eventId","randomUUID","eventType","amountMinor","currency","providerPaymentId","providerCaptureId","signature","createHmac","update","digest","instanceName","ctx","instanceHeaderField","config","instance","headerField","response","fetch","util","getAbsoluteUrlByApiPath","method","headers","body","ok","accepted","completeRefundOperation","refundOperationId","refund","refundOperation","isSystemAdmin","providerRefundId","meta","env","META_MODE","__decorate","Service","__z_BeanInfo","module","DtoMockPaymentComplete","constructor","Api","field","z","enum","prototype","Dto","DtoMockPaymentReceipt","v","tableIdentity","required","DtoMockRefundComplete","DtoMockRefundReceipt","ControllerMockPayment","complete","command","scope","service","payMock","completeRefund","Web","post","__param","Arg","param","Controller","mode","PaymentWebhookBodySchema","object","string","min","max","number","int","nonnegative","length","optional","RefundWebhookBodySchema","positive","useApp","PayProviderMock","startPayment","input","_clientOptions","nextAction","kind","confirmPayment","queryPayment","createRefund","verifyWebhook","actual","Array","isArray","expected","undefined","safeEqual","payment","safeParse","success","data","summary","PayProvider","base","capabilities","redirectCheckout","embeddedCheckout","automaticCapture","manualCapture","refunds","partialRefunds","webhooks","clients","default","secretCredential","PAY_MOCK_DEFAULT_CREDENTIAL","PAY_MOCK_DEFAULT_WEBHOOK","secondary","PAY_MOCK_SECONDARY_CREDENTIAL","PAY_MOCK_SECONDARY_WEBHOOK","actualBuffer","Buffer","from","expectedBuffer","timingSafeEqual","ScopeModulePayMock","BeanScopeBase","Scope"],"mappings":"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"}
@@ -1,11 +1,16 @@
1
1
  import type { TableIdentity } from 'table-identity';
2
2
  import { BeanBase } from 'vona';
3
3
  export type TypeMockPaymentOutcome = 'succeeded' | 'failed' | 'cancelled';
4
+ export type TypeMockRefundOutcome = 'succeeded' | 'failed' | 'cancelled';
4
5
  export declare class ServicePayMock extends BeanBase {
5
6
  completePaymentSession(paymentSessionId: TableIdentity, outcome: TypeMockPaymentOutcome): Promise<{
6
7
  paymentSessionId: TableIdentity;
7
8
  accepted: true;
8
9
  }>;
10
+ completeRefundOperation(refundOperationId: TableIdentity, outcome: TypeMockRefundOutcome): Promise<{
11
+ refundOperationId: TableIdentity;
12
+ accepted: true;
13
+ }>;
9
14
  private _assertSimulatorEnabled;
10
15
  }
11
16
  //# sourceMappingURL=payMock.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"payMock.d.ts","sourceRoot":"","sources":["../../src/service/payMock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGpD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGhC,MAAM,MAAM,sBAAsB,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE1E,qBACa,cAAe,SAAQ,QAAQ;IACpC,sBAAsB,CAAC,gBAAgB,EAAE,aAAa,EAAE,OAAO,EAAE,sBAAsB;;;;IA8D7F,OAAO,CAAC,uBAAuB;CAKhC"}
1
+ {"version":3,"file":"payMock.d.ts","sourceRoot":"","sources":["../../src/service/payMock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGpD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGhC,MAAM,MAAM,sBAAsB,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;AAC1E,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEzE,qBACa,cAAe,SAAQ,QAAQ;IACpC,sBAAsB,CAAC,gBAAgB,EAAE,aAAa,EAAE,OAAO,EAAE,sBAAsB;;;;IA8DvF,uBAAuB,CAAC,iBAAiB,EAAE,aAAa,EAAE,OAAO,EAAE,qBAAqB;;;;IAuD9F,OAAO,CAAC,uBAAuB;CAKhC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vona-module-pay-mock",
3
- "version": "5.0.2",
3
+ "version": "5.0.4",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "Vona Module"
@@ -30,7 +30,7 @@
30
30
  "postpack": "clean-package restore"
31
31
  },
32
32
  "dependencies": {
33
- "vona-module-a-pay": "5.0.2"
33
+ "vona-module-a-pay": "5.0.4"
34
34
  },
35
35
  "title": "pay-mock",
36
36
  "vonaModule": {
@@ -39,5 +39,5 @@
39
39
  "a-vona": "5.0.0"
40
40
  }
41
41
  },
42
- "gitHead": "95488ea0a7779f34f6ebddeca7719d8545bc55b3"
42
+ "gitHead": "c408492ce774644ac8a2530702db916986f52151"
43
43
  }
@@ -6,15 +6,15 @@ export * from '../service/payMock.ts';
6
6
 
7
7
  import 'vona-module-a-bean';
8
8
  declare module 'vona-module-a-bean' {
9
-
9
+
10
10
  export interface IServiceRecord {
11
11
  'pay-mock:payMock': never;
12
12
  }
13
13
 
14
-
14
+
15
15
  }
16
16
  declare module 'vona-module-pay-mock' {
17
-
17
+
18
18
  export interface ServicePayMock {
19
19
  /** @internal */
20
20
  get scope(): ScopeModulePayMock;
@@ -23,8 +23,8 @@ declare module 'vona-module-pay-mock' {
23
23
  export interface ServicePayMock {
24
24
  get $beanFullName(): 'pay-mock.service.payMock';
25
25
  get $onionName(): 'pay-mock:payMock';
26
-
27
- }
26
+
27
+ }
28
28
  }
29
29
  /** service: end */
30
30
  /** service: begin */
@@ -45,27 +45,35 @@ declare module 'vona' {
45
45
  /** dto: begin */
46
46
  export * from '../dto/mockPaymentComplete.tsx';
47
47
  export * from '../dto/mockPaymentReceipt.tsx';
48
+ export * from '../dto/mockRefundComplete.tsx';
49
+ export * from '../dto/mockRefundReceipt.tsx';
48
50
  import type { IDtoOptionsMockPaymentComplete } from '../dto/mockPaymentComplete.tsx';
49
51
  import type { IDtoOptionsMockPaymentReceipt } from '../dto/mockPaymentReceipt.tsx';
52
+ import type { IDtoOptionsMockRefundComplete } from '../dto/mockRefundComplete.tsx';
53
+ import type { IDtoOptionsMockRefundReceipt } from '../dto/mockRefundReceipt.tsx';
50
54
  import 'vona-module-a-web';
51
55
  declare module 'vona-module-a-web' {
52
-
56
+
53
57
  export interface IDtoRecord {
54
58
  'pay-mock:mockPaymentComplete': IDtoOptionsMockPaymentComplete;
55
59
  'pay-mock:mockPaymentReceipt': IDtoOptionsMockPaymentReceipt;
60
+ 'pay-mock:mockRefundComplete': IDtoOptionsMockRefundComplete;
61
+ 'pay-mock:mockRefundReceipt': IDtoOptionsMockRefundReceipt;
56
62
  }
57
63
 
58
-
64
+
59
65
  }
60
66
  declare module 'vona-module-pay-mock' {
61
-
67
+
62
68
  }
63
69
  /** dto: end */
64
70
  /** dto: begin */
65
71
  import type { DtoMockPaymentComplete } from '../dto/mockPaymentComplete.tsx';
66
72
  import type { DtoMockPaymentReceipt } from '../dto/mockPaymentReceipt.tsx';
73
+ import type { DtoMockRefundComplete } from '../dto/mockRefundComplete.tsx';
74
+ import type { DtoMockRefundReceipt } from '../dto/mockRefundReceipt.tsx';
67
75
  declare module 'vona-module-pay-mock' {
68
-
76
+
69
77
  export interface IDtoOptionsMockPaymentComplete {
70
78
  fields?: TypeEntityOptionsFields<DtoMockPaymentComplete, IDtoOptionsMockPaymentComplete[TypeSymbolKeyFieldsMore]>;
71
79
  }
@@ -73,6 +81,14 @@ declare module 'vona-module-pay-mock' {
73
81
  export interface IDtoOptionsMockPaymentReceipt {
74
82
  fields?: TypeEntityOptionsFields<DtoMockPaymentReceipt, IDtoOptionsMockPaymentReceipt[TypeSymbolKeyFieldsMore]>;
75
83
  }
84
+
85
+ export interface IDtoOptionsMockRefundComplete {
86
+ fields?: TypeEntityOptionsFields<DtoMockRefundComplete, IDtoOptionsMockRefundComplete[TypeSymbolKeyFieldsMore]>;
87
+ }
88
+
89
+ export interface IDtoOptionsMockRefundReceipt {
90
+ fields?: TypeEntityOptionsFields<DtoMockRefundReceipt, IDtoOptionsMockRefundReceipt[TypeSymbolKeyFieldsMore]>;
91
+ }
76
92
  }
77
93
  /** dto: end */
78
94
  /** controller: begin */
@@ -80,15 +96,15 @@ export * from '../controller/mockPayment.ts';
80
96
  import type { IControllerOptionsMockPayment } from '../controller/mockPayment.ts';
81
97
  import 'vona-module-a-web';
82
98
  declare module 'vona-module-a-web' {
83
-
99
+
84
100
  export interface IControllerRecord {
85
101
  'pay-mock:mockPayment': IControllerOptionsMockPayment;
86
102
  }
87
103
 
88
-
104
+
89
105
  }
90
106
  declare module 'vona-module-pay-mock' {
91
-
107
+
92
108
  export interface ControllerMockPayment {
93
109
  /** @internal */
94
110
  get scope(): ScopeModulePayMock;
@@ -98,14 +114,14 @@ declare module 'vona-module-pay-mock' {
98
114
  get $beanFullName(): 'pay-mock.controller.mockPayment';
99
115
  get $onionName(): 'pay-mock:mockPayment';
100
116
  get $onionOptions(): IControllerOptionsMockPayment;
101
- }
117
+ }
102
118
  }
103
119
  /** controller: end */
104
120
  /** controller: begin */
105
121
  // @ts-ignore ignore
106
122
  import type { ControllerMockPayment } from '../controller/mockPayment.ts';
107
123
  declare module 'vona-module-pay-mock' {
108
-
124
+
109
125
  export interface IControllerOptionsMockPayment {
110
126
  actions?: TypeControllerOptionsActions<ControllerMockPayment>;
111
127
  }
@@ -113,6 +129,7 @@ declare module 'vona-module-pay-mock' {
113
129
  declare module 'vona-module-a-web' {
114
130
  export interface IApiPathPostRecord{
115
131
  '/pay/mock/payment-session/:id/complete': undefined;
132
+ '/pay/mock/payment-session/refund-operation/:id/complete': undefined;
116
133
  }
117
134
 
118
135
  }
@@ -123,15 +140,15 @@ export * from '../bean/payProvider.mock.ts';
123
140
  import type { IPayProviderOptionsMock } from '../bean/payProvider.mock.ts';
124
141
  import 'vona-module-a-pay';
125
142
  declare module 'vona-module-a-pay' {
126
-
143
+
127
144
  export interface IPayProviderRecord {
128
145
  'pay-mock:mock': IPayProviderOptionsMock;
129
146
  }
130
147
 
131
-
148
+
132
149
  }
133
150
  declare module 'vona-module-pay-mock' {
134
-
151
+
135
152
  export interface PayProviderMock {
136
153
  /** @internal */
137
154
  get scope(): ScopeModulePayMock;
@@ -141,7 +158,7 @@ declare module 'vona-module-pay-mock' {
141
158
  get $beanFullName(): 'pay-mock.payProvider.mock';
142
159
  get $onionName(): 'pay-mock:mock';
143
160
  get $onionOptions(): IPayProviderOptionsMock;
144
- }
161
+ }
145
162
  }
146
163
  /** payProvider: end */
147
164
  /** payProvider: begin */
@@ -172,11 +189,11 @@ declare module 'vona' {
172
189
  export interface IBeanScopeContainer {
173
190
  payMock: ScopeModulePayMock;
174
191
  }
192
+
193
+
175
194
 
195
+
176
196
 
177
-
178
-
179
-
180
-
197
+
181
198
  }
182
199
  /** scope: end */
@@ -16,7 +16,7 @@ import { BeanBase, useApp } from 'vona';
16
16
  import { PayProvider } from 'vona-module-a-pay';
17
17
  import { z } from 'zod';
18
18
 
19
- const WebhookBodySchema = z.object({
19
+ const PaymentWebhookBodySchema = z.object({
20
20
  eventId: z.string().min(1).max(255),
21
21
  eventType: z.enum(['payment.succeeded', 'payment.failed', 'payment.cancelled']),
22
22
  paymentSessionId: z.string().min(1),
@@ -27,6 +27,16 @@ const WebhookBodySchema = z.object({
27
27
  providerCaptureId: z.string().min(1).max(255).optional(),
28
28
  });
29
29
 
30
+ const RefundWebhookBodySchema = z.object({
31
+ eventId: z.string().min(1).max(255),
32
+ eventType: z.enum(['refund.pending', 'refund.succeeded', 'refund.failed', 'refund.cancelled']),
33
+ refundOperationId: z.string().min(1),
34
+ state: z.enum(['pending', 'succeeded', 'failed', 'cancelled']),
35
+ amountMinor: z.number().int().positive(),
36
+ currency: z.string().length(3),
37
+ providerRefundId: z.string().min(1).max(255).optional(),
38
+ });
39
+
30
40
  export interface IPayProviderMockClientRecord extends IPayProviderClientRecord {
31
41
  secondary: never;
32
42
  }
@@ -83,6 +93,13 @@ export class PayProviderMock
83
93
  };
84
94
  }
85
95
 
96
+ async confirmPayment(
97
+ input: IPayProviderPaymentInput,
98
+ clientOptions: IPayProviderMockClientOptions,
99
+ ): Promise<IPayProviderPaymentSnapshot> {
100
+ return await this.queryPayment(input, clientOptions);
101
+ }
102
+
86
103
  async queryPayment(
87
104
  input: IPayProviderPaymentInput,
88
105
  _clientOptions: IPayProviderMockClientOptions,
@@ -118,23 +135,42 @@ export class PayProviderMock
118
135
  if (!expected || !actual || !safeEqual(actual, expected)) {
119
136
  this.app.throw(401, 'mock webhook signature is invalid');
120
137
  }
121
- const body = WebhookBodySchema.safeParse(input.body);
122
- if (!body.success) this.app.throw(400, 'mock webhook is invalid');
123
- const eventType = `payment.${body.data.state}`;
124
- if (body.data.eventType !== eventType)
138
+ const payment = PaymentWebhookBodySchema.safeParse(input.body);
139
+ if (payment.success) {
140
+ const eventType = `payment.${payment.data.state}`;
141
+ if (payment.data.eventType !== eventType)
142
+ this.app.throw(400, 'mock webhook event type is invalid');
143
+ return {
144
+ eventId: payment.data.eventId,
145
+ eventType,
146
+ paymentSessionId: payment.data.paymentSessionId,
147
+ payment: {
148
+ state: payment.data.state,
149
+ providerPaymentId: payment.data.providerPaymentId,
150
+ providerCaptureId: payment.data.providerCaptureId,
151
+ },
152
+ summary: {
153
+ amountMinor: payment.data.amountMinor,
154
+ currency: payment.data.currency,
155
+ },
156
+ };
157
+ }
158
+ const refund = RefundWebhookBodySchema.safeParse(input.body);
159
+ if (!refund.success) this.app.throw(400, 'mock webhook is invalid');
160
+ const eventType = `refund.${refund.data.state}`;
161
+ if (refund.data.eventType !== eventType)
125
162
  this.app.throw(400, 'mock webhook event type is invalid');
126
163
  return {
127
- eventId: body.data.eventId,
164
+ eventId: refund.data.eventId,
128
165
  eventType,
129
- paymentSessionId: body.data.paymentSessionId,
130
- payment: {
131
- state: body.data.state,
132
- providerPaymentId: body.data.providerPaymentId,
133
- providerCaptureId: body.data.providerCaptureId,
166
+ refundOperationId: refund.data.refundOperationId,
167
+ refund: {
168
+ state: refund.data.state,
169
+ providerRefundId: refund.data.providerRefundId,
134
170
  },
135
171
  summary: {
136
- amountMinor: body.data.amountMinor,
137
- currency: body.data.currency,
172
+ amountMinor: refund.data.amountMinor,
173
+ currency: refund.data.currency,
138
174
  },
139
175
  };
140
176
  }
@@ -7,6 +7,8 @@ import { Arg, Controller, Web } from 'vona-module-a-web';
7
7
 
8
8
  import { DtoMockPaymentComplete } from '../dto/mockPaymentComplete.tsx';
9
9
  import { DtoMockPaymentReceipt } from '../dto/mockPaymentReceipt.tsx';
10
+ import { DtoMockRefundComplete } from '../dto/mockRefundComplete.tsx';
11
+ import { DtoMockRefundReceipt } from '../dto/mockRefundReceipt.tsx';
10
12
 
11
13
  export interface IControllerOptionsMockPayment extends IDecoratorControllerOptions {}
12
14
 
@@ -22,4 +24,13 @@ export class ControllerMockPayment extends BeanBase {
22
24
  ): Promise<DtoMockPaymentReceipt> {
23
25
  return await this.scope.service.payMock.completePaymentSession(id, command.outcome);
24
26
  }
27
+
28
+ @Web.post('refund-operation/:id/complete')
29
+ @Api.body(DtoMockRefundReceipt)
30
+ async completeRefund(
31
+ @Arg.param('id', v.tableIdentity()) id: TableIdentity,
32
+ @Arg.body() command: DtoMockRefundComplete,
33
+ ): Promise<DtoMockRefundReceipt> {
34
+ return await this.scope.service.payMock.completeRefundOperation(id, command.outcome);
35
+ }
25
36
  }
@@ -0,0 +1,13 @@
1
+ import type { IDecoratorDtoOptions } from 'vona-module-a-web';
2
+
3
+ import { Api } from 'vona-module-a-openapiutils';
4
+ import { Dto } from 'vona-module-a-web';
5
+ import { z } from 'zod';
6
+
7
+ export interface IDtoOptionsMockRefundComplete extends IDecoratorDtoOptions {}
8
+
9
+ @Dto<IDtoOptionsMockRefundComplete>()
10
+ export class DtoMockRefundComplete {
11
+ @Api.field(z.enum(['succeeded', 'failed', 'cancelled']))
12
+ outcome: 'succeeded' | 'failed' | 'cancelled';
13
+ }
@@ -0,0 +1,16 @@
1
+ import type { TableIdentity } from 'table-identity';
2
+ import type { IDecoratorDtoOptions } from 'vona-module-a-web';
3
+
4
+ import { Api, v } from 'vona-module-a-openapiutils';
5
+ import { Dto } from 'vona-module-a-web';
6
+
7
+ export interface IDtoOptionsMockRefundReceipt extends IDecoratorDtoOptions {}
8
+
9
+ @Dto<IDtoOptionsMockRefundReceipt>()
10
+ export class DtoMockRefundReceipt {
11
+ @Api.field(v.tableIdentity())
12
+ refundOperationId: TableIdentity;
13
+
14
+ @Api.field(v.required())
15
+ accepted: true;
16
+ }
@@ -5,6 +5,7 @@ import { BeanBase } from 'vona';
5
5
  import { Service } from 'vona-module-a-bean';
6
6
 
7
7
  export type TypeMockPaymentOutcome = 'succeeded' | 'failed' | 'cancelled';
8
+ export type TypeMockRefundOutcome = 'succeeded' | 'failed' | 'cancelled';
8
9
 
9
10
  @Service()
10
11
  export class ServicePayMock extends BeanBase {
@@ -70,6 +71,61 @@ export class ServicePayMock extends BeanBase {
70
71
  return { paymentSessionId: session.id, accepted: true as const };
71
72
  }
72
73
 
74
+ async completeRefundOperation(refundOperationId: TableIdentity, outcome: TypeMockRefundOutcome) {
75
+ this._assertSimulatorEnabled();
76
+ const refund = await this.$scope.pay.model.refundOperation.getById(refundOperationId);
77
+ if (!refund) this.app.throw(404, 'mock refund operation not found');
78
+ const session = await this.$scope.pay.model.paymentSession.getById(refund.paymentSessionId);
79
+ if (!session) this.app.throw(404, 'mock refund operation not found');
80
+ if (!(await this.bean.passport.isSystemAdmin())) {
81
+ this.app.throw(403, 'mock refund completion requires system administrator authority');
82
+ }
83
+ if (
84
+ session.providerName !== 'pay-mock:mock' ||
85
+ session.clientName !== 'default' ||
86
+ session.environment !== 'sandbox' ||
87
+ refund.state !== 'pending'
88
+ ) {
89
+ this.app.throw(409, 'mock refund operation is not actionable');
90
+ }
91
+ const { clientOptions } = this.bean.payProvider.resolveByName(
92
+ session.providerName,
93
+ session.clientName,
94
+ );
95
+ const secret = clientOptions.secretWebhook;
96
+ if (typeof secret !== 'string' || !secret) {
97
+ this.app.throw(500, 'mock webhook secret is not configured');
98
+ }
99
+ const rawBody = JSON.stringify({
100
+ eventId: `mock-refund-${randomUUID()}`,
101
+ eventType: `refund.${outcome}`,
102
+ refundOperationId: String(refund.id),
103
+ state: outcome,
104
+ amountMinor: refund.amountMinor,
105
+ currency: refund.currency,
106
+ providerRefundId: refund.providerRefundId ?? `mock-refund-${refund.id}`,
107
+ });
108
+ const signature = createHmac('sha256', secret).update(rawBody).digest('hex');
109
+ const instanceName = this.ctx.instanceName;
110
+ const instanceHeaderField = this.app.config.instance.headerField;
111
+ const response = await fetch(
112
+ this.app.util.getAbsoluteUrlByApiPath(
113
+ `/pay/webhook/${session.providerName}/${session.clientName}`,
114
+ ),
115
+ {
116
+ method: 'POST',
117
+ headers: {
118
+ 'content-type': 'application/json',
119
+ 'x-pay-mock-signature': signature,
120
+ ...(instanceName && instanceHeaderField ? { [instanceHeaderField]: instanceName } : {}),
121
+ },
122
+ body: rawBody,
123
+ },
124
+ );
125
+ if (!response.ok) this.app.throw(502, 'mock refund webhook was rejected');
126
+ return { refundOperationId: refund.id, accepted: true as const };
127
+ }
128
+
73
129
  private _assertSimulatorEnabled() {
74
130
  if (this.app.meta.env.META_MODE === 'prod') {
75
131
  this.app.throw(404, 'mock payment simulator is unavailable');