stripe-payments 相关问题

条带支付是指由“条纹”公司生成的用于支付处理的库和API。

条带错误:“您只能指定以下参数之一:default_price_data,类型。”

尝试通过节点获取在条带仪表板上创建产品。 代码片段: 异步创建产品(数据){ 尝试 { const 响应 = 等待获取(url,{ 方法:...

回答 1 投票 0

NestJS Stripe Webhook 部署到 Render.com 后出现错误

我正在 NestJS 应用程序中使用 Stripe webhook。当我使用 Stripe CLI 并使用“stripe Listen --forward-to localhost:3333/v1/stripe/webhook”逗号在本地测试 webhook 时...

回答 1 投票 0

Stripe 时间表创建 90 天(当前日期 + 90 天)

我在通过条带会话创建 90 天的条带计划(当前日期 + 90 天)时遇到问题。在我的页面上选择套餐后,它将重定向到 Stripe UI,客户可以在其中...

回答 1 投票 0

iOS 解析 Stripe 集成

我对编程相当陌生,我创建了一个应用程序来向客户收费,并希望存储他们的 CC 信息并稍后收费。我已经阅读了所有教程并且

回答 2 投票 0

条带错误 - $config 必须是字符串或数组

我在我的应用程序中使用 Laravel 和 Vue.js,并且在尝试创建 Stripe Checkout 会话时遇到问题。具体来说,当用户尝试下订单时,我会得到以下信息...

回答 1 投票 0

Stripe webhook 和原始请求正文存在问题

我正在 Firebase Cloud Functions 上运行的 Node/Express.ts 后端实现 Stripe webhook 集成,并且在签名验证期间很难传递原始 req.body。 我做了一个...

回答 1 投票 0

在我的 Stripe 应用程序中,我想将一封电子邮件链接到一位客户,因此任何定期付款都不会重复客户,但 Stripe 会不断重复

所以我的产品是一项订阅服务,它允许用户访问我网站上的服务。我已经在 stripe 上创建了该产品,并将付款链接添加到我的网站: 所以我的产品是一项订阅服务,它允许用户访问我网站上的服务。我已经在 stripe 上创建了该产品,并将付款链接添加到我的网站: <a className="bg-red-600 text-white py-2 px-4 rounded inline-block" target="_blank" href={`https://buy.stripe.com/test_bIY15h1Jp5eg6409AA?prefilled_email=${session.user.email}`} > Pay Now 我已经在我的 api 中编写了 webhook.ts 代码,在成功付款后授予用户访问权限,在未付款订阅时撤销访问权限。它在一定程度上起作用;在测试期间,我取消订阅并尝试使用同一电子邮件再次订阅(我将 customerId 添加到用户数据库),stripe 创建另一个客户而不是使用同一客户及其导致的问题 我的 webhookk.ts: import { NextApiResponse, NextApiRequest } from "next"; import Stripe from "stripe"; import mongooseConnect from "@/lib/mongooseConnect"; import User from "@/models/User"; import Order from "@/models/Order"; import { buffer } from "micro"; const stripe = new Stripe(process.env.STRIPE_SK as string); const webhookSecret = process.env.STRIPE_ENDPOINT_SECRET as string; export default async function handler(req: NextApiRequest, res: NextApiResponse) { await mongooseConnect(); const sig = req.headers['stripe-signature']; let event: Stripe.Event; try { event = stripe.webhooks.constructEvent(await buffer(req), sig!, webhookSecret); } catch (err: any) { console.error(`Webhook signature verification failed. ${err.message}`); return res.status(400).json({ error: err.message }); } const eventType = event.type; try { switch (eventType) { case 'checkout.session.completed': { const session = event.data.object as Stripe.Checkout.Session; const email = session.customer_details?.email; if (email) { let user = await User.findOne({ email }); let subscription; if (typeof session.subscription === 'string') { subscription = await stripe.subscriptions.retrieve(session.subscription); } else { subscription = session.subscription as Stripe.Subscription; } const priceId = subscription?.items.data[0]?.price?.id || null; if (!user) { // Create a new user if none exists user = await User.create({ email, name: session.customer_details?.name || 'Unknown', stripeCustomerId: session.customer as string, priceId, hasAccess: true, }); } else { // Update existing user with Stripe Customer ID if it doesn't exist if (!user.stripeCustomerId) { user.stripeCustomerId = session.customer as string; } // Ensure user has access user.hasAccess = true; user.priceId = priceId; await user.save(); } // Create an order record await Order.create({ user: user._id, name: user.name, email: user.email, stripeCustomerId: user.stripeCustomerId, paid: true, }); } break; } case 'customer.subscription.deleted': { const subscription = event.data.object as Stripe.Subscription; const user = await User.findOne({ stripeCustomerId: subscription.customer as string, }); if (user) { // Revoke access user.hasAccess = false; await user.save(); } break; } default: console.log(`Unhandled event type ${event.type}`); } } catch (e: any) { console.error(`Stripe error: ${e.message} | EVENT TYPE: ${eventType}`); } return res.status(200).json({ received: true }); } export const config = { api: { bodyParser: false, }, }; 我的模型/用户.ts: import mongoose, { Schema, model, models } from "mongoose"; const userSchema = new Schema({ name: { type: String, required: true }, email: { type: String, required: true, unique: true }, password: { type: String, required: false, default: null }, image: { type: String, required: false }, stripeCustomerId: { type: String, required: false, default: null }, hasAccess: {type: Boolean, required: true, default: false}, priceId: { type: String, required: false, default: null }, emailVerified: { type: Boolean, default: false }, }, {timestamps: true}); const User = models.User || model("User", userSchema); export default User; 它可以工作,但是在取消订阅并尝试再次付款后,它会在stripe仪表板中创建一个新客户,并且它会弄乱代码,有什么解决方案来解决客户重复吗? 您应该首先创建(或检索,如果有现有客户)一个客户,然后将 customer 传递给结帐会话创建 API,以便 Stripe 将新创建的订阅与该客户关联,而不是创建新客户。请参阅 API reference 了解更多详情

回答 1 投票 0

Stripe 托管结账,在 html 端输入数量

我正在构建一个结帐应用程序,需要 html 端的数量选择器并将该数量传递到结帐页面。我不想要结帐页面上的数量选择器。 跟随条纹...

回答 1 投票 0

通过 Stripe(网页)成功交易后,Apple Pay/Google Pay 付款表不会消失和超时

我遇到了一个奇怪的问题,我的 Apple Pay 和 Google Pay 付款单没有收到通过 Stripe 的交易结果。我有警报记录我公司发生的事情...

回答 1 投票 0

在stripeinvoice. payment_succeeded事件中添加产品名称

我们正在使用 salesforce 连接器来连接 stripe 和 salesforce。 所有的 webhook 事件都在 salesforce 中正确捕获,一旦我们使用的此类事件是invoice. payment_succeeded ...

回答 1 投票 0

Angular 14 中的条纹

我想在我的 Angular 14 项目上实现 Stripe,而不使用 stripe-ngx,因为弹出式设计不适合我。 所以,我使用“个性化支付隧道”,我想...

回答 1 投票 0

Stripe Connect,将订阅从一个父帐户迁移到另一个?

我正在构建一个使用 Stripe Connect 代表我的用户处理订阅的应用程序。 其他类似的应用程序也这样做,他们使用 Stripe Connect 代表用户处理订阅....

回答 1 投票 0

数据库设计:订阅/发票模型

因此,我的任务是为我们现有的一个应用程序重新设计数据库(以标准化和重组一些更大的表),并且我正在努力为

回答 1 投票 0

有没有办法确定 Stripe 订阅的最后更新时间?

有没有办法确定 Stripe 订阅的最后更新时间? 我正在寻找有关 Stripe 订阅对象本身更新的信息,而不是像订阅这样的具体细节...

回答 1 投票 0

如何使用 Next.JS 中的 getServerSideProps 从 stripe api 获取用户数据?

我正在尝试从 Next.JS 中的 getServerSideProps 函数中的条带获取一些用户数据,以便我可以将其传递给其他一些组件,但我很难从

回答 2 投票 0

事件帐户的 Stripe 连接 Webhook.updated 永远不会被触发

我创建了一个连接 webhook 来监听 account.updated 事件,只要连接帐户有任何更新,但该事件没有被触发。 但是当我尝试使用 COMM 通过 CLI 测试它时...

回答 1 投票 0

条带空对象dataObjectDeserializer.getObject()

你好, 我使用 stripe-java côté 后端,在 webhook stripe 上使用,j'essaye de desrialiser l'object json recu,seulement j'obtiens toout le temps null,les forums et Articles ...

回答 1 投票 0

Laravel 11 Cashier (Stripe) - 如何检查新订阅/重新订阅

在 Laravel 11 中使用 Stripe 的 Cashier 时,我需要获取 1 天前创建的订阅总数,分为两组: 从未订阅过但订阅过的用户...

回答 1 投票 0

为什么 dataObjectDeserializer.getObject() 不存在?

我创建了一个 spring-boot 服务器来处理 stripe webhooks。 然而,webhooks 正在工作 - 我收到一个事件,但是当我尝试获取 dataObjectDeserializer.getObject() 的值时,它的 n...

回答 3 投票 0

即使提供了 customerId,条带客户也未知

我觉得有些事情我没有在这里做。 所以基本上我确保 customerId 匹配,但在处理付款后,它仍然显示客户未知。 后端 缺点...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.