C#如何解密微信退款req_info结果通知,这个加密过的,网上找了没C#版本的,最好给源代码啊,不要思路。
先对商户key做md5,得到32位小写key* ( key设置路径:微信商户平台(pay.weixin.qq.com
)-->账户设置-->API安全-->密钥设置 ),再用用key*对加密串B做AES-256-ECB解密,注意返回的已经是base64解码的字符串,不需要再base解码,要不用AES256解码会报错
源代码看这里:
string base64 = "";
string key = "";
var md5 = MD5.Create();
var bs = md5.ComputeHash(Encoding.UTF8.GetBytes(key));
var decryptStr = new StringBuilder();
foreach (byte b in bs)
{
decryptStr.Append(b.ToString("x2"));
}
byte[] keyArray = UTF8Encoding.UTF8.GetBytes(decryptStr.ToString());
byte[] toEncryptArray = Convert.FromBase64String(base64);
RijndaelManaged rDel = new RijndaelManaged();
rDel.Key = keyArray;
rDel.Mode = CipherMode.ECB;
rDel.Padding = PaddingMode.PKCS7;
ICryptoTransform cTransform = rDel.CreateDecryptor();
byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
string rslt = UTF8Encoding.UTF8.GetString(resultArray);
http://www.w3dev.cn/article/20171011/cshart-decode-weixin-pay-req-info.aspx
啊这