尝试执行我的代码时,我总是会收到错误消息:
需要设置消息为“ 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);
?>
你能告诉我我必须改变什么吗?
答案 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