流星和条纹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