Stripe PaymentIntent.create 导致 TypeError:无法读取未定义的属性“创建”(谷歌云函数)

Posted

技术标签:

【中文标题】Stripe PaymentIntent.create 导致 TypeError:无法读取未定义的属性“创建”(谷歌云函数)【英文标题】:Stripe PaymentIntent.create causing TypeError: Cannot read property 'create' of undefined (google cloud functions) 【发布时间】:2019-11-16 05:09:24 【问题描述】:

我在谷歌云功能中遇到这个错误:

createStripePaymentIntent tc5h001dke76 TypeError:无法在 cloudFunction (/srv/node_modules) 处的 exports.createStripePaymentIntent.functions.https.onRequest (/srv/index.js:50:5) 处读取未定义的属性“创建” /firebase-functions/lib/providers/https.js:49:9) at /worker/worker.js:783:7 at /worker/worker.js:766:11 at _combinedTickCallback (internal/process/next_tick.js: 132:7) 在 process._tickDomainCallback (internal/process/next_tick.js:219:9)

这是我的代码:

'use strict';

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
const logging = require('@google-cloud/logging');
const stripe = require('stripe')(functions.config().stripe.token);
const currency = functions.config().stripe.currency || 'USD';
const express = require('express');
const app = express();


exports.createStripePaymentIntent = functions.https.onRequest(async (req, res) => 
    const paymentIntent = await stripe.paymentIntents.create(
      amount: 1099,
      currency: 'gbp',
      payment_method_types: ['card'],
    );
  return res.send('testResponse');
);

我已经尝试了许多对这段代码的排列,但为了清楚起见,我在这里保持简单。

我确实设法从“testResponse”得到响应,它被调用并正常运行。

问题是我通常编写 Swift 代码,我只是想在这里得到一个非常简单的 Stripe 实现,所以不可避免地会有一些我看不到的简单问题。因此,如果答案可以保持非常简单,那将很有帮助!

edit 使代码更清晰 - 感谢 Doug

【问题讨论】:

在另一个异步函数中嵌入匿名异步函数没有帮助。您可以删除该匿名函数包装器。 【参考方案1】:

所以最后我需要将 package.json 中的条带更新为“条带”:“^7.3.0”。

我将保留这个答案,因为它是 stipe 包的最新更改,也许其他人会发现它有用。

【讨论】:

以上是关于Stripe PaymentIntent.create 导致 TypeError:无法读取未定义的属性“创建”(谷歌云函数)的主要内容,如果未能解决你的问题,请参考以下文章

Stripe、Stripe Payments、Connect、关联账户、拆分支付

Stripe v3 中的 Stripe.card.validateCardNumber() 等价物

使用 Angular2 和 stripe.js 导入 Stripe

Stripe Connect:在Stripe Connect中,谁将支付Stripe费用,如何确定?

没有适合 Stripe 的构造函数

如何在 IOS 中使用 STRIPE API 创建 STRIPE 客户?