流星和條紋API的新功能我試圖使用Meteor和stripe應用此優惠券代碼。這是一次性使用優惠券付款。然而,handleCharge方法在處理付款方法之前觸發。我希望Stripe.coupons.retrieve在付款處理之前先返回一個結果。流星和條紋在收費前首先應用優惠券
服務器方法
Meteor.methods({
processPayment(charge, coupon) {
Stripe.coupons.retrieve(
coupon,
function(err, result) {
if(result) {
charge.amount = parseInt(charge.amount) - parseInt(charge.amount * coupon.percent_off);
}
}
);
let handleCharge = Meteor.wrapAsync(Stripe.charges.create, Stripe.charges),
payment = handleCharge(charge);
return payment;
}
});
我也試着優惠券被傳遞到processPayment之前返回結果。然後當我嘗試console.log結果它總是未定義的。
checkForCoupon(couponCode) {
let result = false;
Stripe.coupons.retrieve(
couponCode,
function(err, coupon) {
if(err) {
result = false;
} else {
result = true;
}
}
);
return result;
}
Meteor.call('checkForCoupon', coupon, (error, response) => {
if (error) {
console.log(error);
} else {
console.log("Success");
}
});
任何幫助將不勝感激。
您已經在'Stripe.charges.create'中使用'Meteor.wrapAsync',爲什麼不將它用於'Stripe.coupons.retrieve'呢? – Khang