From 8a2d3a49581dba90ff72a690cbf625f148c6de35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Beganovi=C4=87?= Date: Mon, 13 Sep 2021 16:30:40 +0200 Subject: [PATCH] Inject MAID in client token create & payment method create --- app/PaymentDrivers/Braintree/CreditCard.php | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/app/PaymentDrivers/Braintree/CreditCard.php b/app/PaymentDrivers/Braintree/CreditCard.php index 2d289a961b31..330fc8ed36e3 100644 --- a/app/PaymentDrivers/Braintree/CreditCard.php +++ b/app/PaymentDrivers/Braintree/CreditCard.php @@ -61,6 +61,13 @@ class CreditCard $data['gateway'] = $this->braintree; $data['client_token'] = $this->braintree->gateway->clientToken()->generate(); + if ($this->braintree->company_gateway->getConfigField('merchantAccountId')) { + /** https://developer.paypal.com/braintree/docs/reference/request/client-token/generate#merchant_account_id */ + $data['client_token'] = $this->braintree->gateway->clientToken()->generate([ + 'merchantAccountId' => $this->braintree->company_gateway->getConfigField('merchantAccountId') + ]); + } + return render('gateways.braintree.credit_card.pay', $data); } @@ -136,13 +143,20 @@ class CreditCard $gateway_response = \json_decode($data['gateway_response']); - $response = $this->braintree->gateway->paymentMethod()->create([ + $data = [ 'customerId' => $customerId, 'paymentMethodNonce' => $gateway_response->nonce, 'options' => [ 'verifyCard' => true, ], - ]); + ]; + + if ($this->braintree->company_gateway->getConfigField('merchantAccountId')) { + /** https://developer.paypal.com/braintree/docs/reference/request/payment-method/create#options.verification_merchant_account_id */ + $data['verificationMerchantAccountId'] = $this->braintree->company_gateway->getConfigField('merchantAccountId'); + } + + $response = $this->braintree->gateway->paymentMethod()->create($data); if ($response->success) { return $response->paymentMethod->token;