正在尝试使用信用卡注册Stripe客户,并使用收到的令牌在Node.js服务器中向该卡收费

正在尝试使用信用卡注册Stripe客户,并使用收到的令牌在Node.js服务器中向该卡收费,node.js,stripe-payments,Node.js,Stripe Payments,我使用示例HTML表单获取条带令牌,提供信用卡信息 作为Stripe的响应,我得到一个包含 条纹标记tok_173MXoHz。。。。。。。。 具有ID卡的卡对象_173MXoHzqz0X。。。。哪个有不同的ID 这些将发布到服务器并创建客户对象 var stripeFormToken = req.body.id; var cardToken = req.body.cardToken; stripe.customers.create({ description: email, s

我使用示例HTML表单获取条带令牌,提供信用卡信息

作为Stripe的响应,我得到一个包含

条纹标记tok_173MXoHz。。。。。。。。 具有ID卡的卡对象_173MXoHzqz0X。。。。哪个有不同的ID 这些将发布到服务器并创建客户对象

var stripeFormToken = req.body.id;
var cardToken = req.body.cardToken;

stripe.customers.create({
    description: email,
    source: stripeFormToken // obtained with Stripe.js
},
function(err, customer) {
    if(err){
        console.warn(err);
    });
并将客户ID保存在数据库中

通过查看位于的仪表板,我看到正在创建customer对象,但没有为其中任何一个添加信用卡

此外,当试图通过以下方式向客户收费时

stripe.charges.create({
        amount: 500,
        currency: "cad",
        customer: customer.id, // obtained with Stripe.js
        },
        function(err, charge) {
            if(err){
                console.warn(err);
            }else{
                console.log("successfully charged");
            }
        });
但我得到的是错误:

[错误:无法向没有活动卡的客户收费] 类型:“StripeCardError”, stack:'错误:无法向没有活动卡的客户收费\n错误。\u错误


在网上详细查看文档和示例后,我无法解决此问题。

您的付款流程有问题。应该是这样的:1。客户端,使用Checkout/Stripe.js将卡信息转换为令牌,并将令牌发送回服务器。2.服务器端,使用令牌创建客户对象,然后使用客户ID创建费用。您的客户对象似乎是在没有令牌的情况下创建的,因此没有附加支付源。为什么客户对象似乎是在没有令牌的情况下创建的?正如代码所示,它是由stripe.customers.create创建的{description:email,source:stripeFormToken}stripeFromToken是使用从客户端获得的令牌创建的。我验证了,并且@Ywain you是正确的。事实上,在创建客户时,令牌没有作为参数传递。谢谢