【问题标题】:How do I insert a Braintree clientToken?如何插入 Braintree 客户端令牌?
【发布时间】:2014-11-17 14:00:32
【问题描述】:

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 的响应,在下面的答案中,我尝试过的任何形式的 response.clientToken 都没有填充 clientToken,这很多。看看来自网络上的例子,这些例子很少,而且 Braintree 的轻量级文档,看起来我做的一切都是正确的。

EDIT2:我对这个问题的解决方案在我下面的答案中。

【问题讨论】:

    标签: javascript node.js braintree


    【解决方案1】:

    问题在于您将与 Braintree 交互的代码放置在您进行的任何 node.js 调用中的位置。在我的例子中,我把它放在http.createServer 里面,所以我可以在调试它的时候写出值,但是这一切的某些部分不会让它起作用。我还没有弄清楚确切的细节。

    此外,来自 Braintree 的示例代码在 gateway.clientToken.generate() 调用中显示了 clientToken,这让我认为这是它所属的地方,即使我不了解我是如何提取该令牌值的。因此,将 clientToken 移到该调用之外,我认为我曾经尝试过,至少部分解决了这个问题。

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

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

    【讨论】:

      【解决方案2】:

      我在布伦特里工作。如果您有更详细的问题,请get in touch with our support team

      听起来你混淆了gateway.clientToken,它是允许你获取客户端令牌的对象,以及客户端令牌本身,这是由gateway.clientToken.generates 回调接收的——response.clientToken

      一旦获得令牌(此处为var clientToken),您需要将其交给您的客户。来自"Hello, Server!" docs

      有多种方法可以将您的客户端令牌导入 JavaScript,以便您可以设置 Braintree。许多人选择将客户端令牌插入到包含 JavaScript 的视图中以设置 Braintree。

      【讨论】:

      • 你误解了我的问题。我无法获取 clientToken。
      猜你喜欢
      • 1970-01-01
      • 2019-03-26
      • 2018-04-27
      • 2016-07-18
      • 2019-01-31
      • 1970-01-01
      • 2015-01-15
      • 2015-05-26
      • 2016-04-26
      相关资源
      最近更新 更多