我做错了什么?根据文档,这应该工作!但我得到了91565!
数组([payment_method_nonce] => a7f99043-febb-44f7-90bc-89a766860706)91565:未知的paymentMethodNonce。
if($_POST){
print_r($_POST);
$nonce = $_POST["payment_method_nonce"];
$result = Braintree_Transaction::sale(
array(
'paymentMethodNonce' => $nonce,
'amount' => '100.00'
)
);
if ($result->success) {
echo($result->customer->id);
echo($result->customer->creditCards[0]->token);
} else {
foreach($result->errors->deepAll() AS $error) {
echo($error->code . ": " . $error->message . "\n");
}
}
}

答案 0 :(得分:3)
代码是正确的。问题是nonce是由我们的演示商生成的,你试图用它为不同的商家创建一个交易。
付款方式nonces不包含任何数据 - 它们是我们为该商家存储的付款详细信息的商家特定标识符。因此,他们无法被其他商家使用。
这些文档将向您展示如何创建自己的客户端v.zero集成: https://developers.braintreepayments.com/javascript+php/start/overview
欢迎联系support@braintreepayments.com的Braintree支持。
答案 1 :(得分:1)
我遇到了同样的问题 - 在我的实例中,我更新了我的信用卡表单和js脚本,并忘记将客户端令牌传递给javascript。我在Laravel工作,所以首先我生成了clientToken:
$clientToken = Braintree_ClientToken::generate();
然后在javaScript中我编写了clientToken用于授权:
braintree.client.create({
authorization: 'sandbox_g42y39zw_348pk9cgf3bgyw2b'
为:
braintree.client.create({
authorization: '{{ $clientToken }}'
等...
答案 2 :(得分:0)
每当发布付款捕获请求时,您都需要生成New Nonce代码。