更新信用卡或允许用户在均衡付款中使用不同的卡

时间:2012-10-24 21:03:36

标签: python balanced-payments

我正在使用balanced payments来允许用户在我的网站上购买服务。当用户准备结账时,他们在我的网站上登录/创建一个帐户,然后输入他们的信用卡信息。这张卡是收费的,他们正在路上。

正如我上面提到的,我的网站提供服务,所以我每个月都会通过cronjob自动为卡充电。我只是使用以下一个衬垫来抓住买家:

buyer = balanced.Account.query.filter(email_address = emailAddress)[0]

足够简单。但是,信用卡丢失,它们过期,用户想要使用不同的信用卡等。如何允许用户编辑信用卡或提供新信用卡?我是否只是创建一个单独的页面,允许他们通过以下方式输入新的信用卡信息:

buyer = balanced.Marketplace.my_marketplace.create_buyer(emailAddress, card_uri = cardURI)

最后,平衡如何决定使用哪个chard?如何让用户管理他们想要使用的信用卡?我只是存储card_uri并让他们选择使用哪个卡片URI吗?

2 个答案:

答案 0 :(得分:3)

如果查看the source for the balanced-python库,可以获得有关使用哪些参数的提示。我很感激初学者可能会有点困惑,所以感谢您提问。

将卡添加到现有帐户:

card = balanced.Card(**card_payload)  # this could also just be a URI from a card tokenized with balanced.js
account = balanced.Account.query.filter(email_address = emailAddress).one()
account.add_card(card.uri)

为特定卡充电:

cards = account.cards
# some magic here to select the correct card (e.g. prompt user for which card)
card = magic_card_selection(cards)
debit = account.debit(amount_in_cents, source_uri=card.uri)

为用户显示卡

cards = account.cards
for card in cards:
    # display as you like, the card object has the following attributes:
    print card.__dict__.keys()
   ['expiration_month', 'account', 'hash', 'name', 'expiration_year', 'created_at', 'brand', 'uri', 'card_type', 'is_valid', 'meta', 'last_four', 'id']

以下是一个可能有用的完整示例:

import balanced


key = balanced.APIKey().save()
balanced.configure(key.secret)
balanced.Marketplace().save()

buyer = balanced.Account(email_address='buyer@example.org').save()

# add a new card
card = balanced.Marketplace.my_marketplace.create_card(
    name='First card',
    card_number='5105105105105100',
    expiration_month='12',
    expiration_year='2020',
    security_code='123',
)

buyer.add_card(card.uri)

# add another valid card 
card = balanced.Marketplace.my_marketplace.create_card(
    name='Second card',
    card_number='5105105105105100',
    expiration_month='12',
    expiration_year='2020',
    security_code='123',
)

buyer.add_card(card.uri)

amount_in_cents = 100  # $1.00

first_card = buyer.cards[0]
second_card = buyer.cards[1]

# charge a specific card
debit = buyer.debit(amount_in_cents, source_uri=first_card.uri)
debit2 = buyer.debit(amount_in_cents, source_uri=second_card.uri)

assert debit.source.uri == first_card.uri
assert debit2.source.uri == second_card.uri

# show all attributes on an object
print first_card.__dict__.keys()

答案 1 :(得分:1)

文档中涵盖了很多内容;

  

您可以为特定卡充电,如果不这样,平衡充电最多    最近在这个帐户上添加了卡片。