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 1/2] 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; From 5b6f63464c2fc6774608276c9f250ab2c16a23cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Beganovi=C4=87?= Date: Mon, 13 Sep 2021 16:40:14 +0200 Subject: [PATCH 2/2] Drop `verificationMerchantAccountId` from creating token --- app/PaymentDrivers/Braintree/CreditCard.php | 5 ----- 1 file changed, 5 deletions(-) diff --git a/app/PaymentDrivers/Braintree/CreditCard.php b/app/PaymentDrivers/Braintree/CreditCard.php index 330fc8ed36e3..9696334e612b 100644 --- a/app/PaymentDrivers/Braintree/CreditCard.php +++ b/app/PaymentDrivers/Braintree/CreditCard.php @@ -151,11 +151,6 @@ class CreditCard ], ]; - 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) {