条纹 - 向现有客户添加新卡

时间:2015-03-07 07:36:39

标签: stripe-payments

我需要向预先存在的客户添加卡。这就是我的所作所为:

1。从用户提交中获取令牌

card_token = request.POST('stripeToken')

2。检索客户

customer =  stripe.Customer.retrieve('cus_xxxxxxxxxx')

3。将卡添加到此客户

customer.Cards.create(card=card_token)

#3 我遇到了麻烦,因为看起来客户没有方法卡,但我看到有人在其他地方做过。

我该如何实现这个目标?

4 个答案:

答案 0 :(得分:29)

如果您使用2015-02-18 API版本或更高版本,则cards属性已更改为sources,如changelog

中所示

Create Card API上的文档现在显示以下代码:

customer = stripe.Customer.retrieve('cus_xxxxxxxxxx')
customer.sources.create(card=card_token)

您可以在信息中心的API密钥settings中找到您的API版本,还可以使用Stripe-Version标头强制您的API请求使用较旧的API版本,以便cards仍然按照Versioning文档中的说明工作:

stripe.api_version = '2015-01-26'

答案 1 :(得分:2)

2019年更新:欧洲的强客户身份验证(SCA)要求使情况有所变化;您现在可能要使用Setup Intents API预先收集卡的详细信息,以备将来付款。

此新API既符合PCI又符合SCA。您可以了解更多here
 或在GitHub上查看以下示例代码:https://github.com/stripe-samples/saving-card-without-payment

您现在也可以entirely with Checkout执行此操作!

答案 2 :(得分:-1)

这里有几种语言和平台的例子。

https://stripe.com/docs/api#create_card

祝你好运

答案 3 :(得分:-2)

示例(customerId - cus_xxxxxxxxxx):

Do
    With Sheets("08-Attribute")
        copy.Range("9,AttributeRowCounter").Value
        Application.WorksheetFunction.VLookup((Sheets("JCX").Cells(10, attributerowcounter)), (Sheets("08-Attribute").Cells(1, attributerowcounter)), True).Value

        With Sheets("08-Attribute")
            If "9,AttributeRowCounter" = "CFM" Then
                .Range("11,AttributeRowCounter").Value = Sheets("JCX").Range("14,TagNumberRow").Value
            ElseIf "9" = "SP" Then
                .Range("11,AttributeRowCounter").Value = Sheets("JCX").Range("15,TagNumberRow").Value
            ElseIf "9" = "RPM" Then
                .Range("11,AttributeRowCounter").Value = Sheets("JCX").Range("16,TagNumberRow").Value
            ElseIf "9" = "Motor_HP" Then
                .Range("11,AttributeRowCounter").Value = Sheets("JCX").Range("17,TagNumberRow").Value
            Else
                .Range("9,AttributeRowCounter").Value = Sheets("JCX").Range("20,TagNumberRow").Value
                TagValueNameColumn = TagValueNameColumn + 2
                .Range("11,AttributeRowCounter").Value = Sheets("JCX").Range("21,TagNumberRow").Value
                TagValueNameColumn = TagValueNameColumn + 2
            End If 'new
        End With 'new
    End With 'new
Loop Until Cells(1, attributerowcounter) = False