Browse Source

fix(core): Really correctly handle multiple payment refunds

Michael Bromley 4 years ago
parent
commit
ba8d411589
1 changed files with 4 additions and 4 deletions
  1. 4 4
      packages/core/src/service/services/payment.service.ts

+ 4 - 4
packages/core/src/service/services/payment.service.ts

@@ -188,10 +188,6 @@ export class PaymentService {
         items: OrderItem[],
         payment: Payment,
     ): Promise<Refund | RefundStateTransitionError> {
-        const { paymentMethod, handler } = await this.paymentMethodService.getMethodAndOperations(
-            ctx,
-            payment.method,
-        );
         const orderWithRefunds = await this.connection.getEntityOrThrow(ctx, Order, order.id, {
             relations: ['payments', 'payments.refunds'],
         });
@@ -224,6 +220,10 @@ export class PaymentService {
                 state: 'Pending',
                 metadata: {},
             });
+            const { paymentMethod, handler } = await this.paymentMethodService.getMethodAndOperations(
+                ctx,
+                paymentToRefund.method,
+            );
             const createRefundResult = await handler.createRefund(
                 ctx,
                 input,