如何在条带中保存卡片详细信息(javascript)

如何在条带中保存卡片详细信息(javascript),javascript,firebase,react-native,stripe-payments,Javascript,Firebase,React Native,Stripe Payments,正如你们看到我的问题时,我感到困惑,因为每次我得到一些不同的东西时,我都会看到许多用于保存卡片的文章和条带文档解决方案。我的应用程序流程类似于第一个用户,他将获得两个选项 以前保存的卡 输入新卡 输入新卡 在此过程中,我从客户处获取卡的详细信息,然后生成令牌并发送该令牌和将从db获取的customerId(如果是老客户),这意味着客户已经生成,在后端我首先创建客户(如果没有找到customerId)使用添加付款信息后获得的条带令牌,然后使用customerId向客户收费 stripe.charg

正如你们看到我的问题时,我感到困惑,因为每次我得到一些不同的东西时,我都会看到许多用于保存卡片的文章和条带文档解决方案。我的应用程序流程类似于第一个用户,他将获得两个选项

  • 以前保存的卡
  • 输入新卡
  • 输入新卡 在此过程中,我从客户处获取卡的详细信息,然后生成令牌并发送该令牌和将从db获取的customerId(如果是老客户),这意味着客户已经生成,在后端我首先创建客户(如果没有找到customerId)使用添加付款信息后获得的条带令牌,然后使用customerId向客户收费

    stripe.charges.create({
            amount:amount,
            description: '',
            currency: 'usd',
            customer: customerid
          })
    
    现在我的问题开始了
    我无法使用添加付款详细信息后获得的代币,因为该代币仅用于一次,我无法直接使用customerId向客户收费,那么我将来如何向客户收费,以及如何获取保存的付款方式列表并删除或更新它们。

    当您从Stripe收到代币时,然后,应在后续调用中使用该令牌创建具有该令牌的客户。您可以使用
    条带.customers.create
    调用来执行此操作。然后将该令牌转换为可重复使用的源。见:

    下次检索该客户时,您会注意到该源仍然存在于customer对象中。见:

    创建另一笔费用时,请使用customer对象中的新source_id,而不是source参数。如果您不提供,它将使用该客户的默认设置


    如果需要向客户添加其他卡,请使用卡创建API。这将允许您为客户创建、更新和删除卡。请参阅:

    当您从Stripe收到令牌时,该令牌应在随后的调用中使用,以使用该令牌创建客户。您可以使用
    条带.customers.create
    调用来执行此操作。然后将该令牌转换为可重复使用的源。见:

    下次检索该客户时,您会注意到该源仍然存在于customer对象中。见:

    创建另一笔费用时,请使用customer对象中的新source_id,而不是source参数。如果您不提供,它将使用该客户的默认设置


    如果需要向客户添加其他卡,请使用卡创建API。这将允许您为客户创建、更新和删除卡。请参阅:

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

    前端:

    const result=wait stripe.createPaymentMethod({
    键入:“卡”,
    卡片:cardElement,
    账单详情:{
    //客户的一些详细信息,如电子邮件、姓名等
    },
    });
    
    您必须将
    result.paymentMethod.id
    发送到后端,并使用该
    paymentMethod
    创建条带客户

    stripe.customers.create({
    电邮地址:,
    发票设置:{
    默认付款方式:paymentMethodId,
    },
    付款方式:paymentMethodId,
    });
    //paymentMethodId是从前端传递的付款方法id
    
    您可以查看以下文档:


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

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

    前端:

    const result=wait stripe.createPaymentMethod({
    键入:“卡”,
    卡片:cardElement,
    账单详情:{
    //客户的一些详细信息,如电子邮件、姓名等
    },
    });
    
    您必须将
    result.paymentMethod.id
    发送到后端,并使用该
    paymentMethod
    创建条带客户

    stripe.customers.create({
    电邮地址:,
    发票设置:{
    默认付款方式:paymentMethodId,
    },
    付款方式:paymentMethodId,
    });
    //paymentMethodId是从前端传递的付款方法id
    
    您可以查看以下文档:


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

    条带支持很少的存储卡详细信息的选项。您可以在首次付款后存储paymentMethod或存储卡详细信息,然后再付款

    在付款前存储卡详细信息:

  • 混凝土剥离器
  • CustomerCreateParams params=CustomerCreateParams.builder()
    .setName(“客户名称”)
    .setEmail(“customer@email")
    .build();
    
    Customer=Customer.create(参数)条带支持少量存储卡详细信息的选项。您可以在首次付款后存储paymentMethod或存储卡详细信息,然后再付款

    在付款前存储卡详细信息:

  • 混凝土剥离器
  • CustomerCreateParams params=CustomerCreateParams.builder()
    .setName(“客户名称”)
    .setEmail(“customer@email")
    .build();
    
    Customer=Customer.create(参数)
    这意味着当我在添加付款后获得代币并使用该代币创建客户时,它将成为默认付款方式,下次我再次添加新卡时,它将更新客户并添加新的默认付款方式,如果我检索客户对象,我将获得默认付款方式。我不知道下次如何使用它向客户收费。例如:-stripe.charges.create({金额:2000,货币:美元,苏