当前位置: 首页 > 面试题库 >

从Firebase Cloud Function连接到Stripe时出错

上官和韵
2023-03-14
问题内容

我正在尝试使用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.Constructor(/user_code/node_modules/stripe/lib/utils.js:Error._Error(/user_code/node_modules/stripe/lib/Error.js:12:17)上,我们与Stripe的连接发生错误。
120.13),位于ClientRequest上的Error.Constructor(/user_code/node_modules/stripe/lib/utils.js:120:13)。(/user_code/node_modules/stripe/lib/StripeResource.js:206:9)在TLSSocket.socketErrorListener(_http_client.js)的ClientRequest.emit(events.js:188:7)的emitOne(events.js:96:13)
::
309:9)位于TLSSocket.emit(events.js:188:7)于Socket_Error处(net.js:1021:8)的TLSSocket.emit(events.js:188:7)处,_combinedTickCallback(internal
/ process / next_tick.js)
:80:11)在process._tickDomainCallback(内部/进程/next_tick.js:128:9)

我找不到有关此错误的任何文档。我已经尝试了所有我能想到的。所有变量均包含有效数据。


问题答案:

发生这种情况的最可能原因与您的代码无关-与您订阅的Firebase计划有关。

“ Spark计划”是完全免费的层(也是大多数人最开始使用的层),除Google的HTTPS服务外,不允许出站网络连接。

即使是用于开发和测试,我也建议您使用“
Blaze计划”。它允许网络连接。尽管它确实列出了使用价格(用于处理和网络连接),但是“信息”按钮指示在这些价格开始生效之前,每个月都有一个免费使用级别,该级别通常足以进行开发和测试。



 类似资料:
  • 我正在尝试使用spring cloud AWS将AWS SQS集成到我的springboot应用程序中,但是不断出现这个错误(发布在下面),有人能帮忙吗? 这是我的档案。 org.springframework.beans.factory.beanCreationException:创建类路径资源[org/springframework/cloud/aws/messaging/config/ann

  • 问题内容: 我知道我正在做一些非常愚蠢和愚蠢的事情,但是我希望有人可以帮助我建立从Mac上的node.js到mongodb的基本数据库连接。 我已经使用自制软件安装了mongodb,看起来效果很好。我已经以本地登录用户身份启动了服务器(mongod),并打开了第二个终端,并确认可以使用mongo连接到该服务器。当我运行mongo时,出现消息“正在连接:localhost:27017 / test”

  • 问题内容: 我正在尝试在Heroku上以RDS实例作为数据库后端部署Django应用。一切正常,直到我尝试加密连接,然后出现此错误: 设置如下: 标准Django应用程序 具有安全组的MySQL RDS实例允许来自所有IP地址的连接 MySQL用户设置为允许来自任何主机的连接 亚马逊的pem已下载并在Django设置中指定 在Heroku上: 在Django设置中: 我已经尝试搜索,并且已经阅读了

  • 我使用Docker在远程Linux计算机上安装了一个服务。我使用了以下命令 docker运行-p 4443:4443--rm-e openvidu.secret=my_secret-e openvidu.publicurl=https://187.84.228.66:4443 openvidu/openvidu-server-kms 但当我第一次尝试do connect时,我收到了以下错误消息:

  • 我目前正试图找到一个替代我的android应用程序后端。目前,我使用php servlets查询Mysql数据库。数据库(Mysql)托管在我学院的一台计算机上,所以我不能更改任何配置,因为我不是管理员。我只能编辑自己的表。 我试图使用以下代码创建一个java RESTful服务器:

  • 下面是/etc/kafka/connect-MongoDB-source.properties中的MongoDB配置 但是低于误差 以独立模式运行连接器。 我在debezium-debezium-连接器-mongob-1.0.0/debezium-connector-mongodb-1.0.0.Final.jar 类路径的设置如下 使用插件路径,我看到它能够注册和加载所有必需的插件。 但最后还是同