首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用stripe.js和python更新信用卡

如何使用stripe.js和python更新信用卡
EN

Stack Overflow用户
提问于 2014-04-10 13:13:38
回答 3查看 6.8K关注 0票数 2

我知道如何使用python和stripe更新信用卡。但是,建议敏感信息不能通过我们的服务器。使用stripe.js将其提交到条带。我只看到过使用stripe.js创建信用卡的示例。如何使用python和stripe.js更新信用卡

请帮帮忙。提前谢谢。

EN

回答 3

Stack Overflow用户

发布于 2015-11-25 05:18:41

这将类似于创建客户或向客户卡收费。您可以使用相同的条带按钮来发布到另一个文件。您可以添加一个隐藏输入,其中包含要更换的卡的customerID。

代码语言:javascript
复制
<form action='PYTHON FILE' method='POST'>
    <input type='hidden' name='cuid' value='<?php echo $cuid?>'/>
    <script
        src='https://checkout.stripe.com/checkout.js' class='stripe-button'
        data-key='YOUR TOKEN'
        data-panel-label='Change Card'
        data-label='Change Card'
        data-name='Change Card'
        data-description='Change your card'
        data-billing-address='false'>
    </script>
</form>

在这个PYTHON文件页面上,您可以连接到stripe,检索您的客户,并使用发布的令牌stripe添加一个新的卡(或者stripe称之为"sources“)。然后,您将获得新创建的卡的ID,并将客户的默认卡更新为此ID!

代码语言:javascript
复制
import stripe
stripe.api_key ="YOUR KEY" #ENTER YOUR KEY HERE
token = request.POST['stripeToken']
try:
    cuid = request.POST['cuid'];

    #GET CUSTOMER ON FILE
    customer = stripe.Customer.retrieve(cuid)

    #CREATE NEW CARD THAT WAS JUST INPUTTED USING THE TOKEN
    card = customer.sources.create(source=token)

    #GET NEW CARD ID
    newcardID = card.id

    #SET CUSTOMER'S NEW CARD ID TO TO DEFAULT
    customer.default_source = newcardID

    #SAVE NEW CARD
    customer.save()

except stripe.error.CardError, e:
# The card has been declined
pass

此处以条带形式记录了所有内容:https://stripe.com/docs/api#retrieve_customerhttps://stripe.com/docs/api#create_card

票数 8
EN

Stack Overflow用户

发布于 2014-04-27 00:24:08

假设您想要替换您已知ID的现有条带客户的默认信用卡。

您需要从stripe.js获取卡令牌,方法与创建新卡时相同。

卡令牌被提交给您的python应用程序,该应用程序检索条带客户并附加新的卡令牌。

代码语言:javascript
复制
# get the stripe customer
cu = stripe.Customer.retrieve({CUSTOMER_ID})
# change the card property
cu.card = {CARD_TOKEN}
# save the customer
cu.save()

有关更多信息,请参阅条带文档:https://stripe.com/docs/api#update_customer

票数 0
EN

Stack Overflow用户

发布于 2015-12-16 04:41:53

我不认为我们要用它来做什么,尽管它看起来像Stripe.js supports does

也就是说,下面是我编写的一些jQuery,它们可以很好地处理现有的Stripe.js表单,读取这些条纹数据属性的值并在提交时附加表单(这实际上是我现在看到的唯一解决方法)。

代码语言:javascript
复制
/*
 * Finds elements in form by data-KEY attributes where KEY in fields array
 */
var includeStripeData = function(form, fields)
{
    for (var i in fields)
    {
        // Skip if <input name="k" /> already exists (won't overwrite)
        var k = fields[i];
        if (form.find('input[name=' + k + ']').length)
        {
            console.log('Field exists: input[name=' + k + ']');
            continue;
        }

        // Skip if <input data-stripe-k="..." /> is not found
        var field = form.find('input[data-stripe=' + k + ']');
        if (!field)
        {
            console.log('Stripe field not found: input[data-stripe=' + k + ']');
            continue;
        }

        // Append to form
        form.append($('<input type="hidden" />').attr('name', k).val(field.val()));
    }
}

$('.update-card').submit(function() {
    var stripeFields = [
        'name',
        'address_line1',
        'address_line2',
        'address_city',
        'address_state',
        'address_zip',
        'address_country'
    ];

    includeStripeData($(this), stripeFields);
});

注意:这些字段(即POSTed -stripe=“address_city”、data-stripe="address_country“等)现在将被POSTed到您的表单操作,而当只使用Stripe.js时,只传递卡令牌。在这一点上,它是由您通过条带API更新卡的详细信息,这可以完成,而不是一个“新的信用卡令牌”,通过简单地引用卡ID。

有关文档,请参阅https://stripe.com/docs/api#update_card

我刚刚用我的测试成功了,得到了一个新的事件:

jdoe@example.com updated a Visa ending in 4242. 2015/12/15 13:47:43

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22979141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档