如何插入 Braintree clientToken
How do I insert a Braintree clientToken?
Braintree文档说你创建一个环境,如他们的示例var gateway=braintree.connect(environmental variables)
,然后通过执行创建一个clientToken
gateway.clientToken.generate({}, function (err, response) {
var clientToken = response.clientToken;
});
然后他们的例子说将客户端令牌插入用于付款的形式中
braintree.setup("CLIENT-TOKEN-FROM-SERVER", "custom", {id: "checkout"});
但他们也声明clientToken是一个对象。我在任何地方都看不到如何获取令牌值,返回值只是一个布尔值。我确实发现gateway.clientToken
通过使用typeof()
报告为对象。
在Stackoverflow上,我看到有几个人说clientToken对象应该是base64编码的值,但是你怎么做呢?Braintree的代码不应该这样做吗?
所以我在某处错过了一个步骤,或者我找不到正确的文档,但我肯定迷路了。
编辑:根据Braintree的回应,在下面的答案中,clientToken没有被response.clientToken以我尝试过的任何形式填充,这是很多。看看来自网络上的例子,这些例子很少,以及Braintree的轻量级文档,看起来我做的一切都是正确的。
编辑2:我对这个问题的解决方案在下面的答案中。
问题在于你把代码放在什么位置,以便在你所做的任何节点中与 Braintree 进行交互.js调用。就我而言,我把它放在http.createServer
里面,所以我可以在调试时写出值,但所有这些的某些部分不会让它工作。我还没有弄清楚确切的细节。
此外,来自 Braintree 的示例代码在 gateway.clientToken.generate()
调用中显示了 clientToken,这会导致我认为这就是它所属的地方,即使我不明白我如何提取该令牌值。因此,将clientToken移到该调用之外,我认为我曾经尝试过,至少部分解决了这个问题。
我说"部分"是因为您要为每个新客户创建一个新令牌,而这无法以这种方式完成。我仍然需要确定如何在每次新客户访问时生成新令牌。这可能只是让它成为另一个函数调用的问题,但我还没有尝试过。
此外,我仍然不清楚是否需要创建新客户。我读到答案是否定的,但我也读过答案是肯定的,所以混乱占主导地位,但这可能是一个不同的问题主题。
我在Braintree工作。如果您有更详细的问题,请联系我们的支持团队。
听起来你混淆了gateway.clientToken
哪个是允许您获取客户端令牌的对象,以及客户端令牌本身,这是gateway.clientToken.generate
的回调接收的内容 - response.clientToken
。
一旦你有了令牌(这里,var clientToken
),你需要把它交给你的客户。来自"Hello, Server!"文档:
有很多方法可以将客户端令牌转换为JavaScript,以便您可以设置Braintree。许多人选择将客户端令牌插入到包含 JavaScript 的视图中,以设置 Braintree。
- 有没有一种方法可以生成Braintree令牌,而不必向我的服务器添加PHP脚本
- 如何使用python后端和web前端提供braintree客户端令牌
- Braintree webhooks with csrf 不起作用
- BrainTree Sandbox返回验证错误:-未知paymentMethodNonce
- Braintree在自动重新加载中掉落,尽管付款方式为NonceReceived
- BrainTree Hosted Fields onPaymentMethodReceived函数不工作,返回nonce
- Braintree插件,在处理时禁用提交按钮
- Braintree 托管字段集成
- Sails + Braintree:无法将交易详细信息发送给客户
- Braintree javascript 客户端 - 拆解调用不会删除现有的集成 - 在我的托管字段上获取错误
- Meteor Braintree -- 通过 Meteor 方法创建客户端令牌
- Socket.io clients.length 的困境(其中 clients === io.sockets.clien
- 如何插入 Braintree clientToken
- 无法使用客户 ID 创建 Braintree 客户端令牌
- Braintree的沙盒PayPal集成(使用JS和PHP)
- 如果Javascript被关闭,Braintree.js会发生什么
- 如何减去'2'from var width=document.documentElement.clien
- BrainTree 91560交易无法托管
- BrainTree.js with AngularJS and customVariables
- Braintree Drop In UI需要重新加载才能正常工作