📄 md5pay.cs
字号:
return GetMD5(sign_text);
}
/// <summary>
/// 获取支付页面URL
/// </summary>
/// <param name="url">如果函数返回真,是支付URL,如果函数返回假,是错误信息</param>
/// <returns>函数执行是否成功</returns>
public bool GetPayUrl(out string url)
{
if(sp_billno <= 0)
{
url = "请给出正确的订单号,最长10位的正整数.";
return false;
}
if(total_fee <= 0)
{
url = "请给出正确的订单金额,大于等于1的正整数";
return false;
}
try
{
string sign = GetPaySign();
url = paygateurl +"?cmdno=" + cmdno + "&date=" + date + "&bank_type=0&desc="+ desc +"&purchaser_id=&bargainor_id="
+ bargainor_id + "&transaction_id=" + transaction_id + "&sp_billno=" + sp_billno + "&total_fee=" + total_fee
+ "&fee_type=" + fee_type + "&return_url=" + return_url + "&attach=" + attach + "&sign=" + sign;
return true;
}
catch(Exception err)
{
url = "创建URL时出错,错误信息:" + err.Message;
return false;
}
}
/// <summary>
/// 从支付结果页面的URL请求参数中获取结果信息
/// </summary>
/// <param name="querystring">支付结果页面的URL请求参数</param>
/// <param name="errmsg">函数执行不成功的话,返回错误信息</param>
/// <returns>函数执行是否成功</returns>
public bool GetPayValueFromUrl(NameValueCollection querystring, out string errmsg)
{
//结果URL参数样例如下
/*
?cmdno=1&pay_result=0&pay_info=OK&date=20070423&bargainor_id=1201143001&transaction_id=1201143001200704230000000013
&sp_billno=13&total_fee=1&fee_type=1&attach=%D5%E2%CA%C7%D2%BB%B8%F6%B2%E2%CA%D4%BD%BB%D2%D7%B5%A5
&sign=ADD7475F2CAFA793A3FB35051869E301
*/
#region 进行参数校验
if(querystring == null || querystring.Count == 0)
{
errmsg = "参数为空";
return false;
}
if(querystring["cmdno"] == null || querystring["cmdno"].ToString().Trim() != cmdno.ToString())
{
errmsg = "没有cmdno参数或cmdno参数不正确";
return false;
}
if(querystring["pay_result"] == null)
{
errmsg = "没有pay_result参数";
return false;
}
if(querystring["date"] == null)
{
errmsg = "没有date参数";
return false;
}
if(querystring["pay_info"] == null)
{
errmsg = "没有pay_info参数";
return false;
}
if(querystring["bargainor_id"] == null)
{
errmsg = "没有bargainor_id参数";
return false;
}
if(querystring["transaction_id"] == null)
{
errmsg = "没有transaction_id参数";
return false;
}
if(querystring["sp_billno"] == null)
{
errmsg = "没有sp_billno参数";
return false;
}
if(querystring["total_fee"] == null)
{
errmsg = "没有total_fee参数";
return false;
}
if(querystring["fee_type"] == null)
{
errmsg = "没有fee_type参数";
return false;
}
if(querystring["attach"] == null)
{
errmsg = "没有attach参数";
return false;
}
if(querystring["sign"] == null)
{
errmsg = "没有sign参数";
return false;
}
#endregion
errmsg = "";
try
{
payresult = Int32.Parse(querystring["pay_result"].Trim());
payerrmsg = UrlDecode(querystring["pay_info"].Trim());
Date = querystring["date"];
transaction_id = querystring["transaction_id"];
sp_billno = long.Parse(querystring["sp_billno"]);
total_fee = long.Parse(querystring["total_fee"]);
fee_type = Int32.Parse(querystring["fee_type"]);
attach = querystring["attach"];
if(querystring["bargainor_id"] != bargainor_id)
{
payresult = PAYSPERROR;
return true;
}
string strsign = querystring["sign"];
string sign = GetPayResultSign();
if(sign != strsign)
{
payresult = PAYMD5ERROR;
}
return true;
}
catch(Exception err)
{
errmsg = "解析参数出错:" + err.Message;
return false;
}
}
/// <summary>
/// 查询请求设置参数函数
/// </summary>
/// <param name="adate">支付日期</param>
/// <param name="atransaction_id">交易单号</param>
/// <param name="asp_billno">商户订单号</param>
/// <param name="aattach">指令标识数据</param>
public void InitQueryParam(string adate, string atransaction_id, long asp_billno,string aattach)
{
Date = adate;
Sp_billno = asp_billno;
Transaction_id = atransaction_id;
Attach = aattach;
}
/// <summary>
/// 获取查询签名
/// </summary>
/// <returns>根据参数得到签名</returns>
private string GetQuerySign()
{
string sign_text = "cmdno=" + querycmdno + "&date=" + date + "&bargainor_id=" + bargainor_id + "&transaction_id="
+ transaction_id + "&sp_billno=" + sp_billno + "&return_url=" + queryreturn_url + "&attach=" + Attach + "&key=" + key;
return GetMD5(sign_text);
}
/// <summary>
/// 获取查询结果签名
/// </summary>
/// <returns>根据参数得到签名</returns>
private string GetQueryResultSign()
{
string sign_text = "cmdno=" + querycmdno + "&pay_result=" + payresult + "&date=" + date + "&transaction_id=" + transaction_id
+ "&sp_billno=" + sp_billno + "&total_fee=" + total_fee + "&fee_type=" + fee_type + "&attach=" + attach + "&key=" + key;
return GetMD5(sign_text);
}
/// <summary>
/// 获取查询页面URL
/// </summary>
/// <param name="url">如果函数返回真,是查询URL,如果函数返回假,是错误信息</param>
/// <returns>函数执行是否成功</returns>
public bool GetQueryUrl(out string url)
{
if(sp_billno <= 0)
{
url = "请给出正确的订单号,最长10位的正整数.";
return false;
}
try
{
string sign = GetQuerySign();
url = querygateurl +"?cmdno=" + querycmdno + "&date=" + date + "&bargainor_id=" + bargainor_id + "&transaction_id="
+ transaction_id + "&sp_billno=" + sp_billno + "&return_url=" + queryreturn_url + "&attach=" + attach + "&sign=" + sign;
return true;
}
catch(Exception err)
{
url = "创建URL时出错,错误信息:" + err.Message;
return false;
}
}
/// <summary>
/// 从查询结果页面的URL请求参数中获取结果信息
/// </summary>
/// <param name="querystring">查询结果页面的URL请求参数</param>
/// <param name="errmsg">函数执行不成功的话,返回错误信息</param>
/// <returns>函数执行是否成功</returns>
public bool GetQueryValueFromUrl(NameValueCollection querystring, out string errmsg)
{
//结果URL参数样例如下
/*
?cmdno=2&pay_result=0&pay_info=OK&date=20070423&bargainor_id=1201143001&transaction_id=1201143001200704230000000001
&sp_billno=1&total_fee=1&fee_type=1&attach=test11&sign=E80632F587263EF0AFA4A8EEC84A467C&PcacheTime=353851
*/
#region 进行参数校验
if(querystring == null || querystring.Count == 0)
{
errmsg = "参数为空";
return false;
}
if(querystring["cmdno"] == null || querystring["cmdno"].ToString().Trim() != querycmdno.ToString())
{
errmsg = "没有cmdno参数或cmdno参数不正确";
return false;
}
if(querystring["pay_result"] == null)
{
errmsg = "没有pay_result参数";
return false;
}
if(querystring["date"] == null)
{
errmsg = "没有date参数";
return false;
}
if(querystring["pay_info"] == null)
{
errmsg = "没有pay_info参数";
return false;
}
if(querystring["bargainor_id"] == null)
{
errmsg = "没有bargainor_id参数";
return false;
}
if(querystring["transaction_id"] == null)
{
errmsg = "没有transaction_id参数";
return false;
}
if(querystring["sp_billno"] == null)
{
errmsg = "没有sp_billno参数";
return false;
}
if(querystring["total_fee"] == null)
{
errmsg = "没有total_fee参数";
return false;
}
if(querystring["fee_type"] == null)
{
errmsg = "没有fee_type参数";
return false;
}
if(querystring["attach"] == null)
{
errmsg = "没有attach参数";
return false;
}
if(querystring["sign"] == null)
{
errmsg = "没有sign参数";
return false;
}
#endregion
errmsg = "";
try
{
payresult = Int32.Parse(querystring["pay_result"].Trim());
payerrmsg = UrlDecode(querystring["pay_info"].Trim());
Date = querystring["date"];
transaction_id = querystring["transaction_id"];
sp_billno = long.Parse(querystring["sp_billno"]);
total_fee = long.Parse(querystring["total_fee"]);
fee_type = Int32.Parse(querystring["fee_type"]);
attach = querystring["attach"];
if(querystring["bargainor_id"] != bargainor_id)
{
payresult = PAYSPERROR;
return true;
}
string strsign = querystring["sign"];
string sign = GetQueryResultSign();
if(sign != strsign)
{
payresult = PAYMD5ERROR;
}
return true;
}
catch(Exception err)
{
errmsg = "解析参数出错:" + err.Message;
return false;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -