导入 https://js.stripe.com/v3/ 以用于谷歌云功能



我正在使用Stripe和Google Cloud Functions开发一个Angular7应用程序。我正在通过条纹处理付款。

在这种情况下,我正在尝试处理订阅付款。为此,我需要 Stripe 库,以便我可以调用 API。根据 Stripe 文档,库应该像这样导入:

<script src="https://js.stripe.com/v3/"></script>
const stripe = Stripe('pk_test_.......');

这在我的实际应用程序中不是问题,因为我只是将脚本标签放在索引中.html而变量stripe放在我的组件中。但是,由于我想从我的云函数调用这些 Stripe 函数,因此没有索引.html来导入库。

如何导入它以便我可以调用createPaymentMethod()函数?请记住,我的云函数也是用 Typescript 编写的。见下文:

export const createSubscription = functions.https.onCall(async (data, context) => {
//Verify call is being made from user from app
const uid = context.auth && context.auth.uid;
const cardElement = data.cardElement
if(!uid) return "error";
const stripe = Stripe('sk_test_....');
//Create payment method for customer
const paymentMethod = await stripe_pub.createPaymentMethod('card', cardElementObj.card, 
{
billing_details: {
name: userName,
email: firebaseUserEmail
},
});

在这种情况下,我只是收到错误:

Property 'paymentMethods' does not exist on type 'Stripe'

我实际上能够使用已安装的 https://github.com/stripe/stripe-node 库自行导入实际的条带 API。

var stripe = require('stripe')('sk_test_...');
const paymentMethod = await stripe.paymentMethods.create('card',cardElementObj.card);

然而,这里的微妙区别在于,尽管两种方法达到相同的结果,但它们都采用不同的参数。我正在使用 Stripe 元素,这意味着我有一个卡元素,这在第一个示例中很有用,但在第二个示例中则不然,您需要实际的卡号、到期日等。因此,为什么我想使用第一种方法导入它。

本质上,问题是,如何导入JS文件,例如 到我的云函数中使用?

谁能帮助我了解如何导入此库以用于我的云函数?或者,也许我可以下载JS文件并以这种方式导入它?任何帮助不胜感激!

谢谢!

您可以使用 https://www.npmjs.com/package/stripe-angular 中的库。

这样,您就不必自己导入模块。

如果您想自己导入模块,请按照此问题中的回答帖子进行操作:在 Angular 5 中,如何导入没有@types的 NPM 模块

最新更新