J'essaie de traiter un paiement par carte de crédit à partir de mon application Android à l'aide de Firebase et Stripe. J'ai récupéré un jeton Stripe sur mon client, et j'utilise un déclencheur de base de données dans ma fonction Cloud Firebase pour détecter une nouvelle commande. Voici mon code de fonction.Erreur lors de la connexion à Stripe depuis la fonction Cloud de Firebase
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
Cela génère l'erreur suivante:
Error: An error occurred with our connection to Stripe at Error._Error (/user_code/node_modules/stripe/lib/Error.js:12:17) at Error.Constructor (/user_code/node_modules/stripe/lib/utils.js:120:13) at Error.Constructor (/user_code/node_modules/stripe/lib/utils.js:120:13) at ClientRequest. (/user_code/node_modules/stripe/lib/StripeResource.js:206:9) at emitOne (events.js:96:13) at ClientRequest.emit (events.js:188:7) at TLSSocket.socketErrorListener (_http_client.js:309:9) at emitOne (events.js:96:13) at TLSSocket.emit (events.js:188:7) at connectErrorNT (net.js:1021:8) at _combinedTickCallback (internal/process/next_tick.js:80:11) at process._tickDomainCallback (internal/process/next_tick.js:128:9)
Je ne trouve aucune documentation sur cette erreur. Et j'ai essayé tout ce que je pouvais penser. Toutes les variables contiennent des données valides.
Qui l'a fait, merci beaucoup –
Par hasard savez-vous comment capturer une demande de charge échouée? Tout fonctionne avec le code ci-dessus tant que j'utilise une bonne carte. Si j'utilise une carte refusée, le flux continue dans la section d'erreur du bas, mais la variable d'erreur est vide. Je pensais que ça retournerait juste un objet de charge échoué –
Je ne sais rien sur Stripe lui-même, désolé. {: On dirait que vous pourriez être mieux servi en publiant cela comme une question distincte et ciblée. – Prisoner