📄 md5pay.cs
字号:
+ "&transaction_id=" + Transaction_id + "&sp_billno=" + sp_billno + "&total_fee="
+ total_fee + "&fee_type=" + fee_type + "&return_url=" + return_url + "&attach=" + Attach;
if (spbill_create_ip != "")
{
sign_text += "&spbill_create_ip=" + spbill_create_ip;
}
sign_text += "&key=" + key;
return GetMD5(sign_text);
}
/// <summary>
/// 获取支付结果签名
/// </summary>
/// <returns>根据参数得到签名</returns>
private string GetPayResultSign()
{
string sign_text = "cmdno=" + cmdno + "&pay_result=" + pay_result + "&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 GetPayUrl(out string url)
{
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;
if (spbill_create_ip != "")
{
url += "&spbill_create_ip=" + spbill_create_ip;
}
url += "&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
{
pay_result = Int32.Parse(querystring["pay_result"].Trim());
payerrmsg = UrlDecode(querystring["pay_info"].Trim());
Date = querystring["date"];
transaction_id = querystring["transaction_id"];
sp_billno = 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)
{
pay_result = PAYSPERROR;
return true;
}
string strsign = querystring["sign"];
string sign = GetPayResultSign();
if (sign != strsign)
{
pay_result = 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, string 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=" + pay_result + "&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)
{
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
{
pay_result = Int32.Parse(querystring["pay_result"].Trim());
payerrmsg = UrlDecode(querystring["pay_info"].Trim());
Date = querystring["date"];
transaction_id = querystring["transaction_id"];
sp_billno = 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)
{
pay_result = PAYSPERROR;
return true;
}
string strsign = querystring["sign"];
string sign = GetQueryResultSign();
if (sign != strsign)
{
pay_result = PAYMD5ERROR;
}
return true;
}
catch (Exception err)
{
errmsg = "解析参数出错:" + err.Message;
return false;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -