在项目开发工行支付接口时,总是报签名失败这个问题,我检查了N多遍源码都发现没一点问题 ,很郁闷就是找不到问题出在哪里.
后来在工行的技术人员的配合下终于发现源码是中文编码在下面这句代码编码错误了,解码出来中文编程了乱码.
tranData = Convert.ToBase64String(Encoding.UTF8.GetBytes(tranDataString));
经过更改 我换成了下面这种 发现KO了 贴出来来记着..怕以后开发忘了
Encoding GBK = Encoding.GetEncoding(936);
byte[] encodedChars = GBK.GetBytes(tranDataString);
tranData = Convert.ToBase64String(encodedChars);
很完美的把问题解决了 ...................