首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >未知支付方式

未知支付方式
EN

Stack Overflow用户
提问于 2015-02-15 21:18:51
回答 1查看 3.7K关注 0票数 4

我的设计是:

我尝试添加一个新的客户如本教程所示,它工作得很好。但是,当我试图从前端添加一种付款方法时,请使用JavaScript SDK中给定的代码。我使用了插入用户界面,它产生了一个支付方法,现在的,这是我问题的一部分。

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

当我尝试创建一个用户时,一切都很好:

代码语言:javascript
运行
复制
$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'
));

一谈到现在的付款,就什么也不管用了:

代码语言:javascript
运行
复制
$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。这对我来说有点困惑和奇怪,因为Input::get('payment_method_nonce')代表一个有效的字符串。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-16 20:10:22

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

您需要传递由PHP生成的客户端令牌 (而不是沙箱中的CSE令牌!)进入Braintree提供的JavaScript片段:

代码语言:javascript
运行
复制
braintree.setup(
        "{{ Braintree_ClientToken::generate(['customerId' => Auth::id()]) }}",
        'dropin', {
            container: 'dropin'
        }
);

插入UI代码是来自文档的copy+paste。

代码语言:javascript
运行
复制
<form id="checkout" method="post" action="/checkout">
    {!! csrf_field() !!}
    <div id="dropin"></div>
    <input type="submit" value="Pay $10">
</form>

希望有人能用这个答案节省很多时间。

编辑:在Laravel 5中,您需要手动添加csrf字段(我已经更新了代码),否则您将从Laravel获得一个TokenMismatchException

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28531289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档