有兩個假設可以簡化這段代碼,第一個是客戶端進行的調用總是代表它的登錄用戶,而不是其他用戶。第二個是條紋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不返回解析無極,你可以在「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;
}
...並調用與電子郵件PARAM對象...
stripeCreateP({ email: user.email }).then(...
如果你的應用程序調用這比客戶端的登錄用戶以外的用戶,那麼你就需要通過用戶的電子郵件中request.params
你做的OP,而且,你會需要給喲在代碼中保留自己的權限以保存當前用戶以外的用戶,然後您可以在保存之前加上useMasterKey
。請參閱文檔。
您可以從請求中獲取當前用戶。將條紋ID設置爲該用戶的屬性並保存。 – danh
謝謝。我該如何回合呢? –