Skip to content

Braintree sandbox errors when using alternative Merchant Account ID on Magento CE 2.1.0 #5910

Closed
@flecxie

Description

@flecxie

When using an alternative Merchant Account ID on a vanilla Magento CE 2.1.0 payments are unsuccessful and Braintree responds with error id 91584 (Merchant account must match the 3D Secure authorization merchant account.).

Steps to reproduce

  1. Install Magento-CE-2.1.0_sample_data-2016-06-23-02-34-56
  2. Create a Braintree Sandbox account & configure in Magento BE (make sure to enable debug)
  3. Create an extra Braintree Merchant Account ID (Settings -> Processing -> New Sandbox Merchant Account), select the same currency as base currency for simplicity (problem also occurs with different currencies)
  4. Configure the new Braintree Merchant Account ID in Magento BE (under Advanced Braintree Settings -> Merchant Account ID)
  5. Purchase item in store & enter test credit card number 5200000000000007 (expiry date & card verification nr don't matter)
  6. When prompted for 3D Secure check enter code 1234

Expected result

  1. Payment successful, order complete
  2. debug.log has:
    'client' => 'Magento\\Braintree\\Gateway\\Http\\Client\\TransactionSale',
    'response' =>
    array (
      'success' => true,
      '' . "\0" . 'Braintree\\Result\\Successful' . "\0" . '_returnObjectNames' =>
      array (
        0 => 'transaction',
      ),

Actual result

  1. Payment failed, message "Unable to place order. Please try again later.", see screenshot below:
    merchantaccountid
  2. debug.log has:
    'client' => 'Magento\\Braintree\\Gateway\\Http\\Client\\TransactionSale',                                         
    'response' =>                                                                                                     
    array (
      'success' => false,
      '' . "\0" . '*' . "\0" . '_attributes' => 
      array (
        'errors' => 
        Braintree\Error\ErrorCollection::__set_state(array(                                                           
           '_errors' =>                                                                                               
          Braintree\Error\ValidationErrorCollection::__set_state(array(
             '_errors' => 
            array (
            ),
             '_nested' => 
            array (
              'transaction' => 
              Braintree\Error\ValidationErrorCollection::__set_state(array(
                 '_errors' => 
                array (
                  0 => 
                  Braintree\Error\Validation::__set_state(array(
                     '_attribute' => 'merchantAccountId',
                     '_code' => '91584',
                     '_message' => 'Merchant account must match the 3D Secure authorization merchant account.',
                  )),

When the Merchant Account ID is either removed or changed to the default one (visible in Braintree under Settings -> Processing -> Merchant Accounts) then the transaction is successful.

Any chance that merchantaccount & merchantaccountid got mixed up somewhere (when displaying the 3D secure window)?

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions