【问题标题】:Error when creating a customer using test card使用测试卡创建客户时出错
【发布时间】:2017-09-29 03:18:00
【问题描述】:

尝试为新创建的客户开始订阅时,我从 Stripe 收到以下错误:

invalid_request_error 错误:此客户没有附加付款来源

客户似乎创建得很好。我正在使用 Stripe Checkout 收集卡令牌。为了测试,我使用带有随机信息的 Stripe 的4242 4242 4242 4242 卡号。令牌似乎被创建并传递给我的服务器就好了。以下是我的服务器端代码:

stripe.plans.retrieve(
    "basic-monthly",
    function(err, plan) {
        if (err) {
            console.error(err)
            res.sendStatus(500)
        } else {
            stripe.customers.create({
                email: owner,
                source: token.id,
            }, function(err, customer) {
                if (err) {
                    console.error(err)
                    res.sendStatus(500)
                  } else {
                    stripe.subscriptions.create({
                      customer: customer.id,
                      items: [
                        {
                          plan: "basic-monthly",
                          quantity: 1
                        },
                      ],
                    }, function(err, subscription) {
                      if (err) {
                        console.error(err)
                        console.log('@@@@@ UNABLE TO CREATE SUBSCRIPTION @@@@')
                        res.sendStatus(500)
                      } else {
                         console.log('Subscription created.')
                         console.dir(subscription)
                         res.sendStatus(200);
                      }     
                    });
                  }
                });
              }
            });

@@@@@ UNABLE TO CREATE SUBSCRIPTION @@@@ 与上述错误一起被记录。我理解错误的含义,但我不确定它是如何发生的。如上所示,我在创建客户时传入了 Token Id,source: token.id,

这里有什么问题?

【问题讨论】:

    标签: node.js express stripe-payments stripe.js


    【解决方案1】:

    这里最可能的原因是 token.id 为空,因此创建的客户没有来源。我建议记录token 的内容,看看你得到了什么。

    【讨论】:

    • token.id 不为空,并且包含从客户端 Checkout 流程传递的令牌 ID。
    • 我错了,我认为token.id 很好,因为当我在路线开始时打印它时,它会按预期打印到控制台。我刚刚在调用stripe.customers.create() 的正上方添加了一条日志语句,实际上它以某种方式是undefined。这怎么可能?它是完全相同的变量,并且在我的路线中的任何地方都没有被修改。
    • 原来令牌正在通过客户端上的JSON.stringify() 转换为字符串。它以所有内容打印到控制台,但自然token.id 返回未定义。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-22
    • 1970-01-01
    • 2012-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多