メテオとストライプの API は初めてです。メテオとストライプを使用してこのクーポン コードを適用しようとしています。これは、クーポンを使用した 1 回限りの支払い用です。ただし、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");
}
});
どんな助けでも大歓迎です。