Laravel 4 未知的付款方式

Laravel 4 未知的付款方式,laravel-4,payment-gateway,braintree,Laravel 4,Payment Gateway,Braintree,我的设置是: 拉威尔4.2 Braintreepayments JS+PHP 我尝试添加一个新客户,效果很好。但是当我试图用JavaScript SDK中的给定代码从前端添加支付方法时。我使用了Drop-In用户界面,该界面生成了一个立即付款方法,这是我问题的一部分 我使用沙盒凭据配置了PHP后端,并粘贴了文档中给出的示例代码 当我尝试创建用户时,一切正常: $result = Braintree_Customer::create(array( 'id' => Auth::i

我的设置是:

  • 拉威尔4.2
  • Braintreepayments JS+PHP
我尝试添加一个新客户,效果很好。但是当我试图用JavaScript SDK中的给定代码从前端添加支付方法时。我使用了Drop-In用户界面,该界面生成了一个立即付款方法,这是我问题的一部分

我使用沙盒凭据配置了PHP后端,并粘贴了文档中给出的示例代码

当我尝试创建用户时,一切正常:

$result = Braintree_Customer::create(array(
    'id' => Auth::id(),
    'firstName' => 'Mike',
    'lastName' => 'Jones',
    'company' => 'Jones Co.',
    'email' => 'mike.jones@example.com',
    'phone' => '281.330.8004',
    'fax' => '419.555.1235',
    'website' => 'http://example.com'
));
一旦到了付款时间,一切都不起作用:

$result = Braintree_Transaction::sale(array(
    'amount' => '10.00',
    'paymentMethodNonce' => Input::get('payment_method_nonce'),
    'customer' => array(
        'id' => Auth::id()
    ),
    'options' => array(
        'storeInVaultOnSuccess' => true,
    )
));

服务器一直在说
93108:Unknown paymentMethodNonce
。这对我来说似乎有点困惑和奇怪,因为
输入::get('payment\u method\u nonce')
表示一个有效的字符串。

经过一天的深入研究文档,我终于发现了这个问题

您需要将PHP库生成的代码(不是来自沙盒的CSE令牌!)传递到Braintree提供的JavaScript代码段中:

braintree.setup(
        "{{ Braintree_ClientToken::generate(['customerId' => Auth::id()]) }}",
        'dropin', {
            container: 'dropin'
        }
);
下拉式界面代码是从文档复制+粘贴

<form id="checkout" method="post" action="/checkout">
    {!! csrf_field() !!}
    <div id="dropin"></div>
    <input type="submit" value="Pay $10">
</form>

{!!csrf_field()!!}
希望有人能用这个答案节省很多时间

编辑: 在Laravel 5中,您需要手动添加csrf字段(我已经更新了代码),否则您将从Laravel获得
标记不匹配异常