Пример #1
0
def entry(request):
    """Browser is POSTed to here to initiate a payment"""
    agency_id = request.POST.get('agency_id')
    app_name = request.POST.get('app_name')
    if not agency_id:
        return HttpResponseBadRequest('Needs agency_id')
    elif not request.POST.get('agency_tracking_id'):
        return HttpResponseBadRequest('Needs agency_tracking_id')
    else:
        url = lookup_config("transaction_url", agency_id, app_name)
        if not url:
            return HttpResponseBadRequest(
                'agency_id + app_name cannot be found in settings')
        else:
            data = {
                'agency_id': agency_id,
                'agency_tracking_id': request.POST['agency_tracking_id']
            }
            agency_response = requests.post(url, data=data)
            agency_response = agency_response_to_dict(agency_response.text)
            if isinstance(agency_response, dict):
                agency_response = clean_response(agency_response)
            if isinstance(agency_response, str):
                return HttpResponseBadRequest(agency_response)
            else:
                return generate_form(request, agency_id, app_name,
                                     agency_response)
Пример #2
0
def entry(request):
    """Browser is POSTed to here to initiate a payment"""
    agency_id = request.POST.get('agency_id')
    app_name = request.POST.get('app_name')
    if not agency_id:
        return HttpResponseBadRequest('Needs agency_id')
    elif not request.POST.get('agency_tracking_id'):
        return HttpResponseBadRequest('Needs agency_tracking_id')
    else:
        url = lookup_config("transaction_url", agency_id, app_name)
        if not url:
            return HttpResponseBadRequest(
                'agency_id + app_name cannot be found in settings')
        else:
            data = {'agency_id': agency_id,
                    'agency_tracking_id': request.POST['agency_tracking_id']}
            agency_response = requests.post(url, data=data)
            agency_response = agency_response_to_dict(agency_response.text)
            if isinstance(agency_response, dict):
                agency_response = clean_response(agency_response)
            if isinstance(agency_response, str):
                return HttpResponseBadRequest(agency_response)
            else:
                return generate_form(request, agency_id, app_name,
                                     agency_response)
Пример #3
0
    def test_clean_response(self):
        """Verify that required fields must be present, and that no additional
        fields are accepted"""
        nodata = access_settings.clean_response({})
        self.assertTrue(isinstance(nodata, str))

        data = {'protocol_version': 'pv', 'response_message': 'rm',
                'action': 'a', 'form_id': 'fi', 'agency_tracking_id': 'ati',
                'invalid_field': 'if'}
        new_field = access_settings.clean_response(data)
        self.assertTrue(isinstance(new_field, str))
        self.assertNotEqual(nodata, new_field)  # different errors

        del(data['invalid_field'])
        data['payment_amount'] = '20.25'
        result = access_settings.clean_response(data)
        self.assertEqual(data, result)
        self.assertNotEqual(id(data), id(result))