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)
コード例 #2
0
 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)
コード例 #3
0
    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)
コード例 #4
0
    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