2016-04-12 110 views
0

您好,我尝试在我的网站上设置braintree payement,但创建我的交易出售时出现错误:Unknown paymentMethodNonce。我生成客户端令牌就像从布伦特里支持的例子(他们沙子我用一个例子邮件):未知paymentMethodNonce on Braintree

<?php 
require_once("../lib/Braintree.php"); 
$clientToken = Braintree_ClientToken::generate(); ?> 
... 
<script> 
var clientToken = "<?php echo $clientToken; ?>"; 
braintree.setup(clientToken, "dropin", { 
     container: "payment-form" 
    }); 
</script> 

和我结账页面上:

require_once("../lib/Braintree.php"); 

$nonce = $_POST["payment_method_nonce"]; 

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

我尝试删除配置行,它的工作,但该帐户商户是不是我的,如果我设置的帐户与销售:

'merchantAccountId' => 'MyAccount', 

或配置之前:

Braintree_Configuration::environment('sandbox'); 
Braintree_Configuration::merchantId('xxx'); 
Braintree_Configuration::publicKey('xxx'); 
Braintree_Configuration::privateKey('xxxxx'); 

但我有一个错误:例外需要赶上。

感谢您的帮助

回答

1

全面披露:我布伦特里的工作。

您正在收到的错误表明payment_method_nonce未到达您的服务器。请确保你有一个这样的形式在客户端:

<form id="checkout" method="post" action="/checkout"> 
    <div id="payment-form"></div> 
    <input type="submit" value="Pay $10"> 
</form> 

您需要配置与Braintree_Configuration::environmentmerchantIdpublicKey,并privateKey您的应用程序。如果您想使用不是您的默认帐户的商户帐户,则只能通过merchantAccountId,并使用Braintree_Transaction::sale

如果仍有问题,请继续使用Braintree support