在Avanagate支付处理器上验证ipn

时间:2016-08-02 11:32:16

标签: python python-3.x avangate

我正在尝试从avangate验证ipn,为此我需要验证HASH。文档在这里: https://developer.avangate.com/Webhooks/Instant_Payment_Notification_(IPN)#Calculate_the_HASH_signature

从POST上的avangate,我收到一个包含HASH参数的QueryDict,我尝试创建一个新的md5,它需要与QueryDict中的md5相同。

我的代码:

signature = data['HASH']
result = ''.encode('UTF-8')
for key, value in data.items():
    if key == 'HASH':
        continue
    else:
        if not str(value).strip():
            result += "0".encode('UTF-8')
        else:
            result += str(len(value)).encode('UTF-8') + value.encode('UTF-8')
 result_hash = hmac.HMAC(secret_key.encode('UTF-8'), result).hexdigest()
 print(signature == result_hash)

我尝试了很多东西,但我无法让它发挥作用。在Avangate上,我选择了标签Notification details

上的所有选项

0 个答案:

没有答案