Ваш окончательный console.log(paymentIntent.status);
определен вне блока, где объявлено paymentIntent
, поэтому он не может достичь его.
Чтобы исправить это, переместите console.log(paymentIntent.status);
в блок над ним:
exports.StripePI = functions.https.onRequest(async (req, res) => {
const fee = (req.query.amount / 100) | 0;
const stripeVendorAccount = 'acct_';
stripe.paymentIntents.create({
amount: req.query.amount,
currency: req.query.currency,
payment_method: req.query.paym,
confirmation_method: 'automatic',
confirm: true,
payment_method_types: ['card'],
//application_fee_amount: fee,
description: req.query.description,
}, {
stripeAccount: stripeVendorAccount
},
function(err, paymentIntent) {
// asynchronously called
const paymentIntentReference = paymentIntent;
if (err !== null) {
console.log('Error payment Intent: ', err);
res.send('error');
} else {
console.log('Created paymentintent: ', paymentIntent);
res.json({
paymentIntent: paymentIntent,
stripeAccount: stripeVendorAccount
});
}
console.log(paymentIntent.status);
});
});
Как вы, возможно, видите выше, мне легче поймать такие проблемы, как если код постоянно с отступом. Если вам трудно поддерживать согласованный стиль, подумайте о том, чтобы использовать такой инструмент, как Prettier или (как я делал выше) beautifier.io .