javascript - 使用 Stripe 运行订阅付款而不创建订阅
问题描述
我正在使用 firebase 扩展Run Subscription Payments with Stripe
。不过这很奇怪。基本上,有时,订阅集合不会在用户输入他们的详细信息并点击提交后创建,因此必须将它们重定向回第二次工作的条带结帐页面。这种情况有时会发生。它很奇怪。这是我执行该Create Checkout Session
功能的代码。
const firestore = firebase.firestore();
const app = firebase.app();
let userID = '';
firebase.auth().onAuthStateChanged(user => {
if (user) {
userID = user.uid;
console.log(user.uid);
}
});
export async function createCheckoutSession(activtyStatus) {
// price ID with trial LIVE ID
let price = 'price_1IGW85KDPaWWeL1yjWsi9oRa';
if (activtyStatus == 'canceled') {
price = 'price_1IfmDsKDPaWWeL1ywjMTGarh';
}
const checkoutSessionRef = firestore
.collection('customers')
.doc(userID)
.collection('checkout_sessions')
.add({
price,
success_url: 'https://x.com/successPage',
cancel_url: 'https://x.com/signin'
});
// Wait for the CheckoutSession to get attached by the extension
(await checkoutSessionRef).onSnapshot(snap => {
const { error, sessionId } = snap.data();
if (error) {
// Show an error to your customer and
// inspect your Cloud Function logs in the Firebase console.
console.log(`An error occured: ${error.message}`);
}
if (sessionId) {
// We have a session, let's redirect to Checkout
// Init Stripe
const stripe = window.Stripe('pk_live');
console.log('going to stripe: ');
stripe.redirectToCheckout({ sessionId });
console.log('logged stripe');
}
});
}
有没有人看到任何潜在的问题?
解决方案
推荐阅读
- python - 在 PYTHONPATH 元素的顶部导入两个具有相同名称的模块
- wordpress - 错误:文件无法写入磁盘 | WP、FTP、主机
- bash - 在 Ansible 中执行另一个命令之前,如何编写一个需要 15 分钟才能运行的 bash 命令?
- c# - C# gRPC 使用截止日期而不是取消令牌
- laravel - 测试工匠控制台命令时在整数上调用成员函数 expectsOutput()
- r - 如何使用 R 对 PostGIS 数据库查询进行单元测试
- postgresql - Postgres upsert 避免第二个唯一约束?
- python - 致命的 Python 错误:无法从堆栈溢出中恢复。在蟒蛇
- javascript - 在 React 中创建可重新排序的卡片组件
- java - 动态获取 Intellij IDEA (maven) 的内部版本号