小程序
小游戏
企业微信
微信支付
扫描小程序码分享
使用微信商户在控制台进行退款,回调到我的服务后按照官方文档步骤解密报错。 有相关经验的小伙伴可以把Python解密代码分享一下吗? 是V2版本的退款回调,xml格式的。
1 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
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密钥
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
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密钥