如何将信息传递给 stripe.checkout.sessions.create() 函数
How to pass information to the stripe.checkout.sessions.create() function
我想做的事情:
我使用 firebase,所以只要有人通过 stripe 购买产品,我就想把它写在购买它的用户的文档上。
我想为此使用条纹 webhook。这个 webhook 看起来像这样:
它实质上是在付款完成后立即向 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
})
(用户调用此云函数以获取返回的结帐会话)
但是我如何传递用户 uid (context.user.uid
) 以便稍后可以使用 webhook 发送它。
我希望清楚我想做什么,如果不清楚请询问。谢谢你的时间。
您可以在条带结账会话的元数据中添加用户的 Firebase UID 或任何其他信息,如下所示:
const session = await stripe.checkout.sessions.create({
payment_method_types: ['card'],
// line items and other stuff
metadata: {firebaseUID: uid, product_id: "ProductID"},
});
您可以在结帐会话完成的 webhook 或任何成功的 webhook 中阅读它们。
我想做的事情: 我使用 firebase,所以只要有人通过 stripe 购买产品,我就想把它写在购买它的用户的文档上。 我想为此使用条纹 webhook。这个 webhook 看起来像这样:
它实质上是在付款完成后立即向 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
})
(用户调用此云函数以获取返回的结帐会话)
但是我如何传递用户 uid (context.user.uid
) 以便稍后可以使用 webhook 发送它。
我希望清楚我想做什么,如果不清楚请询问。谢谢你的时间。
您可以在条带结账会话的元数据中添加用户的 Firebase UID 或任何其他信息,如下所示:
const session = await stripe.checkout.sessions.create({
payment_method_types: ['card'],
// line items and other stuff
metadata: {firebaseUID: uid, product_id: "ProductID"},
});
您可以在结帐会话完成的 webhook 或任何成功的 webhook 中阅读它们。