def process_online(request, order_id, receipt_code): """ Shows online or process online payment """ if request.method == 'GET': form = None gateways = Gateway.get_gateways() order = get_object_or_404(Order, id=order_id, receipt_code=receipt_code) default_currency = get_default_currency(request) for gateway in gateways: if gateway.accept_credit_card: form = CreditCardForm(initial={'gateway': gateway}) return render( request, 'payments/process_online.html', { 'form': form, 'order': order, 'gateways': gateways, 'default_currency': default_currency }) raise Http404
def process_credit_card(request, order_id, receipt_code): """ Process credit card payment """ if request.method == 'POST': error = None form = CreditCardForm(request.POST) order = get_object_or_404(Order, id=order_id, receipt_code=receipt_code) if form.is_valid(): data = form.cleaned_data gateway = data['gateway'] if gateway.name == Gateway.PAYPAL: processor = PayPal(gateway) elif gateway.name == Gateway.STRIPE: processor = Stripe(gateway) else: raise ImproperlyConfigured('%s is not supported gateway for processing credit cards.' % gateway) try: processor.credit_card_payment(data['card'], order, request.user) return render(request, 'payments/credit_card_processed.html', {'order': order}) except DoorsaleError as e: error = e.message gateways = Gateway.get_gateways() default_currency = get_default_currency(request) return render(request, 'payments/process_online.html', {'form': form, 'order': order, 'gateways': gateways, 'default_currency': default_currency, 'error': error}) raise Http404
def online_payment(request, order_id, receipt_code): """ Shows online or process online payment """ order = get_object_or_404(Order, id=order_id, receipt_code=receipt_code) default_currency = get_default_currency(request) form = CreditCardForm() gateways = Gateway.get_gateways() return render(request, 'payments/online_payment.html', { 'form': form, 'order': order, 'gateways': gateways, 'default_currency': default_currency })
def credit_card_payment(request, order_id, receipt_code): """ Process credit card payment """ if request.method == 'POST': form = CreditCardForm(request.POST) order = get_object_or_404(Order, id=order_id, receipt_code=receipt_code) if form.is_valid(): # Doorsale by default accept credit card payment via PayPal paypal = PayPal() else: gateways = Gateway.get_gateways() default_currency = get_default_currency(request) return render(request, 'payments/online_payment.html', { 'form': form, 'order': order, 'gateways': gateways, 'default_currency': default_currency }) raise Http404
def process_online(request, order_id, receipt_code): """ Shows online or process online payment """ if request.method == 'GET': form = None gateways = Gateway.get_gateways() order = get_object_or_404(Order, id=order_id, receipt_code=receipt_code) default_currency = get_default_currency(request) for gateway in gateways: if gateway.accept_credit_card: form = CreditCardForm(initial={'gateway': gateway}) return render(request, 'payments/process_online.html', {'form': form, 'order': order, 'gateways': gateways, 'default_currency': default_currency}) raise Http404
def process_credit_card(request, order_id, receipt_code): """ Process credit card payment """ if request.method == 'POST': error = None form = CreditCardForm(request.POST) order = get_object_or_404(Order, id=order_id, receipt_code=receipt_code) if form.is_valid(): data = form.cleaned_data gateway = data['gateway'] if gateway.name == Gateway.PAYPAL: processor = PayPal(gateway) elif gateway.name == Gateway.STRIPE: processor = Stripe(gateway) else: raise ImproperlyConfigured( '%s is not supported gateway for processing credit cards.' % gateway) try: processor.credit_card_payment(data['card'], order, request.user) return render(request, 'payments/credit_card_processed.html', {'order': order}) except DoorsaleError as e: error = e.message gateways = Gateway.get_gateways() default_currency = get_default_currency(request) return render( request, 'payments/process_online.html', { 'form': form, 'order': order, 'gateways': gateways, 'default_currency': default_currency, 'error': error }) raise Http404