새로운 약속 지원으로 작업하기 위해 Stripe을 사용하려고합니다. 체크 아웃을 사용Meteor.call이 응답을 반환하지 않습니다.
, 나는 토큰을 얻고 서버로 보내
Meteor.call('submit_charge', res.id, fee, name, reg, function (err, res) {
console.log(err, res);
});
서버 방법은 다음과 같이 정의된다 :
submit_charge: function(tok, amt, name, reg) {
var Stripe = StripeAPI('privatekey');
console.log('Submitting charge for ' + name);
Stripe.charges.create({
amount: amt,
currency: "usd",
card: tok,
description: "Payment - " + name,
metadata: {
'reg': reg
},
}).then(function(charge) {
console.log('Charge: ' + charge.id);
return charge.id;
}, function(err) {
console.log('Error: ' + err);
return 0;
});
}
나는 메서드를 호출 할 수 있으며 실행하지만 아무튼 아무것도 돌려주지 마. Meteor.call
에있는 console.log(err, res)
은 둘 다에 대해 정의되지 않은 값을 반환합니다.
충전 프로세스 ... 및 console.logs는 Stripe의 요금 ID를 표시하므로 비동기 문제는 아닙니다.
나는 여기에 엄청난 기본 무언가를 놓치고 있습니까?
도움 주셔서 감사합니다.
submit_charge: function(tok, amt, name, reg) {
var Stripe = StripeAPI('privatekey');
console.log('Submitting charge for ' + name);
var createCharge = Meteor._wrapAsync(Stripe.charges.create.bind(Stripe.charges));
try {
var result = createCharge({
amount: amt,
currency: "usd",
card: tok,
description: "Payment - " + name,
metadata: {
'reg': reg
});
return result;
}
catch(e) {
//Error
console.log(e);
}
}
은 기본적으로 당신은 콜백 내에서 데이터를 반환하려는 :
올바른 방향으로 나를 가리켜 주셔서 감사합니다. 나는 같은 일을 성취하기 위해 미래를 사용하여 끝냈다. – DisDev