def view_that_asks_for_money(self, request): ''' We need this to be a method and not a function, since we need to have a reference to the shop interface ''' order = self.shop.get_order(request) order_id = self.shop.get_order_unique_id(order) amount = self.shop.get_order_total(order) currency = 'chf' language = 'de_CH' pspid = settings.POSTFINANCE_PSP_ID postfinance_dict = { 'PSPID': settings.POSTFINANCE_PSP_ID , 'orderID': order_id, 'amount': amount, 'bgcolor': '#FFFFFF', # TODO: Make this selectable 'currency': currency, 'language': language, 'SHASign': compute_security_checksum(amount, currency, language, order_id, pspid), } # Create the instance. form = PostfinanceForm(initial=postfinance_dict) context = {'form': form} return render_to_response("payment.html", context)
def view_that_asks_for_money(self, request): ''' We need this to be a method and not a function, since we need to have a reference to the shop interface ''' order = self.shop.get_order(request) order_id = self.shop.get_order_unique_id(order) amount = self.shop.get_order_total(order) currency = settings.POSTFINANCE_CURRENCY.upper() language = self._convert_language(get_language()) amount = str(int(amount * 100)) postfinance_dict = { 'PSPID': settings.POSTFINANCE_PSP_ID , 'orderID': order_id, 'amount': amount, 'currency': currency, 'language': language, 'ACCEPTURL': absolute_url(request, reverse('postfinance_success')), 'CANCELURL': absolute_url(request, reverse('cart_delete')), } postfinance_dict.update(self.extra_data) postfinance_dict['SHASign'] = compute_security_checksum(**postfinance_dict) fields = {} for key in postfinance_dict: fields[key] = forms.CharField(widget=ValueHiddenInput()) form_class = DeclarativeFieldsMetaclass('PostfinanceForm', (forms.Form,), fields) form = form_class(initial=postfinance_dict) context = RequestContext(request, {'form': form}) return render_to_response("payment.html", context)
def view_that_asks_for_money(self, request): ''' We need this to be a method and not a function, since we need to have a reference to the shop interface ''' order = self.shop.get_order(request) order_id = self.shop.get_order_unique_id(order) amount = self.shop.get_order_total(order) currency = settings.POSTFINANCE_CURRENCY.upper() language = self._convert_language(get_language()) amount = str(int(amount * 100)) postfinance_dict = { 'PSPID': settings.POSTFINANCE_PSP_ID, 'orderID': order_id, 'amount': amount, 'currency': currency, 'language': language, 'ACCEPTURL': absolute_url(request, reverse('postfinance_success')), 'CANCELURL': absolute_url(request, reverse('cart_delete')), } postfinance_dict.update(self.extra_data) postfinance_dict['SHASign'] = compute_security_checksum( **postfinance_dict) fields = {} for key in postfinance_dict: fields[key] = forms.CharField(widget=ValueHiddenInput()) form_class = DeclarativeFieldsMetaclass('PostfinanceForm', (forms.Form, ), fields) form = form_class(initial=postfinance_dict) context = RequestContext(request, {'form': form}) return render_to_response("payment.html", context)
def get_form_initial(self, request, order, **fields): order_id = self.shop.get_order_unique_id(order) amount = self.shop.get_order_total(order) currency = settings.POSTFINANCE_CURRENCY.upper() language = self._convert_language(get_language()) amount = str(int(amount * 100)) initial = { 'PSPID': settings.POSTFINANCE_PSP_ID, 'orderID': order_id, 'amount': amount, 'currency': currency, 'language': language, 'ACCEPTURL': absolute_url(request, reverse('postfinance_success')), 'CANCELURL': absolute_url(request, reverse('cart_delete')), } initial.update(self.extra_data) initial.update(**fields) initial['SHASign'] = compute_security_checksum(**initial) return initial