protected void Page_Load(object sender, EventArgs e)
{
//string alipayNotifyURL = "https://www.alipay.com/cooperate/gateway.do?service=notify_verify";
string alipayNotifyURL = "http://notify.alipay.com/trade/notify_query.do?";
string partner = "2088101963067807"; //partner合作伙伴id(必须填写)
string key = "u3l0sr7a6r5ofcm6uhp5m8lp7yb3uyz5"; //partner 的对应交易安全校验码(必须填写)
string _input_charset = "utf-8"; string buy_id = Convert.ToString(Session["fjk"]);
// string buyname = AliPay.GetMD5(buy_id, "utf-8");
//string mm = FormsAuthentication.HashPasswordForStoringInConfigFile(buy_id,"MD5");
alipayNotifyURL = alipayNotifyURL + "&partner=" + partner + "¬ify_id=" + Request.Form["notify_id"];
//获取支付宝ATN返回结果,true是正确的订单信息,false 是无效的
string responseTxt = Get_Http(alipayNotifyURL, 120000);
int i;
NameValueCollection coll;
//Load Form variables into NameValueCollection variable.
coll = Request.Form; // Get names of all forms into a string array.
String[] requestarr = coll.AllKeys; //进行排序;
string[] Sortedstr = AliPay.BubbleSort(requestarr);
//构造待md5摘要字符串 ;
string prestr = "";
for (i = 0; i < Sortedstr.Length; i++)
{
if (Request.Form[Sortedstr[i]] != "" && Sortedstr[i] != "sign" && Sortedstr[i] != "sign_type")
{
if (i == Sortedstr.Length - 1)
{
prestr = prestr + Sortedstr[i] + "=" + Request.Form[Sortedstr[i]];
}
else
{
prestr = prestr + Sortedstr[i] + "=" + Request.Form[Sortedstr[i]] + "&";
}
}
}
prestr = prestr + key; string mysign = AliPay.GetMD5(prestr, _input_charset); string sign = Request.Form["sign"]; if (mysign == sign && responseTxt == "true") //验证支付发过来的消息,签名是否正确
{
if (Request.Form["trade_status"] == "WAIT_BUYER_PAY")//判断支付状态_等待买家付款(文档中有枚举表可以参考)
{
//更新自己数据库的订单语句,请自己填写一下
string strOrderNO = Request.Form["out_trade_no"];//订单号
string strPrice = Request.Form["total_fee"];//金额
//Response.Write("success"); //返回给支付宝消息,成功,请不要改写这个success
}
else if (Request.Form["trade_status"] == "TRADE_FINISHED")// 判断支付状态_TRADE_FINISHED交易成功(文档中有枚举表可以参考)
//如果trade_status的值是TRADE_SUCCESSED,是因为您用的测试帐号是返回的这个结果,改成您自己的支付宝帐号和PID以及KEY,则返回的值才是TRADE_FINISHED
{
//更新自己数据库的订单语句,请自己填写一下
string strOrderNO = Request.Form["out_trade_no"];//订单号
string strPrice = Request.Form["total_fee"];//金额
//根据订单号更新金额
//根据订单号查询金额
MoPay mo = new MoPay();
mo.CzxPrice = Convert.ToDecimal(strPrice);
mo.PayUser = Convert.ToString(Session["fjk"]);
mo.MoOrderId = strOrderNO;
mo.PayTime = DateTime.Now.ToString();
mo.State = 0;
int i=MoPayManager.addMoPay(mo);
if (i > 0) {
Response.Write("success");
}
}
}
else
{
Response.Write("fail"); //最好写TXT文件,以记录下是否异步返回记录。 //写文本,纪录支付宝返回消息,比对md5计算结果(如网站不支持写txt文件,可改成写数据库)
//string TOEXCELLR = "MD5结果:mysign=" + mysign + ",sign=" + sign + ",responseTxt=" + responseTxt;
//StreamWriter fs = new StreamWriter(Server.MapPath("Notify_DATA/" + DateTime.Now.ToString().Replace(":", "")) + ".txt", false, System.Text.Encoding.Default);
//fs.Write(TOEXCELLR);
//fs.Close();
} }
{
//string alipayNotifyURL = "https://www.alipay.com/cooperate/gateway.do?service=notify_verify";
string alipayNotifyURL = "http://notify.alipay.com/trade/notify_query.do?";
string partner = "2088101963067807"; //partner合作伙伴id(必须填写)
string key = "u3l0sr7a6r5ofcm6uhp5m8lp7yb3uyz5"; //partner 的对应交易安全校验码(必须填写)
string _input_charset = "utf-8"; string buy_id = Convert.ToString(Session["fjk"]);
// string buyname = AliPay.GetMD5(buy_id, "utf-8");
//string mm = FormsAuthentication.HashPasswordForStoringInConfigFile(buy_id,"MD5");
alipayNotifyURL = alipayNotifyURL + "&partner=" + partner + "¬ify_id=" + Request.Form["notify_id"];
//获取支付宝ATN返回结果,true是正确的订单信息,false 是无效的
string responseTxt = Get_Http(alipayNotifyURL, 120000);
int i;
NameValueCollection coll;
//Load Form variables into NameValueCollection variable.
coll = Request.Form; // Get names of all forms into a string array.
String[] requestarr = coll.AllKeys; //进行排序;
string[] Sortedstr = AliPay.BubbleSort(requestarr);
//构造待md5摘要字符串 ;
string prestr = "";
for (i = 0; i < Sortedstr.Length; i++)
{
if (Request.Form[Sortedstr[i]] != "" && Sortedstr[i] != "sign" && Sortedstr[i] != "sign_type")
{
if (i == Sortedstr.Length - 1)
{
prestr = prestr + Sortedstr[i] + "=" + Request.Form[Sortedstr[i]];
}
else
{
prestr = prestr + Sortedstr[i] + "=" + Request.Form[Sortedstr[i]] + "&";
}
}
}
prestr = prestr + key; string mysign = AliPay.GetMD5(prestr, _input_charset); string sign = Request.Form["sign"]; if (mysign == sign && responseTxt == "true") //验证支付发过来的消息,签名是否正确
{
if (Request.Form["trade_status"] == "WAIT_BUYER_PAY")//判断支付状态_等待买家付款(文档中有枚举表可以参考)
{
//更新自己数据库的订单语句,请自己填写一下
string strOrderNO = Request.Form["out_trade_no"];//订单号
string strPrice = Request.Form["total_fee"];//金额
//Response.Write("success"); //返回给支付宝消息,成功,请不要改写这个success
}
else if (Request.Form["trade_status"] == "TRADE_FINISHED")// 判断支付状态_TRADE_FINISHED交易成功(文档中有枚举表可以参考)
//如果trade_status的值是TRADE_SUCCESSED,是因为您用的测试帐号是返回的这个结果,改成您自己的支付宝帐号和PID以及KEY,则返回的值才是TRADE_FINISHED
{
//更新自己数据库的订单语句,请自己填写一下
string strOrderNO = Request.Form["out_trade_no"];//订单号
string strPrice = Request.Form["total_fee"];//金额
//根据订单号更新金额
//根据订单号查询金额
MoPay mo = new MoPay();
mo.CzxPrice = Convert.ToDecimal(strPrice);
mo.PayUser = Convert.ToString(Session["fjk"]);
mo.MoOrderId = strOrderNO;
mo.PayTime = DateTime.Now.ToString();
mo.State = 0;
int i=MoPayManager.addMoPay(mo);
if (i > 0) {
Response.Write("success");
}
}
}
else
{
Response.Write("fail"); //最好写TXT文件,以记录下是否异步返回记录。 //写文本,纪录支付宝返回消息,比对md5计算结果(如网站不支持写txt文件,可改成写数据库)
//string TOEXCELLR = "MD5结果:mysign=" + mysign + ",sign=" + sign + ",responseTxt=" + responseTxt;
//StreamWriter fs = new StreamWriter(Server.MapPath("Notify_DATA/" + DateTime.Now.ToString().Replace(":", "")) + ".txt", false, System.Text.Encoding.Default);
//fs.Write(TOEXCELLR);
//fs.Close();
} }
MoPay mo = new MoPay();
mo.CzxPrice = Convert.ToDecimal(strPrice);
mo.PayUser = Convert.ToString(Session["fjk"]);
mo.MoOrderId = strOrderNO;
mo.PayTime = DateTime.Now.ToString();
mo.State = 0;
int i=MoPayManager.addMoPay(mo);
if (i > 0) {
Response.Write("success");
}
Addmopay为什么执行不了啊
Alipay_Return.aspx.cs
这是支付宝提供的两个接口