diff --git a/src/payment/v1/payment-mappers/payment-mapper.js b/src/payment/v1/payment-mappers/payment-mapper.js index 178f983a..d26e63c7 100644 --- a/src/payment/v1/payment-mappers/payment-mapper.js +++ b/src/payment/v1/payment-mappers/payment-mapper.js @@ -54,7 +54,9 @@ export default class PaymentMapper { const nonce = payment.nonce || paymentMethod.nonce; - if (payment.instrumentId) { + if (payment.formattedPayload) { + objectAssign(payload, payment.formattedPayload); + } else if (payment.instrumentId) { objectAssign(payload, { bigpay_token: this.mapToBigPayToken(data), }); diff --git a/test/payment/v1/payment-mappers/payment-mapper.spec.js b/test/payment/v1/payment-mappers/payment-mapper.spec.js index a20e776d..c9733af4 100644 --- a/test/payment/v1/payment-mappers/payment-mapper.spec.js +++ b/test/payment/v1/payment-mappers/payment-mapper.spec.js @@ -234,4 +234,20 @@ describe('PaymentMapper', () => { expect(paymentMapper.mapToPayment({})).toEqual({ credit_card: {} }); }); + + it('uses formattedPayload when provided', () => { + data = merge({}, data, { + payment: { formattedPayload: { credit_card_token: { token: '12356aaa' } } }, + }); + + const output = paymentMapper.mapToPayment(data); + + expect(output).toEqual( + jasmine.objectContaining({ + credit_card_token: { + token: '12356aaa', + }, + }) + ); + }); });