Error al conectarse a Stripe desde Firebase Cloud Function
Estoy tratando de procesar un pago con tarjeta de crédito desde mi aplicación de Android usando Firebase y Stripe. He recuperado un token Stripe en mi cliente y estoy usando un activador de base de datos en mi Firebase Cloud Function para detectar cuando se publica un nuevo pedido. Aquí está mi código de función.
const stripe = require('stripe')('sk_test_XXXXXXXXXXXXXXXXXXXXXXXX');
return admin.database()
.ref()
.child('orders')
.child(userId)
.child(orderId)
.child('token')
.once('value')
.then(snapshot => {
return snapshot.val();
})
.then(token => {
const amount = order.amount;
console.log('Amount:', amount);
console.log('token:', token.id);
const idempotency_key = orderId;
const source = token.id;
const currency = 'usd';
const charge = {amount, currency, source};
return stripe.charges.create(charge, { idempotency_key });
})
.then(charge => {
console.log('Success:', charge);
// If the result is successful, write it back to the database
return event.data.adminRef.set(charge);
}, error => {
console.log('Error:', error);
return;
}
);
enter code here
Esto genera el siguiente error:
Error: se produjo un error con nuestra conexión a Stripe en Error._Error (/user_code/node_modules/stripe/lib/Error.js:12:17) en Error.Constructor (/user_code/node_modules/stripe/lib/utils.js: 120: 13) en Error.Constructor (/user_code/node_modules/stripe/lib/utils.js:120:13) en ClientRequest. (/user_code/node_modules/stripe/lib/StripeResource.js:206:9) en emitOne (events.js: 96: 13) en ClientRequest.emit (events.js: 188: 7) en TLSSocket.socketErrorListener (_http_client.js : 309: 9) en emitOne (events.js: 96: 13) en TLSSocket.emit (events.js: 188: 7) en connectErrorNT (net.js: 1021: 8) en _combinedTickCallback (internal / process / next_tick.js : 80: 11) en process._tickDomainCallback (interno / process / next_tick.js: 128: 9)
No puedo encontrar ninguna documentación sobre este error. Y he probado todo lo que se me ocurre. Todas las variables contienen datos válidos.