我有一个注册过程需要包含一次性订阅费,我试图使用节点Paypal SDK执行,尽管问题是框架不可知我猜。目前我执行以下内容:
exports.create = function (req, res) {
var user = new User(req.body);
user.save(function (err) {
if (err) {
// handle errors --> show validation errors on sign-up form...
}
// User is valid, user persisted, show welcome page whatever...
res.redirect('/welcome');
});
};
现在我需要添加应该在验证之间执行的付款,这种验证发生在用户模型中(假设没有JS客户端),并且将用户持久保存到数据库中。但是我不明白这是怎么回事。
那么,无论付款是否成功,数据都应该保留,然后如果付款对象cancel_url
路由被执行,则必须删除用户?
我还假设在用户回到您的网站(通过付款对象return_url
)并执行了paypal.payment.execute
方法之后才执行交易吗?在这种情况下,如果用户在Paypal上输入他们的详细信息之间关闭浏览器(他们可能认为交易已在此时完成)并返回到我的webapp,我将在数据库中有一个据称有效的用户但从未收到过付款。
很抱歉,如果这令人困惑,我正尽力表达这一点。基本上,什么是持久的新用户,同时需要通过Paypal成功付款的正确控制流程?