Example #1
0
def ipn(request):
    ipn = PayUIPNForm(request.POST)
    ipn_obj = None
    flag = None

    s = ''
    for k in [
            'SALEDATE', 'PAYMENTDATE', 'COMPLETE_DATE', 'REFNO', 'REFNOEXT',
            'ORDERNO', 'ORDERSTATUS', 'PAYMETHOD', 'PAYMETHOD_CODE'
    ]:
        if request.POST.has_key(k):
            s += '%s%s' % (len(request.POST.get(k)), request.POST.get(k))

    hash = hmac.new(MERCHANT_KEY, s).hexdigest()
    if request.POST.get('HASH', '') != hash:
        flag = 'Invalid hash %s. Hash string \n%s' % (request.POST.get(
            'HASH', ''), s)
    else:
        if ipn.is_valid():
            try:
                #When commit = False, object is returned without saving to DB.
                ipn_obj = ipn.save(commit=False)
            except Exception, e:
                flag = "Exception while processing. (%s)" % e
        else:
Example #2
0
def ipn(request):
    ipn_obj = None
    error = None

    form_data = request.POST
    ipn_form = PayUIPNForm(form_data)

    validation_hash = ''
    for field in PAYU_IPN_FIELDS:
        if field not in request.POST:
            continue

        field_value = request.POST.getlist(field)

        validation_hash += ''.join(['%s%s' % (len(value), value)
                                    for value in field_value])

    expected_hash = hmac.new(MERCHANT_KEY, validation_hash, hashlib.md5).hexdigest()
    request_hash = request.POST.get('HASH', '')

    if request_hash != expected_hash:
        error = 'Invalid hash %s. Hash string \n%s' % (request_hash, expected_hash)
    else:
        if ipn_form.is_valid():
            try:
                ipn_obj = ipn_form.save(commit=False)
            except Exception, exception:
                error = "Exception while processing. (%s)" % exception
        else:
Example #3
0
def ipn(request):
    ipn_obj = None
    error = None

    form_data = request.POST
    ipn_form = PayUIPNForm(form_data)

    validation_hash = ''
    for field in PAYU_IPN_FIELDS:
        if field not in request.POST:
            continue

        field_value = request.POST.getlist(field)

        validation_hash += ''.join(['%s%s' % (len(value), value)
                                    for value in field_value])

    expected_hash = hmac.new(PAYU_MERCHANT_KEY, validation_hash, hashlib.md5).hexdigest()
    request_hash = request.POST.get('HASH', '')

    if request_hash != expected_hash:
        error = 'Invalid hash %s. Hash string \n%s' % (request_hash, expected_hash)
    else:
        if ipn_form.is_valid():
            try:
                ipn_obj = ipn_form.save(commit=False)
            except Exception, exception:
                error = "Exception while processing. (%s)" % exception
        else:
Example #4
0
def ipn(request):
    ipn = PayUIPNForm(request.POST)
    ipn_obj = None
    flag = None

    s = ""
    for k in [
        "SALEDATE",
        "PAYMENTDATE",
        "COMPLETE_DATE",
        "REFNO",
        "REFNOEXT",
        "ORDERNO",
        "ORDERSTATUS",
        "PAYMETHOD",
        "PAYMETHOD_CODE",
    ]:
        if request.POST.has_key(k):
            s += "%s%s" % (len(request.POST.get(k)), request.POST.get(k))

    hash = hmac.new(MERCHANT_KEY, s).hexdigest()
    if request.POST.get("HASH", "") != hash:
        flag = "Invalid hash %s. Hash string \n%s" % (request.POST.get("HASH", ""), s)
    else:
        if ipn.is_valid():
            try:
                # When commit = False, object is returned without saving to DB.
                ipn_obj = ipn.save(commit=False)
            except Exception, e:
                flag = "Exception while processing. (%s)" % e
        else:
Example #5
0
def ipn(request):
    ipn = PayUIPNForm(request.POST)
    ipn_obj = None
    flag = None

    s = ''
    for k in ['SALEDATE', 'PAYMENTDATE', 'COMPLETE_DATE', 'REFNO', 'REFNOEXT', 'ORDERNO', 'ORDERSTATUS', 'PAYMETHOD', 'PAYMETHOD_CODE', ]:
        if request.POST.has_key(k):
            s += '%s%s' % (len(request.POST.get(k)), request.POST.get(k))

    hash = hmac.new(MERCHANT_KEY, s).hexdigest()
    if request.POST.get('HASH', '') != hash:
        flag = 'Invalid hash %s. Hash string \n%s' % (request.POST.get('HASH', ''), s)
    else:
        if ipn.is_valid():
            try:
                ipn_obj = ipn.save(commit=False) # When commit = False, object is returned without saving to DB.
            except Exception, e:
                flag = "Exception while processing. (%s)" % e
        else:
Example #6
0
def test_payu_model_form_list_processing(form_data, expected):
    form = PayUIPNForm(form_data)
    assert form['IPN_PID'].value() == expected
Example #7
0
def test_payu_model_form_date_conversion():
    form = PayUIPNForm({'IPN_DATE': '20161220170852'})
    assert form['IPN_DATE'].value() == datetime.strptime(
        '20161220170852', '%Y%m%d%H%M%S')
Example #8
0
def test_payu_model_form_validation(form_data, expected):
    assert expected(PayUIPNForm(form_data))