asp.net 参数按照字段名的ascii码从小到大排序

在对接第三方支付的时候,第三方会要求参数按照ASCII码从小到大排序。如下:

public static void requestPay()
{
Dictionary<string, string> dics = new Dictionary<string, string>();
dics.Add("body", body);
dics.Add("mch_create_ip", mch_create_ip);
dics.Add("mch_id", mch_id);
dics.Add("nonce_str", nonce_str);
dics.Add("notify_url", notify_url);
dics.Add("ordno", ordno);
dics.Add("out_trade_no", out_trade_no);
dics.Add("service", service);
dics.Add("total_fee", total_fee);

getParamSrc(dics);
}

public static String getParamSrc(Dictionary<string, string> paramsMap)
{
var vDic = (from objDic in paramsMap orderby objDic.Key ascending select objDic);
StringBuilder str = new StringBuilder();
foreach (KeyValuePair<string, string> kv in vDic)
{
string pkey = kv.Key;
string pvalue = kv.Value;
str.Append(pkey + "=" + pvalue + "&");
}

String result = str.ToString().Substring(0, str.ToString().Length - 1);
return result;
}

posted @ 2017-09-06 14:42  hboy2015  阅读(506)  评论(0)    收藏  举报