向Stripe`Customers` API发送数据时出现401错误

时间:2018-12-10 16:16:21

标签: stripe-payments react-stripe-elements

我想在提交表单后在Stripe中创建一个新客户,并将该客户的信用卡添加到他们的帐户中。到目前为止,我在React App中提交时使用以下代码。然后,与我的服务器分开进行创建客户呼叫:

async submit(ev) {
  let {token} = await this.props.stripe.createToken({name: "Name"});
  let response = await fetch("https://api.stripe.com/v1/customers", {
     method: "POST",
     headers: {"Content-Type": "text/plain"},
     body: token.id
});

发送数据时,在let response = ...行上出现401错误。我知道401是一个auth错误,但是我的测试API密钥绝对正确,并且对它们访问我的条带化帐户的方式没有限制。有人可以建议吗?

1 个答案:

答案 0 :(得分:1)

这里的问题是,您试图在原始Javascript中创建Customer对象客户端。此API请求需要您的Secret API密钥。这意味着您永远无法在客户端执行此操作,否则任何人都可以找到您的API密钥并将其用于例如退款或转移。

相反,您需要将令牌发送到您自己的服务器。在那里,您可以使用Stripe的official libraries之一来创建“客户”或“费用”,而不用自己发出原始HTTP请求。