1
if error != nil
으로 Swift의 PFCloud 함수에서 오류를 처리하려고합니다. 클라우드 코드 나 스트라이프가 오류를 반환하지는 않지만 Swift는 마치 하나가있는 것처럼 응답합니다.Swift가 Cloud Code 오류를 잘못 읽음
스위프트
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