2016-10-31 40 views
-1

我已經成功使用此功能通過解析來創建帶區客戶:如何發送條紋客戶ID解析

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」,與「email」,「用戶名」以及未存儲在User類中的方式相同。

+0

您可以從請求中獲取當前用戶。將條紋ID設置爲該用戶的屬性並保存。 – danh

+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不返回解析無極,你可以在「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。請參閱文檔。

+0

非常感謝!當使用'var user = request.user()'我得到的錯誤:**屬性'用戶'的對象#不是一個函數** –

+0

@ J.M,我的壞。這不是一個函數,它是一個屬性'request.user',沒有parens。編輯。 – danh

+0

噢,好的。修正了它,但是現在有一個新的錯誤是**不能調用未定義的方法'然後'在stripe.customers.create({email:user.email})。then(function(customer)' –