使用Node.JS处理条带错误

使用Node.JS处理条带错误,node.js,mongodb,express,error-handling,stripe-payments,Node.js,Mongodb,Express,Error Handling,Stripe Payments,我试图在用户创建帐户时向其收费。一切都设置好了,并且在之前的代码中工作得很完美。当用户注册网站的“高级”部分时,他们会创建一个帐户,并按照下面的代码收费 问题是:如果用户的信用卡由于各种原因而被拒绝。。。他们的用户帐户仍在创建中。如果信用卡出现故障,我将如何更改下面的代码以不达到代码的该部分 注意:当用户试图创建一个用户名为的帐户时,这是有效的。web应用程序将他们重定向到/buy以选择新用户名。但是,它无法处理信用卡错误,因为用户是首先创建的 谢谢你的帮助 user.save(functio

我试图在用户创建帐户时向其收费。一切都设置好了,并且在之前的代码中工作得很完美。当用户注册网站的“高级”部分时,他们会创建一个帐户,并按照下面的代码收费

问题是:如果用户的信用卡由于各种原因而被拒绝。。。他们的用户帐户仍在创建中。如果信用卡出现故障,我将如何更改下面的代码以不达到代码的该部分

注意:当用户试图创建一个用户名为的帐户时,这是有效的。web应用程序将他们重定向到/buy以选择新用户名。但是,它无法处理信用卡错误,因为用户是首先创建的

谢谢你的帮助

 user.save(function(err) {
            console.log('this is the problem' + ' ' + err)
            if(err){
            return res.redirect('/buy')
            }
            var token = req.body.stripeToken; // Using Express
            var charge = stripe.charges.create({
            amount: 749,
            currency: "usd",
            description: "Website.com Premium - One time Payment",
            source: token,

            }, function(err, charge) {
                if(err) {
                  console.log(err);
                  return res.redirect('/buy')
                }
                console.log('charged')
                req.logIn(user, function(err) {
                  if(err) {
                    console.log(err);
                  }
                  console.log('all looks good')
                  res.redirect('/results');
                });
            });
          });
        });

如果充电失败,如何删除用户?您可以交换订单,charge->user(排序只是将问题边界推到一边)。不过,进行某种故障清理并不是一个坏主意。这里更大的问题是跨多个服务的部分请求成功/失败,这有很多挑战。我建议考虑在充电失败时通过(usr.remove)对某些错误进行“清理”。您如何使用passport“user.remove”呢?这是否可能重复?根据文档:“带条纹的充电卡是一个同步过程。您的代码将立即收到请求的结果:成功时为充电对象,失败时为异常。不需要异步webhook或IPN脚本。”如果充电失败,如何删除用户?您可以交换订单,charge->user(排序只是将问题边界推到一边)。不过,进行某种故障清理并不是一个坏主意。这里更大的问题是跨多个服务的部分请求成功/失败,这有很多挑战。我建议考虑在充电失败时通过(usr.remove)对某些错误进行“清理”。您如何使用passport“user.remove”呢?这是否可能重复?根据文档:“带条带的充电卡是一个同步过程。您的代码将立即收到请求的结果:成功时为充电对象,失败时为异常。不需要异步webhook或IPN脚本。”