我已成功使用此功能通过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”,就像“电子邮件”,“用户名”和用户存储的内容一样类。
答案 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
。请参阅相关文档。