Show cards directly from Stripe and dissociate using PaymentMethod
This commit is contained in:
parent
36505db5a2
commit
31c5336e18
2 changed files with 12 additions and 4 deletions
|
@ -565,9 +565,11 @@ class SettingsView(LoginRequiredMixin, FormView):
|
||||||
stripe_customer = None
|
stripe_customer = None
|
||||||
if hasattr(user, 'stripecustomer'):
|
if hasattr(user, 'stripecustomer'):
|
||||||
stripe_customer = user.stripecustomer
|
stripe_customer = user.stripecustomer
|
||||||
cards_list = UserCardDetail.get_all_cards_list(
|
stripe_utils = StripeUtils()
|
||||||
stripe_customer=stripe_customer
|
cards_list_request = stripe_utils.get_available_payment_methods(
|
||||||
|
stripe_customer
|
||||||
)
|
)
|
||||||
|
cards_list = cards_list_request.get('response_object')
|
||||||
context.update({
|
context.update({
|
||||||
'cards_list': cards_list,
|
'cards_list': cards_list,
|
||||||
'stripe_key': settings.STRIPE_API_PUBLIC_KEY
|
'stripe_key': settings.STRIPE_API_PUBLIC_KEY
|
||||||
|
|
|
@ -98,8 +98,14 @@ class StripeUtils(object):
|
||||||
@handleStripeError
|
@handleStripeError
|
||||||
def dissociate_customer_card(self, stripe_customer_id, card_id):
|
def dissociate_customer_card(self, stripe_customer_id, card_id):
|
||||||
customer = stripe.Customer.retrieve(stripe_customer_id)
|
customer = stripe.Customer.retrieve(stripe_customer_id)
|
||||||
card = customer.sources.retrieve(card_id)
|
if card_id.startswith("pm"):
|
||||||
card.delete()
|
logger.debug("PaymentMethod %s detached %s" % (card_id,
|
||||||
|
stripe_customer_id))
|
||||||
|
customer.PaymentMethod.detach(card_id)
|
||||||
|
else:
|
||||||
|
logger.debug("card %s detached %s" % (card_id, stripe_customer_id))
|
||||||
|
card = customer.sources.retrieve(card_id)
|
||||||
|
card.delete()
|
||||||
|
|
||||||
@handleStripeError
|
@handleStripeError
|
||||||
def update_customer_card(self, customer_id, token):
|
def update_customer_card(self, customer_id, token):
|
||||||
|
|
Loading…
Reference in a new issue