protected override void OnPreRender(EventArgs e) { base.OnPreRender(e); if (!IsPostBack) { Dictionary <string, string> sPara = GetRequestGet(); if (sPara.Count > 0)//判断是否有带返回参数 { AlipayNotify aliNotify = new AlipayNotify(); bool verifyResult = aliNotify.VerifyReturn(sPara, Request.QueryString["sign"]); if (verifyResult)//验证成功 { ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //请在这里加上商户的业务逻辑程序代码 //——请根据您的业务逻辑来编写程序(以下代码仅作参考)—— //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表 AliWapPayCallBackInfo info = new AliWapPayCallBackInfo(); info.sign = Request.QueryString["sign"]; info.result = Request.QueryString["result"]; info.out_trade_no = Request.QueryString["out_trade_no"]; info.trade_no = Request.QueryString["trade_no"]; info.request_token = Request.QueryString["request_token"]; OnPaySucceed(info); } else//验证失败 { Response.Write("验证失败"); } } else { Response.Write("无返回参数"); } } }
protected void Page_Load(object sender, EventArgs e) { BaseService.WriteLog("页面跳转同步通知页面-----------------------AlipayWapTrade2/Call_Back.aspx"); AlipayWapTradeResponseBLL alipayServer = new AlipayWapTradeResponseBLL(new Utility.BasicUserInfo()); Dictionary <string, string> sPara = GetRequestGet(); if (sPara.Count > 0)//判断是否有带返回参数 { AlipayNotify aliNotify = new AlipayNotify(); bool verifyResult = aliNotify.VerifyReturn(sPara, Request.QueryString["sign"]); if (verifyResult)//验证成功 { ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //请在这里加上商户的业务逻辑程序代码 //——请根据您的业务逻辑来编写程序(以下代码仅作参考)—— //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表 //商户订单号 string out_trade_no = Request.QueryString["out_trade_no"]; //支付宝交易号 string trade_no = Request.QueryString["trade_no"]; //交易状态 string result = Request.QueryString["result"]; //判断是否在商户网站中已经做过了这次通知返回的处理 //如果没有做过处理,那么执行商户的业务程序 //如果有做过处理,那么不执行商户的业务程序 BaseService.WriteLog("result:" + result); if (!result.Equals("success")) { //交易失败 if (!string.IsNullOrEmpty(out_trade_no)) { alipayServer.UpdateAlipayWapTradeStatus(Request["out_trade_no"], "3"); PostResult(alipayServer, "fail"); //推送交易结果集 BaseService.WriteLog("推送交易结果集"); PostResult(alipayServer, "fail"); BaseService.WriteLog("交易失败,更新支付宝交易状态"); } Response.Write("fail"); return; } else //交易成功,请填写自己的业务代码 { if (!string.IsNullOrEmpty(out_trade_no)) { try { BaseService.WriteLog("out_trade_no:" + out_trade_no); BaseService.WriteLog("交易成功"); //更新交易状态 BaseService.WriteLog("更新交易状态"); alipayServer.UpdateAlipayWapTradeStatus(out_trade_no, "2"); //处理分润业务 BaseService.WriteLog("处理分润业务"); //RoyaltyBusiness(out_trade_no, trade_no); //推送交易结果集 BaseService.WriteLog("推送交易结果集"); PostResult(alipayServer, "success"); } catch (Exception ex) { BaseService.WriteLog("异常信息: " + ex.ToString()); } } else { BaseService.WriteLog("out_trade_no is null!!!!! "); } Response.Redirect(AlipayConfig.Merchant_url); } } else//验证失败 { if (Request["out_trade_no"] != null) { alipayServer.UpdateAlipayWapTradeStatus(Request["out_trade_no"], "4"); PostResult(alipayServer, "fail"); BaseService.WriteLog("验签出错,可能被别人篡改数据。"); } Response.Write("验证失败"); } } else { Response.Write("无返回参数"); } }