日期:2014-05-17  浏览次数:20443 次

生成validateString 求把PHP代码转成c#实现方式
[code=PHP][/code]<?Php function get_md5_string($url){ $arr = explode('?',$url); $params = $arr[1]; $arr = explode('&',$params); foreach($arr as $v){ $tmp = explode('=',$v); $request_arr[$tmp[0]] = $tmp[1]; } ksort($request_arr); $validateString_new =''; foreach($request_arr as $k=>$v){ $validateString_new .= mb_convert_encoding(trim($v),'gbk','gbk'); } $api_key ='123456'; //为商家后台所设置的key值 $validateString_new .= mb_convert_encoding($api_key,'gbk','gbk'); $validateString =md5($validateString_new); $url .='&validateString='.$validateString; return $url; } ?>

validateString参数是每个API请求中必须发送的参数,由请求中的其它参数以及后台设置的key值两部分,采用MD5加密生成,具体算法如下: 第一步,把请求中的参数(XML文件以及validateString本身除外),按照参数名称进行正向排序 第二步,把各个参数的值按照GBK编码后,按照排序顺序串联起来(不能有空格) 第三步,把后台设置的key值按照GBK编码后,串接到“第二步”得到的字符串尾部(不能有空格) 第四步,采用MD5算法对“第三步”得到的字符串进行加密,生成validateString的值

------解决方案--------------------
.NET本身有MD5类,你可以试试
你想把什么转成什么样的结果?