【发布时间】:2018-03-08 22:43:54
【问题描述】:
我正在尝试使用 Firebase 和 Stripe 从我的 Android 应用处理信用卡付款。我已经在我的客户端上检索到了一个 Stripe 令牌,并且我在我的 Firebase Cloud Function 中使用了一个数据库触发器来捕捉新订单的发布时间。这是我的功能代码。
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
这会产生以下错误:
错误:在 Error._Error 与 Stripe 的连接发生错误 (/user_code/node_modules/stripe/lib/Error.js:12:17) 在 Error.Constructor (/user_code/node_modules/stripe/lib/utils.js:120:13) 在 Error.Constructor (/user_code/node_modules/stripe/lib/utils.js:120:13) 在 ClientRequest。 (/user_code/node_modules/stripe/lib/StripeResource.js:206:9) 在 在 ClientRequest.emit (events.js:188:7) 的 emitOne (events.js:96:13) TLSSocket.socketErrorListener (_http_client.js:309:9) 在 emitOne (events.js:96:13) 在 TLSSocket.emit (events.js:188:7) 在 _combinedTickCallback 处的 connectErrorNT (net.js:1021:8) (internal/process/next_tick.js:80:11) 在 process._tickDomainCallback (内部/进程/next_tick.js:128:9)
我找不到有关此错误的任何文档。我已经尝试了我能想到的一切。所有变量都包含有效数据。
【问题讨论】:
标签: node.js firebase stripe-payments google-cloud-functions