商业管理系统对外接口

商业管理系统对外接口


加密工具类(c#)

<pre><code> public class SignUtils { //编码格式 private static string inputCharset = &amp;quot;utf-8&amp;quot;; /// &amp;lt;summary&amp;gt; /// 生成请求时的签名 /// &amp;lt;/summary&amp;gt; /// &amp;lt;param name=&amp;quot;sPara&amp;quot;&amp;gt;排序字典从a-z排序,字典中不能带sign和appsecret&amp;lt;/param&amp;gt; /// &amp;lt;param name=&amp;quot;key&amp;quot;&amp;gt;&amp;lt;/param&amp;gt; /// &amp;lt;returns&amp;gt;签名结果:32位md5小写&amp;lt;/returns&amp;gt; public static string BuildSign(SortedDictionary&amp;lt;string, string&amp;gt; sPara, string key = &amp;quot;&amp;quot;) { //把数组所有元素,按照“参数=参数值”的模式用“&amp;amp;”字符拼接成字符串 string prestr = CreateLinkString(sPara); //把最终的字符串签名,获得签名结果 var mysign = Sign(prestr, key); return mysign; } /// &amp;lt;summary&amp;gt; /// 数据的UrlEncode编码 /// 不能用.NET自带的HttpUtility.UrlEncode参数,会导致JAVA不兼容 /// &amp;lt;/summary&amp;gt; /// &amp;lt;param name=&amp;quot;str&amp;quot;&amp;gt;&amp;lt;/param&amp;gt; /// &amp;lt;param name=&amp;quot;encoding&amp;quot;&amp;gt;&amp;lt;/param&amp;gt; /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt; public static string UrlEncode(string str, Encoding encoding) { StringBuilder builder = new StringBuilder(); foreach (char c in str) { //转换空格到%20,兼容JAVA if (c == ' ') { builder.Append(&amp;quot;%20&amp;quot;); } //转换成大写,兼容JAVA else if (HttpUtility.UrlEncode(c.ToString()).Length &amp;gt; 1) { builder.Append(HttpUtility.UrlEncode(c.ToString(), encoding).ToUpper()); } else { builder.Append(c); } } return builder.ToString(); } /// &amp;lt;summary&amp;gt; /// 把数组所有元素,按照“参数=参数值”的模式用“&amp;amp;”字符拼接成字符串 /// &amp;lt;/summary&amp;gt; /// &amp;lt;param name=&amp;quot;dicArray&amp;quot;&amp;gt;需要拼接的数组&amp;lt;/param&amp;gt; /// &amp;lt;returns&amp;gt;拼接完成以后的字符串&amp;lt;/returns&amp;gt; private static string CreateLinkString(SortedDictionary&amp;lt;string, string&amp;gt; dicArray) { StringBuilder prestr = new StringBuilder(); foreach (KeyValuePair&amp;lt;string, string&amp;gt; temp in dicArray) { prestr.Append(temp.Key + &amp;quot;=&amp;quot; + temp.Value + &amp;quot;&amp;amp;&amp;quot;); } //去掉最後一個&amp;amp;字符 int nLen = prestr.Length; prestr.Remove(nLen - 1, 1); return prestr.ToString(); } /// &amp;lt;summary&amp;gt; /// 签名字符串 /// &amp;lt;/summary&amp;gt; /// &amp;lt;param name=&amp;quot;prestr&amp;quot;&amp;gt;需要签名的字符串&amp;lt;/param&amp;gt; /// &amp;lt;param name=&amp;quot;key&amp;quot;&amp;gt;密钥&amp;lt;/param&amp;gt; /// &amp;lt;returns&amp;gt;签名结果&amp;lt;/returns&amp;gt; private static string Sign(string prestr, string key) { StringBuilder sb = new StringBuilder(32); prestr = prestr + key; MD5 md5 = new MD5CryptoServiceProvider(); byte[] t = md5.ComputeHash(Encoding.GetEncoding(inputCharset).GetBytes(prestr)); for (int i = 0; i &amp;lt; t.Length; i++) { sb.Append(t[i].ToString(&amp;quot;x&amp;quot;).PadLeft(2, '0')); } return sb.ToString(); } }</code></pre>

页面列表

ITEM_HTML