?? payreceive.aspx.cs
字號:
//特別提示:本程序未在.NET環境進行測試,如有問題,請及時反饋給我們,謝謝!
//#############################################################
//# 賀喜支付平臺支付接口接收程序
//# v2.2.NET
//# http://www.168reg.cn
//#
//# 版權所有: 株洲市和諧網絡科技發展有限公司
//#
//# 主頁地址: http://www.168reg.cn
//# 技術支持: support@168reg.cn
//# 技 術 QQ: 359465724
//# 技術QQ群:8246422,7048987
//#
//#############################################################
//# ·鄭重聲明:
//# ·此程序不得隨意公開發布、銷售或進行其他非法轉讓。
//# ·如對此程序有任何疑問,請在管理區留言。
//#############################################################
//本文件功能介紹:
//1、根據自己的密鑰設置驗證返回的加密字符串是否正確。
//2、顯示定單成功頁面(可自行進行美化)。
//3、如果返回的提交有錯誤,即顯示錯誤信息。
//4、為了增強反饋定單的安全性,系統返回的加密字符串由“支付平臺定單號+商戶訂單號+自定義字段1+自定義字段2+成功支付金額+支付方式編號+商戶編號+定單支付狀態+商戶密鑰+支付模式”經過MD5加密后產生的。下面的程序已經完成了此加密字符串的驗證。
//5、為了防止黑客通過不正常的手段惡意反饋(刷新)成功頁面,請您在此程序中加入驗證定單號的功能,即每一個成功定單只能反饋一次此頁面。
//6、反饋的數據您都可以充分利用并添加到您自己的數據庫中。
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;
public partial class payreceive : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
/*初始化定義參數*/
//商戶編號,請把您的商戶編號替換掉這里的0值。
String reg_userid = ConfigurationManager.AppSettings["reg_userid"];
//商戶密鑰,請把您的商戶密鑰替換掉這里的空值。
String reg_key=ConfigurationManager.AppSettings["reg_key"];
//您可以充分利用以下反饋信息并添加到您自己的數據庫中。
String v_orderid = Request["v_orderid"];
String v_orderdate = Request["v_orderdate"];
String v_price = Request["v_price"];
String v_billno = Request["v_billno"];
String v_custom1 = Request["v_custom1"];
String v_custom2 = Request["v_custom2"];
String v_mobileno = Request["v_mobileno"];
String v_servicename = Request["v_servicename"];
String v_payvia = Request["v_payvia"];
String v_payviastr = Request["v_payviastr"];
String v_md5 = Request["v_md5"];
String v_pstatus = Request["v_pstatus"];
String v_pstring = Request["v_pstring"];
String v_paymode = Request["v_paymode"];
if(v_orderid != null && v_pstatus.Equals("1")){
//-----------重新計算md5的值,驗證返回的數字簽名是否正確------------------------------------------------
String md5text = v_orderid+v_billno+v_custom1+v_custom2+v_price+v_payvia+reg_userid+v_pstatus+reg_key+v_paymode; //為正確數值串拼湊順序
string digestString = FormsAuthentication.HashPasswordForStoringInConfigFile(md5text, "MD5"); //計算MD5的值
if(v_md5 != null && v_md5.Equals(digestString)){
Response.Write("支付成功");
/*
建議在此對定單號和支付金額進行驗證以防止用戶刷新返回頁面多次獲得服務。
下面請放入定單成功后實時開通服務的代碼或頁面代碼。
*/
}else{
Response.Write("簽名驗證錯誤!");
}
}else{
Response.Write("無效的參數!");
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -