条纹元素未与条纹服务器对话-没有这样的令牌:tok_xxxx

时间:2019-03-20 15:44:50

标签: stripe-payments react-stripe-elements

因此,我正在从条纹结帐迁移到元素,以便我可以以一种形式注册并向客户收费。 我正在关注他们的文档: https://stripe.com/docs/stripe-js/elements/quickstart

特别是在第3步中,该令牌是使用以下代码创建的:

// Create a token or display an error when the form is submitted.
var form = document.getElementById('payment-form');
form.addEventListener('submit', function(event) {
  event.preventDefault();

  stripe.createToken(card).then(function(result) {
    if (result.error) {
      // Inform the customer that there was an error.
      var errorElement = document.getElementById('card-errors');
      errorElement.textContent = result.error.message;
    } else {
      // Send the token to your server.
      stripeTokenHandler(result.token);
    }
  });
});

文档指出:

  

处理程序将字段发送到Stripe进行令牌化...

但是,似乎什么都没有发送到Stripe!

底部的两个请求显示使用旧的结帐程序进行的两个api调用:首先将卡信息发送到/ tokens,然后由我的服务器处理,并使/ customers请求正常。

但是当使用元素代码时,即使生成令牌并将其发送到我的服务器,似乎也不会发送任何数据条。因此,我得到了“没有这样的令牌”错误!?

stripe logs

我一辈子都无法锻炼为什么stripe.createToken(card)不会将详细信息发送到他们的服务器而生成令牌?我已经三重检查了api键以及我能想到的所有内容。请帮忙!

1 个答案:

答案 0 :(得分:0)

真正的问题是什么...我可以使用它,但是我不知道为什么可以解决它。

我正在.net mvc网站上使用stripe元素,并且正在视图中初始化Stripe类,以便可以像这样轻松地从我的viewmodel中传递密钥:

var stripe = Stripe('@Model.StripePublicKey');

哪个应该可以工作,对吗?没有JS错误或其他任何东西,它正在创建令牌,只是没有发布到Stripe的服务器。...

无论如何,我将该行移动到JS文件中,因此它直接位于其他与条带相关的JS上方,现在可以正常工作!?