def handle_POST(self): if self.is_cheque_payment(): return self.submit() try: self.bankcard_form = BankcardForm(self.request.POST) self.billing_addr_form = BillingAddressForm(self.request.POST) if self.bankcard_form.is_valid() and self.billing_addr_form.is_valid(): return self.submit() except TransactionDeclinedException, e: self.context['payment_error'] = str(e)
class PaymentDetailsView(CorePaymentDetailsView): template_file = "checkout/payment_details.html" def handle_GET(self): if self.is_cheque_payment(): self.template_file = "checkout/payment_details_cheque.html" else: shipping_addr = self.get_shipping_address() card_values = {"name": shipping_addr.name()} self.context["bankcard_form"] = BankcardForm(initial=card_values) addr_values = {"first_name": shipping_addr.first_name, "last_name": shipping_addr.last_name} self.context["billing_address_form"] = BillingAddressForm(initial=addr_values) return TemplateResponse(self.request, self.template_file, self.context) def handle_POST(self): if self.is_cheque_payment(): return self.submit() try: self.bankcard_form = BankcardForm(self.request.POST) self.billing_addr_form = BillingAddressForm(self.request.POST) if self.bankcard_form.is_valid() and self.billing_addr_form.is_valid(): return self.submit() except TransactionDeclinedException, e: self.context["payment_error"] = str(e) self.context["bankcard_form"] = self.bankcard_form self.context["billing_address_form"] = self.billing_addr_form return TemplateResponse(self.request, self.template_file, self.context)
class PaymentDetailsView(CorePaymentDetailsView): template_file = 'checkout/payment_details.html' def handle_GET(self): if self.is_cheque_payment(): self.template_file = 'checkout/payment_details_cheque.html' else: shipping_addr = self.get_shipping_address() card_values = {'name': shipping_addr.name()} self.context['bankcard_form'] = BankcardForm(initial=card_values) addr_values = {'first_name': shipping_addr.first_name, 'last_name': shipping_addr.last_name,} self.context['billing_address_form'] = BillingAddressForm(initial=addr_values) return TemplateResponse(self.request, self.template_file, self.context) def handle_POST(self): if self.is_cheque_payment(): return self.submit() try: self.bankcard_form = BankcardForm(self.request.POST) self.billing_addr_form = BillingAddressForm(self.request.POST) if self.bankcard_form.is_valid() and self.billing_addr_form.is_valid(): return self.submit() except TransactionDeclinedException, e: self.context['payment_error'] = str(e) self.context['bankcard_form'] = self.bankcard_form self.context['billing_address_form'] = self.billing_addr_form return TemplateResponse(self.request, self.template_file, self.context)
def handle_payment_details_submission(self, request): # Check forms are valid bankcard_form = forms.BankcardForm(request.POST) billing_address_form = BillingAddressForm(request.POST) if bankcard_form.is_valid() and billing_address_form.is_valid(): # Forms are valid - render preview with forms hidden in the page return self.render_preview( request, bankcard=bankcard_form.bankcard, bankcard_form=bankcard_form, billing_address=billing_address_form.save(commit=False), billing_address_form=billing_address_form) # Form invalid - re-render return self.render_payment_details( request, bankcard_form=bankcard_form, billing_address_form=billing_address_form)
def handle_POST(self): if self.is_cheque_payment(): return self.submit() try: self.bankcard_form = BankcardForm(self.request.POST) self.billing_addr_form = BillingAddressForm(self.request.POST) if self.bankcard_form.is_valid() and self.billing_addr_form.is_valid(): return self.submit() except TransactionDeclinedException, e: self.context["payment_error"] = str(e)
def get_context_data(self, **kwargs): """ :param kwargs: :return: """ ctx = super(PaymentDetailsView, self).get_context_data(**kwargs) if 'cod_form' not in kwargs: ctx['cod_form'] = CODForm() ctx['billing_address_form'] = kwargs.get( 'billing_address_form', BillingAddressForm()) return ctx
def handle_GET(self): if self.is_cheque_payment(): self.template_file = 'checkout/payment_details_cheque.html' else: shipping_addr = self.get_shipping_address() card_values = {'name': shipping_addr.name()} self.context['bankcard_form'] = BankcardForm(initial=card_values) addr_values = {'first_name': shipping_addr.first_name, 'last_name': shipping_addr.last_name,} self.context['billing_address_form'] = BillingAddressForm(initial=addr_values) return TemplateResponse(self.request, self.template_file, self.context)
def handle_place_order_submission(self, request): # Check data from hidden forms again to ensure it hasn't been tampered # with. bankcard_form = forms.BankcardForm(request.POST) billing_address_form = BillingAddressForm(request.POST) if bankcard_form.is_valid() and billing_address_form.is_valid(): # Data is ok - submit order submission = self.build_submission( order_kwargs={ 'billing_address': billing_address_form.save(commit=False) }, payment_kwargs={ 'bankcard_form': bankcard_form, 'billing_address_form': billing_address_form, }) return self.submit(**submission) # If we get here, it means the hidden forms have been tampered with. messages.error(request, _("Invalid submission")) return http.HttpResponseRedirect( reverse('checkout:payment-details'))