mirror of
				https://github.com/invoiceninja/invoiceninja.git
				synced 2025-11-03 23:17:32 -05:00 
			
		
		
		
	Merge pull request #6585 from beganovich/v5-668
Pass merchant account id to Braintree transactions
This commit is contained in:
		
						commit
						c45f3fab40
					
				@ -88,14 +88,30 @@ class CreditCard
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        $token = $this->getPaymentToken($request->all(), $customer->id);
 | 
					        $token = $this->getPaymentToken($request->all(), $customer->id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $result = $this->braintree->gateway->transaction()->sale([
 | 
					        $data = [
 | 
				
			||||||
            'amount' => $this->braintree->payment_hash->data->amount_with_fee,
 | 
					            'amount' => $this->braintree->payment_hash->data->amount_with_fee,
 | 
				
			||||||
            'paymentMethodToken' => $token,
 | 
					            'paymentMethodToken' => $token,
 | 
				
			||||||
            'deviceData' => $state['client-data'],
 | 
					            'deviceData' => $state['client-data'],
 | 
				
			||||||
            'options' => [
 | 
					            'options' => [
 | 
				
			||||||
                'submitForSettlement' => true
 | 
					                'submitForSettlement' => true
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
        ]);
 | 
					        ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if ($this->braintree->company_gateway->getConfigField('merchantAccountId')) {
 | 
				
			||||||
 | 
					            /** https://developer.paypal.com/braintree/docs/reference/request/transaction/sale/php#full-example */
 | 
				
			||||||
 | 
					            $data['merchantAccountId'] = $this->braintree->company_gateway->getConfigField('merchantAccountId');
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            $result = $this->braintree->gateway->transaction()->sale($data);
 | 
				
			||||||
 | 
					        } catch(\Exception $e) {
 | 
				
			||||||
 | 
					            if ($e instanceof \Braintree\Exception\Authorization) {
 | 
				
			||||||
 | 
					                throw new PaymentFailed(ctrans('texts.generic_gateway_error'), $e->getCode());
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            throw new PaymentFailed($e->getMessage(), $e->getCode());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if ($result->success) {
 | 
					        if ($result->success) {
 | 
				
			||||||
            $this->braintree->logSuccessfulGatewayResponse(['response' => $request->server_response, 'data' => $this->braintree->payment_hash], SystemLog::TYPE_BRAINTREE);
 | 
					            $this->braintree->logSuccessfulGatewayResponse(['response' => $request->server_response, 'data' => $this->braintree->payment_hash], SystemLog::TYPE_BRAINTREE);
 | 
				
			||||||
 | 
				
			|||||||
@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use App\Models\Gateway;
 | 
				
			||||||
 | 
					use Illuminate\Database\Migrations\Migration;
 | 
				
			||||||
 | 
					use Illuminate\Database\Schema\Blueprint;
 | 
				
			||||||
 | 
					use Illuminate\Support\Facades\Schema;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class UpdateBraintreeGateway extends Migration
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Run the migrations.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @return void
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function up()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if ($gateway = Gateway::find(50)) {
 | 
				
			||||||
 | 
					            $fields = json_decode($gateway->fields);
 | 
				
			||||||
 | 
					            $fields->merchantAccountId = '';
 | 
				
			||||||
 | 
					            $gateway->fields = json_encode($fields);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            $gateway->save();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -74,7 +74,7 @@ class PaymentLibrariesSeeder extends Seeder
 | 
				
			|||||||
            ['id' => 47, 'name' => 'Secure Trading', 'provider' => 'SecureTrading', 'key' => '231cb401487b9f15babe04b1ac4f7a27', 'fields' => '{"siteReference":"","username":"","password":"","applyThreeDSecure":false,"accountType":"ECOM"}'],
 | 
					            ['id' => 47, 'name' => 'Secure Trading', 'provider' => 'SecureTrading', 'key' => '231cb401487b9f15babe04b1ac4f7a27', 'fields' => '{"siteReference":"","username":"","password":"","applyThreeDSecure":false,"accountType":"ECOM"}'],
 | 
				
			||||||
            ['id' => 48, 'name' => 'SecPay', 'provider' => 'SecPay', 'key' => 'bad8699d581d9fa040e59c0bb721a76c', 'fields' => '{"mid":"","vpnPswd":"","remotePswd":"","usageType":"","confirmEmail":"","testStatus":"true","mailCustomer":"true","additionalOptions":""}'],
 | 
					            ['id' => 48, 'name' => 'SecPay', 'provider' => 'SecPay', 'key' => 'bad8699d581d9fa040e59c0bb721a76c', 'fields' => '{"mid":"","vpnPswd":"","remotePswd":"","usageType":"","confirmEmail":"","testStatus":"true","mailCustomer":"true","additionalOptions":""}'],
 | 
				
			||||||
            ['id' => 49, 'name' => 'WePay', 'provider' => 'WePay', 'is_offsite' => false, 'sort_order' => 3, 'key' => '8fdeed552015b3c7b44ed6c8ebd9e992', 'fields' => '{"accountId":"","accessToken":"","type":"goods","testMode":false,"feePayer":"payee"}'],
 | 
					            ['id' => 49, 'name' => 'WePay', 'provider' => 'WePay', 'is_offsite' => false, 'sort_order' => 3, 'key' => '8fdeed552015b3c7b44ed6c8ebd9e992', 'fields' => '{"accountId":"","accessToken":"","type":"goods","testMode":false,"feePayer":"payee"}'],
 | 
				
			||||||
            ['id' => 50, 'name' => 'Braintree', 'provider' => 'Braintree', 'sort_order' => 3, 'key' => 'f7ec488676d310683fb51802d076d713', 'fields' => '{"merchantId":"","publicKey":"","privateKey":"","testMode":false}'],
 | 
					            ['id' => 50, 'name' => 'Braintree', 'provider' => 'Braintree', 'sort_order' => 3, 'key' => 'f7ec488676d310683fb51802d076d713', 'fields' => '{"merchantId":"","merchantAccountId":"","publicKey":"","privateKey":"","testMode":false}'],
 | 
				
			||||||
            ['id' => 51, 'name' => 'FirstData Payeezy', 'provider' => 'FirstData_Payeezy', 'key' => '30334a52fb698046572c627ca10412e8', 'fields' => '{"gatewayId":"","password":"","keyId":"","hmac":"","testMode":false}'],
 | 
					            ['id' => 51, 'name' => 'FirstData Payeezy', 'provider' => 'FirstData_Payeezy', 'key' => '30334a52fb698046572c627ca10412e8', 'fields' => '{"gatewayId":"","password":"","keyId":"","hmac":"","testMode":false}'],
 | 
				
			||||||
            ['id' => 52, 'name' => 'GoCardless', 'provider' => 'GoCardlessV2\Redirect', 'sort_order' => 9, 'is_offsite' => true, 'key' => 'b9886f9257f0c6ee7c302f1c74475f6c', 'fields' => '{"accessToken":"","webhookSecret":"","testMode":true}'],
 | 
					            ['id' => 52, 'name' => 'GoCardless', 'provider' => 'GoCardlessV2\Redirect', 'sort_order' => 9, 'is_offsite' => true, 'key' => 'b9886f9257f0c6ee7c302f1c74475f6c', 'fields' => '{"accessToken":"","webhookSecret":"","testMode":true}'],
 | 
				
			||||||
            ['id' => 53, 'name' => 'PagSeguro', 'provider' => 'PagSeguro', 'key' => 'ef498756b54db63c143af0ec433da803', 'fields' => '{"email":"","token":"","sandbox":false}'],
 | 
					            ['id' => 53, 'name' => 'PagSeguro', 'provider' => 'PagSeguro', 'key' => 'ef498756b54db63c143af0ec433da803', 'fields' => '{"email":"","token":"","sandbox":false}'],
 | 
				
			||||||
 | 
				
			|||||||
@ -4302,6 +4302,7 @@ $LANG = array(
 | 
				
			|||||||
    'checking' => 'Checking',
 | 
					    'checking' => 'Checking',
 | 
				
			||||||
    'savings' => 'Savings',
 | 
					    'savings' => 'Savings',
 | 
				
			||||||
    'unable_to_verify_payment_method' => 'Unable to verify payment method.',
 | 
					    'unable_to_verify_payment_method' => 'Unable to verify payment method.',
 | 
				
			||||||
 | 
					    'generic_gateway_error' => 'Gateway configuration error. Please check your credentials.',
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
return $LANG;
 | 
					return $LANG;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user