商家ID需要设置

时间:2018-09-27 22:55:19

标签: php error-handling server braintree

尝试执行我的代码时,我总是会收到错误消息:

  

需要设置消息为“ Braintree \ Configuration :: merchantId”的未捕获异常“ Braintree \ Exception \ Configuration”(或将accessToken传递给Braintree \ Gateway)

错误发生在:

  

Braintree \ Transaction :: sale(Array)#4 {main}在第260行的/braintree_folder/lib/Braintree/Configuration.php中抛出

我的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 :(得分:0)

因为您正在使用实例方法来创建网关凭据。

尝试更改此方法(这是一个类方法):

$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