tijian_tieying/web/dccdc/Common/Deepleo.Weixin.SDK/Pay/PayUtil.cs
2025-02-20 12:14:39 +08:00

102 lines
3.7 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
}
}
}
}