def checkout(request): # existing_order = get_user_pending_order(request) # context = { # 'order':existing_order, # } # type(existing_order) # print(context) client_token = generate_client_token() existing_order = get_user_pending_order(request) publishKey = settings.STRIPE_PUBLISHABLE_KEY if request.method == 'POST': # token = request.POST.get('stripeToken', False) # if token: # try: # charge = stripe.Charge.create( # amount=100 * existing_order.get_cart_total(), # currency='usd', # description='Example charge', # source=token, # ) result = transact({ 'amount': existing_order.get_cart_total(), 'payment_method_nonce': request.POST['payment_method_nonce'], 'options': { "submit_for_settlement": True } }) # except stripe.CardError as e: # message.info(request, "Your card has been declined.") # else: if result.is_success or result.transaction: return redirect( reverse('shopping_cart:update_records', kwargs={'id': result.transaction.id})) else: for x in result.errors.deep_errors: messages.info(request, x) return redirect(reverse('shopping_cart:checkout')) context = { 'order': existing_order, 'client_token': client_token, # 'STRIPE_PUBLISHABLE_KEY': publishKey } return render(request, 'shopping_cart/checkout.html', context)
def checkout(request, **kwargs): client_token = generate_client_token() existing_order = get_user_pending_order(request) publishKey = settings.STRIPE_PUBLIC_KEY if request.method == 'POST': token = request.POST.get('stripeToken', False) if token: charge = stripe.Charge.create( amount=int(100 * existing_order.get_cart_total()), currency='usd', description='Example charge', source=token, ) return redirect( reverse('shopping_cart:update_records', kwargs={'token': token})) else: result = transact({ 'amount': existing_order.get_cart_total(), 'payment_method_nonce': request.POST['payment_method_nonce'], 'options': { "submit_for_settlement": True } }) if result.is_success or result.transaction: return redirect( reverse('shopping_cart:update_records', kwargs={'token': result.transaction.id})) else: for x in result.errors.deep_errors: messages.info(request, x) return redirect(reverse('shopping_cart:checkout')) context = { 'order': existing_order, 'client_token': client_token, 'STRIPE_PUBLISHABLE_KEY': publishKey } return render(request, 'shopping_cart/checkout.html', context)