protected void Page_Load(object sender, EventArgs e) { //密钥 string key = ConfigurationManager.AppSettings["tenpay_key"].ToString(); //创建ResponseHandler实例 WapPayPageResponseHandler resHandler = new WapPayPageResponseHandler(Context); resHandler.setKey(key); //判断签名 if (resHandler.isTenpaySign()) { //支付结果 string pay_result = resHandler.getParameter("pay_result"); //商户订单号 string sp_billno = resHandler.getParameter("sp_billno"); //财付通订单号 string transaction_id = resHandler.getParameter("transaction_id"); //金额,以分为单位 string total_fee = resHandler.getParameter("total_fee"); if ("0".Equals(pay_result)) { dynamic orderInfo = CommonRequest.ApiGetOrderInfo(sp_billno); if (orderInfo != null && orderInfo.Orderinfo != null) { if (orderInfo.Orderinfo.PaymentStatus < 2) { var dic = CommonRequest.ApiUpdateOrderStausByWeiXin(sp_billno, "手机财付通支付"); if (dic != null && dic.ContainsKey("return") && dic["return"].ToString() == "202") { Response.Write("success"); } else { Response.Write("fail"); } } } } else { //当做不成功处理 Response.Write("支付失败"); } } else { Response.Write("认证签名失败"); } //获取debug信息,建议把debug信息写入日志,方便定位问题 //string debuginfo = resHandler.getDebugInfo(); //Response.Write("<br/>debuginfo:" + debuginfo + "<br/>"); }
protected void Page_Load(object sender, EventArgs e) { SortedDictionary <string, string> sPara = GetRequestPost(); if (sPara.Count > 0)//判断是否有带返回参数 { Notify aliNotify = new Notify(); bool verifyResult = aliNotify.Verify(sPara, Request.Form["notify_id"], Request.Form["sign"]); if (verifyResult)//验证成功 { ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //请在这里加上商户的业务逻辑程序代码 //——请根据您的业务逻辑来编写程序(以下代码仅作参考)—— //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表 try { //商户订单号 string out_trade_no = Request.Form["out_trade_no"]; //支付宝交易号 string trade_no = Request.Form["trade_no"]; //交易状态 string trade_status = Request.Form["trade_status"]; logger.Info("交易状态状态:" + trade_status); if (trade_status == "TRADE_SUCCESS") { dynamic orderInfo = CommonRequest.ApiGetOrderInfo(out_trade_no); if (orderInfo != null && orderInfo.Orderinfo != null) { if (orderInfo.Orderinfo.PaymentStatus < 2) { var dic = CommonRequest.ApiUpdateOrderStausByWeiXin(out_trade_no, "手机支付宝网页支付"); if (dic != null && dic.ContainsKey("return") && dic["return"].ToString() == "202") { Response.Write("success"); } else { Response.Write("fail"); } } } } } catch (Exception exc) { logger.Error("Notify_Url页面异常:" + exc); Response.Write("fail"); } } else//验证失败 { Response.Write("fail"); } } else { Response.Write("无通知参数"); } }
protected void Page_Load(object sender, EventArgs e) { try { logger.Info("------------------------------支付回调订单处理开始------------------------------------"); #region 获取参数 string OpenId = string.Empty; string AppId = string.Empty; string IsSubscribe = string.Empty; string TimeStamp = string.Empty; string NonceStr = string.Empty; string AppSignature = string.Empty; string SignMethod = string.Empty; string return_code = string.Empty; string out_trade_no = string.Empty; string total_fee = string.Empty; string postStr = PostInput(); if (!string.IsNullOrEmpty(postStr)) { XmlDocument doc = new XmlDocument(); doc.LoadXml(postStr); XmlElement rootElement = doc.DocumentElement; //微信信息请求xml OpenId = rootElement.SelectSingleNode("openid").InnerText; AppId = rootElement.SelectSingleNode("appid").InnerText; IsSubscribe = rootElement.SelectSingleNode("is_subscribe").InnerText; TimeStamp = rootElement.SelectSingleNode("time_end").InnerText; return_code = rootElement.SelectSingleNode("return_code").InnerText; out_trade_no = rootElement.SelectSingleNode("out_trade_no").InnerText; total_fee = rootElement.SelectSingleNode("total_fee").InnerText; } #endregion #region 订单相关业务逻辑处理 if (return_code == "SUCCESS") { out_trade_no = out_trade_no.Substring(0, out_trade_no.Length - 4); logger.Info("out_trade_no:" + out_trade_no); dynamic orderInfo = CommonRequest.ApiGetOrderInfo(out_trade_no); if (orderInfo != null && orderInfo.Orderinfo != null) { if (orderInfo.Orderinfo.PaymentStatus < 2 && Convert.ToDecimal((orderInfo.Orderinfo.ShouldPayPrice * 100)) == Convert.ToDecimal(total_fee)) { var dic = CommonRequest.ApiUpdateOrderStausByWeiXin(out_trade_no, "微信支付"); if (dic != null && dic.ContainsKey("return") && dic["return"].ToString() == "202") { Response.Write("success"); logger.Info("订单处理结果:success"); } else { Response.Write("fail"); logger.Info("订单处理结果:fail"); } } } } #endregion logger.Info("------------------------------支付回调订单处理结束------------------------------------"); } catch (Exception ex) { logger.Error("回调异常:" + ex); } }