javascript - 如何在 strip 中保存卡详细信息(javascript)

标签 javascript firebase react-native stripe-payments

当你看到我的问题时,我很困惑,因为每次我得到不同的东西时,我都会看到很多关于保存卡的文章和 strip 文档解决方案。我的应用程序流程类似于第一个用户来了,他将获得 2 个选项

  1. 以前保存的卡片
  2. 输入新卡

输入新卡

在执行此操作时,我从客户那里获取卡的详细信息,然后我生成 token 并发送将从数据库中获取的 token 和 customerId(如果是老客户),这意味着客户已经生成,我在后端首先创建客户(如果没有找到 customerId)使用我在添加付款信息后获得的 strip token ,然后使用我将向客户收费的 customerId

stripe.charges.create({
        amount:amount,
        description: '',
        currency: 'usd',
        customer: customerid
      })

现在我的问题开始了

我无法使用添加付款详细信息后获得的 token ,因为该 token 只能使用一次,我不能直接使用 customerId 向客户收费,那么我以后如何向客户收费以及如何获得客户列表已保存的付款方式并删除或更新它们。

最佳答案

首先,当您的客户在前端添加卡时,您可以将其保存为付款方式以供日后使用。

前端:

const result = await stripe.createPaymentMethod({
    type: 'card',
    card: cardElement,
    billing_details: {
        // Some details of your customer like email, name, etc
    },
});

并且您必须将 result.paymentMethod.id 发送到后端并使用该 paymentMethod 创建 strip 客户。

stripe.customers.create({
    email: emailAddress,
    invoice_settings: {
        default_payment_method: paymentMethodId,
    },
    payment_method: paymentMethodId,
});
// paymentMethodId is the payment method id passed from frontend

您可以查看以下文件:

https://stripe.com/docs/payments/save-and-reuse

https://stripe.com/docs/payments/save-during-payment

注意:您只能在数据库中保存客户的 ID,stripe 将处理所有其他的。您不必尝试将某些内容保存在数据库中供以后使用。

关于javascript - 如何在 strip 中保存卡详细信息(javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62864718/

相关文章:

javascript - 如何保存对数组方法的引用?

android - 构建失败,出现异常

firebase - 在构建时,StreamBuilder被多次调用

react-native - 在 React Native 中滚动到 ScrollView 组件底部时调用事件

react-native - 带有 jest 的 React Native 平台特定测试

javascript - this.object.property = object.property 是通过引用或值传递的 Javascript;破坏垃圾收集器/内存泄漏

javascript - ReactJS 的 Webpack/Babel 安装

在 react-native 和 firebase 3.1 中登录 Facebook

javascript - 是否可以从即将关闭的 ZMQ 套接字获取数据?

javascript - Firebase实时数据库获取父节点值.val()