【问题标题】:Pass Vuex data to Firebase after Stripe paymentStripe 付款后将 Vuex 数据传递给 Firebase
【发布时间】:2021-10-13 15:23:41
【问题描述】:

这是我第一次使用 firebase 功能和条带,付款成功时我在向 firestore 添加文档时遇到问题。 它不是预定义的“产品”,更像是创建流程后存储在 Vuex 中的自定义文章。 这是我的问题。我有这个功能:

exports.stripeWebhook = functions.https.onRequest(async (req, res) => {
  const stripe = require("stripe")(functions.config().stripe.token);

  let event;
  try {
    const whSec = functions.config().stripe.payments_webhook_secret;

    event = stripe.webhooks.constructEvent(
        req.rawBody,
        req.headers["stripe-signature"],
        whSec,
    );
  } catch (err) {
    console.error("⚠️ Webhook signature verification failed.");
    return res.sendStatus(400);
  }

  const dataObject = event.data.object;

  await admin.firestore().collection("orders").doc().set({
    checkoutSessionId: dataObject.id,
    paymentStatus: dataObject.payment_status,
    amountTotal: dataObject.amount_total,
  });

  return res.sendStatus(200);
});

它正在检查 Stripe 中的 checkout.session.completed 事件类型并将订单详细信息发送到 firestore,但我不知道如何使用 onRequest 函数从前面传递数据。 另外,因为我使用的是stripe chekout,所以我不确定如何在付款后保留来自vuex的数据。在付款时将其存储在本地存储中?

【问题讨论】:

  • 嗨,欢迎来到 Stack Overflow!请不要将堆栈 sn-p 用于不可运行的代码。 Stack sn-ps 仅适用于可在浏览器上运行的 HTML、CSS 和 JavaScript 代码。请改用code block 格式化您的代码。

标签: javascript firebase vue.js stripe-payments


【解决方案1】:

您可以通过req.body 对象读取您传递到请求正文中的数据。

然后,您必须将信息保存到数据库位置、Firestore 或 Realtime db,该位置使用条带事务 ID 作为文档或节点名称。

这允许您在事务更新时从条带中调用另一个云函数,该函数可以查找事务 ID 以加载数据以进行进一步处理。

【讨论】:

    猜你喜欢
    • 2018-08-17
    • 2020-11-14
    • 2016-07-16
    • 2018-08-06
    • 2019-04-15
    • 2020-05-04
    • 1970-01-01
    • 2018-06-17
    • 2022-01-19
    相关资源
    最近更新 更多