Идентификатор продавца должен быть установлен - PullRequest
0 голосов
/ 28 сентября 2018

При попытке выполнить мой код я всегда получаю сообщение об ошибке:

Необработанное исключение «Braintree \ Exception \ Configuration» с сообщением «Необходимо установить Braintree \ Configuration :: merchantId (или нужен accessToken»).для передачи в Braintree \ Gateway)

Ошибка возникает по адресу:

Braintree \ Transaction :: sale (Array) # 4 {main} брошено в / braintree_folder /lib / Braintree / Configuration.php в строке 260

Мой PHP-код:

<?php
    require 'lib/Braintree.php';

    $gateway = new Braintree_Gateway([
                                         'environment' => 'sandbox',
                                         'merchantId' => '*********',
                                         'publicKey' => '********',
                                         'privateKey' => '*********'
                                         ]);

    $paymentMethodNonce =  $_POST['payment_method_nonce'];
    $amount = $_POST['amount'];


    $result = Braintree_Transaction::sale([
                                          'amount' => $amount,
                                          'paymentMethodNonce' => $paymentMethodNonce,
                                          'options' => [
                                          'submitForSettlement' => True
                                          ]
                                          ]);

    echo json_encode($result);

    ?>

Не могли бы вы сказать, что я должен изменить?

1 Ответ

0 голосов
/ 28 июня 2019

Поскольку вы используете метод экземпляра для создания учетных данных шлюза.

Попробуйте изменить это (это метод класса):

$result = Braintree_Transaction::sale([ 'amount' => $amount,'paymentMethodNonce' => $paymentMethodNonce, 'options' => ['submitForSettlement' => True]]);

на это(который является методом экземпляра):

$result = $gateway->transacation()->sale([ 'amount' => $amount,'paymentMethodNonce' => $paymentMethodNonce, 'options' => ['submitForSettlement' => True]]);

Согласно документации Braintree, вы не можете смешивать методы класса с методами экземпляра.Вы должны использовать один или другой.Они поощряют метод экземпляра.

Посмотрите эту ссылку, она даст вам более подробную информацию: https://developers.braintreepayments.com/start/hello-server/php

...