tijian_tieying/web/dccdc/Common/Deepleo.Weixin.SDK/Pay/PayUtil.cs

102 lines
3.7 KiB
C#
Raw Normal View History

2025-02-20 12:14:39 +08:00
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
{
/// <summary>
/// 生成POST的xml数据字符串
/// </summary>
/// <param name="postdataDict">>参与生成的参数列表</param>
/// <param name="sign">签名</param>
/// <returns></returns>
public static string GeneralPostdata(IDictionary<string, string> postdataDict, string sign)
{
var sb2 = new StringBuilder();
sb2.Append("<xml>");
foreach (var sA in postdataDict.OrderBy(x => x.Key))//参数名ASCII码从小到大排序字典序
{
sb2.Append("<" + sA.Key + ">")
.Append(Util.Transfer(sA.Value))//参数值用XML转义即可CDATA标签用于说明数据不被XML解析器解析。
.Append("</" + sA.Key + ">");
}
sb2.Append("<sign>").Append(sign).Append("</sign>");
sb2.Append("</xml>");
return sb2.ToString();
}
/// <summary>
/// 将ErrorCode翻译成文字
/// </summary>
/// <param name="errorcode">err_code</param>
/// <returns></returns>
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;
}
}
}
}