using System; using System.Collections.Generic; using System.Linq; using System.Text; using Deepleo.Weixin.SDK.Helpers; namespace Deepleo.Weixin.SDK.Pay { public class PayUtil { /// /// 生成POST的xml数据字符串 /// /// >参与生成的参数列表 /// 签名 /// public static string GeneralPostdata(IDictionary postdataDict, string sign) { var sb2 = new StringBuilder(); sb2.Append(""); foreach (var sA in postdataDict.OrderBy(x => x.Key))//参数名ASCII码从小到大排序(字典序); { sb2.Append("<" + sA.Key + ">") .Append(Util.Transfer(sA.Value))//参数值用XML转义即可,CDATA标签用于说明数据不被XML解析器解析。 .Append(""); } sb2.Append("").Append(sign).Append(""); sb2.Append(""); return sb2.ToString(); } /// /// 将ErrorCode翻译成文字 /// /// err_code /// public static string ExplainErrorcode(string err_code) { switch (err_code) { case "NOAUTH": return "商户无此接口权限"; case "NOTENOUGH": return "余额不足"; case "ORDERPAID": return "商户订单已支付"; case "ORDERCLOSED": return "订单已关闭"; case "ORDERREVERSED": return "订单已撤销"; case "BANKERROR": return "银行系统异常"; case "USERPAYING": return "用户支付中,需要输入密码"; case "AUTH_CODE_INVALID": return "授权码检验错误"; case "BUYER_MISMATCH": return "支付帐号错误"; case "AUTHCODEEXPIRE": return "二维码已过期,请用户在微信上刷新后再试"; case "NOTSUPORTCARD": return "不支持卡类型"; case "SYSTEMERROR": return "系统错误"; case "APPID_NOT_EXIST": return "APPID不存在"; case "MCHID_NOT_EXIST": return "MCHID不存在"; case "APPID_MCHID_NOT_MATCH": return "appid和mch_id不匹配"; case "LACK_PARAMS": return "缺少参数"; case "OUT_TRADE_NO_USED": return "商户订单号重复"; case "SIGNERROR": return "签名错误"; case "XML_FORMAT_ERROR": return "XML格式错误"; case "REQUIRE_POST_METHOD": return "请使用post方法"; case "POST_DATA_EMPTY": return "post数据为空"; case "NOT_UTF8": return "编码格式错误"; case "ORDERNOTEXIST": return "查询系统中不存在此交易订单号"; case "INVALID_TRANSACTIONID": return "无效transaction_id"; case "PARAM_ERROR": return "参数错误"; default: return err_code; } } } }