收藏
回答

Python如何解密 V2退款回调中的加密信息?

使用微信商户在控制台进行退款,回调到我的服务后按照官方文档步骤解密报错。 有相关经验的小伙伴可以把Python解密代码分享一下吗? 是V2版本的退款回调,xml格式的。

回答关注问题邀请回答
收藏

1 个回答

  • 逍遥随心
    逍遥随心
    2022-10-12
    import base64
    import json
    
    import xmltodict
    from Crypto.Cipher import AES
    key = get_md5('微信支付后台配置的API V2  key') # key进行Md5
    data = '解密字符串'
    bs_data = base64.b64decode(data.encode('utf-8'))  # 解密字符串进行base64解密
    aes = AES.new(key.encode('utf-8'), AES.MODE_ECB)  # 初始化加密器
    decrypted_text = aes.decrypt(bs_data).decode("utf8")  # 解密
    new_data = decrypted_text[:-ord(decrypted_text[-1])] # 去除多余补位
    data_dict = xmltodict.parse(new_data).get('root')   # xml转dict
    print(json.dumps(data_dict, indent=2, ensure_ascii=False)) 
    
    已经解决、需要的拿走。  记得设置API V2密钥
    
    2022-10-12
    有用
    回复
登录 后发表内容