如何插入Braintree clientToken?

Braintree的文档说你创build一个环境,如他们的示例var gateway=braintree.connect(environmental variables) ,然后创build一个clientToken

 gateway.clientToken.generate({}, function (err, response) { var clientToken = response.clientToken; }); 

然后他们的例子说插入用于付款的表单中的客户端令牌

 braintree.setup("CLIENT-TOKEN-FROM-SERVER", "custom", {id: "checkout"}); 

但是他们也声明clientToken是一个对象。 我没有看到任何地方如何获得令牌值,返回值只是一个布尔值。 我发现通过使用typeof()gateway.clientToken报告为一个对象。

在Stackoverflow上,我看到一些人说clientToken对象应该是一个base64编码的值,但你是如何做到这一点? Braintree的代码不应该这样做吗?

所以我错过了某个步骤,或者我找不到正确的文档,但我肯定输了。

编辑:从布伦特里响应,在下面的答案,clientToken不被填写response.clientToken在任何forms,我试过这个,这是很多。 从整个networking上看less数例子,以及Braintree的轻量级文档,看起来我做的都是正确的。

编辑2:我的问题的解决scheme是在我的答案下面。

我在Braintree工作。 如果您有更详细的问题,请联系我们的支持团队 。

这听起来像你正在混淆的gateway.clientToken是哪个对象,它允许你得到一个客户端令牌,和客户端令牌本身,这是由gateway.clientToken.generate的callback – response.clientToken

一旦你有令牌(这里, var clientToken ),你需要把它给你的客户端。 从“你好,服务器!” 文档 :

有许多方法可以将您的客户端令牌转换为JavaScript,以便您可以设置Braintree。 许多人select插入客户端令牌到包含JavaScript来安装Braintree的视图。

问题出在你把代码与Braintree进行交互的地方,在你所做的任何node.js调用中。 在我的情况下,我把它放在http.createServer所以我可以在debugging时写出数值,但是这一切都不能让它工作。 我还没有弄清楚确切的细节。

此外,来自Braintree的示例代码在gateway.clientToken.generate()调用中显示clientToken,这将导致我认为即使不理解我如何提取该令牌值也属于它所属的位置。 所以在这个电话之外移动clientToken,我以为我曾经尝试过,至less部分解决了这个问题。

我说“部分”是因为你要为每个新客户创build一个新的令牌,而这种方式是不可能的。 我仍然需要确定如何在每次新的客户访问时生成新的令牌。 这可能只是另一个函数调用的问题,但我还没有尝试过。

另外,我还不清楚是否需要创build一个新客户。 我读的答案是否定的,但我也读过答案是肯定的,所以混乱统治,但这可能是一个不同的问题。