如何将Stripe客户ID发送到Parse

时间:2016-10-31 06:27:58

标签: node.js parse-platform stripe-payments

我已成功使用此功能通过Parse创建Stripe客户:

Parse.Cloud.define("customer", function(request, response){
stripe.customers.create({
    email: request.params.useremail
}, function(err, customer) {
    if(err){
            console.log(err);
            response.error(err);
    } 
    else{
            console.log(customer);
            response.success(customer);
    });
});

但是,我希望能够将当前用户数据下创建的客户ID发送到“cusToken”,就像“电子邮件”,“用户名”和用户存储的内容一样类。

1 个答案:

答案 0 :(得分:1)

有两个假设会简化此代码,第一个是发出呼叫的客户端始终代表其登录用户,而不是其他用户。第二个是条带create回答了一个承诺。假设:

Parse.Cloud.define("customer", function(request, response) {
    var user = request.user;
    stripeCreateP({ email: user.email }).then(function(customer) {
        user.set("someUserProperty", customer.someStripeProperty);  // as an example
        return user.save();
    }).then(function(result) {
        console.log(customer);
        response.success(customer); 
    }, function(err) {
        console.log(err);
        response.error(err);
    });
});

如果条带api没有返回解析Promise,你可以" promisify"如下......

function stripeCreateP(params) {
    var p = new Parse.Promise();
    stripe.customers.create(params, function(err, customer) {
        if (err) {
            p.resolve(customer);
        } else {
            p.reject(err);
        }
    });
    return p;
}

...并使用电子邮件参数对象调用...

stripeCreateP({ email: user.email }).then( ...

如果您的应用为客户登录用户以外的用户拨打此电话,那么您需要像在操作系统中那样在request.params中传递用户电子邮件,此外,您还需要&#39 ; ll需要在代码中允许自己保存除当前用户之外的用户,然后您可以在保存之前使用useMasterKey。请参阅相关文档。

相关问题