1
我想在Swift中使用if error != nil
處理來自PFCloud函數的錯誤。雖然Cloud Code或Stripe都不會返回錯誤,但Swift會迴應,好像有一個錯誤。Swift錯誤地讀取雲代碼錯誤
斯威夫特
PFCloud.callFunctionInBackground("authorize", withParameters: ["customer": self.customerID!, "cost": self.stripePrice, "type": self.stripeDescription) { (success: AnyObject?, error: NSError?) -> Void in
print("Authorizing")
if error != nil {
print("authorizeError")
self.displayAlert("Error", message: "There was an error authorizing your payment. Please try again later.")
} else {
if type == 1{
print("one")
self.performSegueWithIdentifier("one", sender: self)
self.viewTimer.invalidate()
self.cancelTimer.invalidate()
} else {
self.performSegueWithIdentifier("two", sender: self)
print("two")
self.viewTimer.invalidate()
self.cancelTimer.invalidate()
}
}
}
雲代碼(Node.js的)
Parse.Cloud.define("authorize", function(request, response){
var user = request.user;
stripe.charges.create({ amount: request.params.cost, currency: "cad", customer: request.params.customer, capture: false}).then(function(charge) {
user.set("chargeID", charge.id);
return user.save(null, { useMasterKey: true });
}).then(function(result) {
console.log(charge);
console.log(charge.id);
response.success(charge);
}, function(err) {
console.log(err);
console.log(charge.id)
response.error(err);
});
});
是的沒有錯誤。在Stripe方面成功創建了一次收費。 – Dups
僅僅因爲使用Stripe創建費用並不意味着沒有錯誤。用戶是否保存了正確的「chargeId」?在console.log(charge.id')這一行上打印到控制檯的內容?我懷疑'charge.id'是未定義的,會導致運行時錯誤並導致'response.success()'永遠不會被執行。 – toddg
謝謝。我刪除了charge.id行,但它仍然像是出現錯誤一樣。你還有什麼建議我改變? – Dups