Exemplo n.º 1
0
    def testFormValid(self):
        self.assertTrue(
            ResultURLForm({
                'OutSum': '100',
                'InvId': '58',
                'SignatureValue': '877D3BAF8381F70E56638C3BC82580C5',
                'shpparam1': 'None',
                'shpparam2': 'None',
            }).is_valid())

        self.assertFalse(
            ResultURLForm({
                'OutSum': '101',
                'InvId': '58',
                'SignatureValue': '877D3BAF8381F70E56638C3BC82580C5',
                'shpparam1': 'None',
                'shpparam2': 'None',
            }).is_valid())

        self.assertFalse(
            ResultURLForm({
                'OutSum': '100',
                'InvId': '58',
                'SignatureValue': '877D3BAF8381F70E56638C3BC82580C5',
                'shpparam1': 'Vasia',
                'shpparam2': 'None',
            }).is_valid())
Exemplo n.º 2
0
    def testFormValid(self):

        self.assertTrue(
            ResultURLForm({
                "OutSum": "100",
                "InvId": "58",
                "SignatureValue": "877D3BAF8381F70E56638C3BC82580C5",
                "shpparam1": "None",
                "shpparam2": "None",
            }).is_valid())

        self.assertFalse(
            ResultURLForm({
                "OutSum": "101",
                "InvId": "58",
                "SignatureValue": "877D3BAF8381F70E56638C3BC82580C5",
                "shpparam1": "None",
                "shpparam2": "None",
            }).is_valid())

        self.assertFalse(
            ResultURLForm({
                "OutSum": "100",
                "InvId": "58",
                "SignatureValue": "877D3BAF8381F70E56638C3BC82580C5",
                "shpparam1": "Vasia",
                "shpparam2": "None",
            }).is_valid())
Exemplo n.º 3
0
def receive_result(request, **credentials):
    """
    Обработчик для ResultURL
    """
    data = request.POST if USE_POST else request.GET
    form = ResultURLForm(data, **credentials)
    if form.is_valid():
        inv_id = form.cleaned_data['InvId']
        out_sum = form.cleaned_data['OutSum']

        # сохраняем данные об успешном уведомлении в базе, чтобы
        # можно было выполнить дополнительную проверку на странице успешного
        # заказа
        notification = SuccessNotification.objects.create(
            InvId=inv_id, OutSum=out_sum
        )

        # дополнительные действия с заказом (например, смену его статуса) можно
        # осуществить в обработчике сигнала robokassa.signals.result_received
        result_received.send(
            sender=notification, InvId=inv_id, OutSum=out_sum,
            extra=form.extra_params())

        return HttpResponse('OK%s' % inv_id)
    return HttpResponse('error: bad signature')
Exemplo n.º 4
0
 def testFormExtra(self):
     form = ResultURLForm({
             'OutSum': '100',
             'InvId': '58',
             'SignatureValue': 'B2111A06F6B7A1E090D38367BF7032D9',
             'shpparam1': 'Vasia',
             'shpparam2': 'None',
          })
     self.assertTrue(form.is_valid())
     self.assertEqual(form._get_signature_string(),
                      '100:58:%s:shpparam1=Vasia:shpparam2=None' % (PASSWORD2))
     self.assertEqual(form.extra_params(), {'param1': 'Vasia', 'param2': 'None'})
Exemplo n.º 5
0
    def testFormValid(self):
        self.assertTrue(
            ResultURLForm(
                {
                    'OutSum': '100',
                    'InvId': '58',
                    'SignatureValue': '3D7DE0A71282E50308ED401DC24BBD5B',
                    'shpparam1': 'None',
                    'shpparam2': 'None',
                },
                login=CUSTOM_LOGIN,
                password1=CUSTOM_PASS1,
                password2=CUSTOM_PASS2).is_valid())

        self.assertFalse(
            ResultURLForm(
                {
                    'OutSum': '101',
                    'InvId': '58',
                    'SignatureValue': '3D7DE0A71282E50308ED401DC24BBD5B',
                    'shpparam1': 'None',
                    'shpparam2': 'None',
                },
                login=CUSTOM_LOGIN,
                password1=CUSTOM_PASS1,
                password2=CUSTOM_PASS2).is_valid())

        self.assertFalse(
            ResultURLForm(
                {
                    'OutSum': '100',
                    'InvId': '58',
                    'SignatureValue': '3D7DE0A71282E50308ED401DC24BBD5B',
                    'shpparam1': 'Vasia',
                    'shpparam2': 'None',
                },
                login=CUSTOM_LOGIN,
                password1=CUSTOM_PASS1,
                password2=CUSTOM_PASS2).is_valid())
Exemplo n.º 6
0
 def testFormExtra(self):
     form = ResultURLForm({
         "OutSum": "100",
         "InvId": "58",
         "SignatureValue": "B2111A06F6B7A1E090D38367BF7032D9",
         "shpparam1": "Vasia",
         "shpparam2": "None",
     })
     self.assertTrue(form.is_valid())
     self.assertEqual(
         form._get_signature_string(),
         "100:58:%s:shpparam1=Vasia:shpparam2=None" % (PASSWORD2),
     )
     self.assertEqual(form.extra_params(), {
         "param1": "Vasia",
         "param2": "None"
     })
Exemplo n.º 7
0
 def testFormExtra(self):
     form = ResultURLForm(
         {
             'OutSum': '100',
             'InvId': '58',
             'SignatureValue': '8D63137C2AC89F7D5B7E6CD448DA64AF',
             'shpparam1': 'Vasia',
             'shpparam2': 'None',
         },
         login=CUSTOM_LOGIN,
         password1=CUSTOM_PASS1,
         password2=CUSTOM_PASS2)
     self.assertTrue(form.is_valid())
     self.assertEqual(
         form._get_signature_string(),
         '100:58:%s:shpparam1=Vasia:shpparam2=None' % CUSTOM_PASS2)
     self.assertEqual(form.extra_params(), {
         'param1': 'Vasia',
         'param2': 'None'
     })
Exemplo n.º 8
0
def receive_result(request):
    """ обработчик для ResultURL. """
    data = request.POST if USE_POST else request.GET
    logger.debug("receive result from robokassa: {}".format(data))
    form = ResultURLForm(data)
    if form.is_valid():
        logger.debug("result form from robokassa is valid")
        id, sum = form.cleaned_data['InvId'], form.cleaned_data['OutSum']

        # сохраняем данные об успешном уведомлении в базе, чтобы
        # можно было выполнить дополнительную проверку на странице успешного
        # заказа
        notification = SuccessNotification.objects.create(InvId=id, OutSum=sum)

        # дополнительные действия с заказом (например, смену его статуса) можно
        # осуществить в обработчике сигнала robokassa.signals.result_received
        result_received.send(sender=notification,
                             InvId=id,
                             OutSum=sum,
                             extra=form.extra_params())
        logger.debug("return ok to robokassa")
        return HttpResponse('OK%s' % id)
    logger.debug("return bad to robokassa. errors: {}".format(form.errors))
    return HttpResponse('error: bad signature')
Exemplo n.º 9
0
 def testEmptyFormValid(self):
     self.assertFalse(
         ResultURLForm(login=CUSTOM_LOGIN,
                       password1=CUSTOM_PASS1,
                       password2=CUSTOM_PASS2).is_valid())
Exemplo n.º 10
0
 def testEmptyFormValid(self):
     self.assertFalse(ResultURLForm().is_valid())