javascript - 如何将信息传递给 stripe.checkout.sessions.create() 函数

标签 javascript firebase google-cloud-functions stripe-payments

我想做的事: 我使用 firebase,因此一旦有人购买了 Stripe 产品,我就想将其写在购买该产品的用户的文档上。 我想为此使用 stripe webhook。这个网络钩子(Hook)看起来像这样:

enter image description here

它本质上是在付款失败后立即向 Firebase 函数发出 https 请求。它会触发一个 https 函数,该函数应将其已购买产品的信息写入用户的文档。但要做到这一点,Webhook 需要包含购买该产品的用户的 Firebase 用户 UID。

但是要将用户 uid 传递给 webhook,我需要将其传递给 stripe.checkout.sessions.create() 函数,如下所示:

    exports.createCheckoutSession = functions.https.onCall(async(data, context) => {
    const YOUR_DOMAIN = 'http://localhost:4242';
    const session = await stripe.checkout.sessions.create({
        payment_method_types: ['card'],
        line_items: [{
            price_data: {
                currency: 'usd',
                product_data: {
                    name: 'Stubborn Attachments',
                    images: ['https://i.imgur.com/EHyR2nP.png'],
                },
                unit_amount: 2000,
            },
            quantity: 1,
        }, ],
        mode: 'payment',
        success_url: `${YOUR_DOMAIN}/success.html`,
        cancel_url: `${YOUR_DOMAIN}/cancel.html`,
    });
    console.log(session.id)
    return session.id
})

(用户调用此云函数以获取返回的结账 session ) 但是我如何传递用户 uid (context.user.uid),以便稍后可以使用 webhook 发送它。

我希望我清楚我想做什么,如果没有请询问。感谢您抽出时间。

最佳答案

您可以在 strip 结帐 session 的元数据中添加用户的 Firebase UID 或任何其他信息,如下所示:

const session = await stripe.checkout.sessions.create({
        payment_method_types: ['card'],
        // line items and other stuff
        metadata: {firebaseUID: uid, product_id: "ProductID"},
    });

您可以在结账 session 已完成的 Webhook 或任何成功的 Webhook 中阅读它们。

关于javascript - 如何将信息传递给 stripe.checkout.sessions.create() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68056478/

相关文章:

android - Play-services 15.0 不支持 MapView.getMap()

Firebase 用户的 context.auth 仍然存在 allAuthenticatedUsers 使用 UNAUTHENTICATED 保护 Google 功能错误

javascript - 我缺少什么?尝试让来自 json 的正则表达式工作

javascript - 在ajax jquery post中发送带有&符号的字符串

javascript - 导入 firebase-admin 时出错

android - 与 Firebase 安装服务器 API 通信时出错 - 403 Forbidden

javascript - 在代码片段中加载 jQuery 并将元素添加到空白页面

javascript - MongoDB&JavaScript 堆内存不足

python - 为什么 Stackdriver 日志中会间歇性地出现空行?

ios - 无法在 Firebase 函数中读取 null 的属性