Add UserCardDetail in the landing non-logged in flow
This commit is contained in:
parent
9904a71d38
commit
1c5ff1f9dd
1 changed files with 15 additions and 4 deletions
|
@ -13,7 +13,7 @@ from django.views.decorators.cache import cache_control
|
||||||
from django.views.generic import FormView, CreateView, DetailView
|
from django.views.generic import FormView, CreateView, DetailView
|
||||||
|
|
||||||
from hosting.forms import HostingUserLoginForm
|
from hosting.forms import HostingUserLoginForm
|
||||||
from hosting.models import HostingOrder
|
from hosting.models import HostingOrder, UserCardDetail
|
||||||
from membership.models import CustomUser, StripeCustomer
|
from membership.models import CustomUser, StripeCustomer
|
||||||
from opennebula_api.serializers import VMTemplateSerializer
|
from opennebula_api.serializers import VMTemplateSerializer
|
||||||
from utils.forms import BillingAddressForm, BillingAddressFormSignup
|
from utils.forms import BillingAddressForm, BillingAddressFormSignup
|
||||||
|
@ -397,9 +397,9 @@ class OrderConfirmationView(DetailView):
|
||||||
stripe_api_cus_id = request.session.get('customer')
|
stripe_api_cus_id = request.session.get('customer')
|
||||||
vm_template_id = template.get('id', 1)
|
vm_template_id = template.get('id', 1)
|
||||||
stripe_utils = StripeUtils()
|
stripe_utils = StripeUtils()
|
||||||
card_details = stripe_utils.get_card_details(stripe_api_cus_id,
|
card_details = stripe_utils.get_cards_details_from_token(
|
||||||
request.session.get(
|
request.session.get('token')
|
||||||
'token'))
|
)
|
||||||
if not card_details.get('response_object'):
|
if not card_details.get('response_object'):
|
||||||
msg = card_details.get('error')
|
msg = card_details.get('error')
|
||||||
messages.add_message(self.request, messages.ERROR, msg,
|
messages.add_message(self.request, messages.ERROR, msg,
|
||||||
|
@ -493,6 +493,7 @@ class OrderConfirmationView(DetailView):
|
||||||
else:
|
else:
|
||||||
# We assume that if the user is here, his/her StripeCustomer
|
# We assume that if the user is here, his/her StripeCustomer
|
||||||
# object already exists
|
# object already exists
|
||||||
|
stripe_customer = request.user.stripecustomer
|
||||||
stripe_customer_id = request.user.stripecustomer.id
|
stripe_customer_id = request.user.stripecustomer.id
|
||||||
custom_user = request.user
|
custom_user = request.user
|
||||||
|
|
||||||
|
@ -502,6 +503,16 @@ class OrderConfirmationView(DetailView):
|
||||||
billing_address_data.update({
|
billing_address_data.update({
|
||||||
'user': custom_user.id
|
'user': custom_user.id
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if 'token' in request.session:
|
||||||
|
ucd = UserCardDetail.get_or_create_user_card_detail(
|
||||||
|
stripe_customer=stripe_customer,
|
||||||
|
card_details=card_details_dict
|
||||||
|
)
|
||||||
|
UserCardDetail.save_default_card_local(
|
||||||
|
stripe_customer.stripe_id,
|
||||||
|
ucd.card_id
|
||||||
|
)
|
||||||
user = {
|
user = {
|
||||||
'name': custom_user.name,
|
'name': custom_user.name,
|
||||||
'email': custom_user.email,
|
'email': custom_user.email,
|
||||||
|
|
Loading…
Reference in a new issue