//支付宝支付异步回调 public ContentResult alinotifyurl() { SortedDictionary <string, string> sPara = GetRequestPost(); if (sPara.Count > 0)//判断是否有带返回参数 { string out_trade_no = Request.Form["out_trade_no"]; string notify_id = Request.Form["notify_id"]; string sign = Request.Form["sign"]; string trade_no = Request.Form["trade_no"]; string trade_status = Request.Form["trade_status"]; LogUtils.LogInfo($"ali异步回调参数out_trade_no={out_trade_no}¬ify_id={notify_id}&sign={sign}&trade_no={trade_no}&trade_status={trade_status}"); bool verifyResult = new Notify().Verify(sPara, notify_id, sign); if (verifyResult)//验证成功 { ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //请在这里加上商户的业务逻辑程序代码 //——请根据您的业务逻辑来编写程序(以下代码仅作参考)—— //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表 //商户订单号 //支付宝交易号 //交易状态 string[] str = DesEncoderAndDecoder.Decrypt(out_trade_no).Split('#'); if (trade_status == "TRADE_FINISHED" || trade_status == "TRADE_SUCCESS") { _payCallBackService.Callback(str[0].ToInt32(), trade_no); } else { //支付失败 _orderService.UpdateStatus(str[0].ToInt32(), Model.enums.OrderStatusEm.支付失败); return(Content(trade_status)); } //——请根据您的业务逻辑来编写程序(以上代码仅作参考)—— return(Content("success")); //请不要修改或删除 ///////////////////////////////////////////////////////////////////////////////////////////////////////////// } else//验证失败 { return(Content("fail")); //请不要修改或删除 } } else { return(Content("无通知参数")); } }
private static WebUserContext GetWebUser() { WebUserContext webContext = null; try { string key = SessionCookieUtility.GetCookie(Constant.WebCookieKey).ToString(); if (key.IsNotEmpty()) { webContext = DesEncoderAndDecoder.Decrypt(key).Deserialize <WebUserContext>(); } } catch (Exception ex) { LogUtils.LogError("UserContext.GetWebUser", ex); } return(webContext); }
//支付宝支付异步回调 public ActionResult alireturnurl() { int id = 0; string returnmsg = string.Empty; SortedDictionary <string, string> sPara = GetRequestGet(); if (sPara.Count > 0)//判断是否有带返回参数 { string out_trade_no = Request.Form["out_trade_no"]; string notify_id = Request.Form["notify_id"]; string sign = Request.Form["sign"]; string trade_no = Request.Form["trade_no"]; //支付宝交易号 string trade_status = Request.Form["trade_status"]; //交易状态 LogUtils.LogInfo($"ali同步回调参数out_trade_no={out_trade_no}¬ify_id={notify_id}&sign={sign}&trade_no={trade_no}&trade_status={trade_status}"); bool verifyResult = new Notify().Verify(sPara, notify_id, sign); if (verifyResult)//验证成功 { ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //请在这里加上商户的业务逻辑程序代码 //——请根据您的业务逻辑来编写程序(以下代码仅作参考)—— //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表 if (trade_status == "TRADE_FINISHED" || trade_status == "TRADE_SUCCESS") { //判断该笔订单是否在商户网站中已经做过处理 //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 //如果有做过处理,不执行商户的业务程序 //更新订单信息 string[] str = DesEncoderAndDecoder.Decrypt(out_trade_no).Split('#'); _payCallBackService.Callback(str[0].ToInt32(), trade_no); } //打印页面 else { returnmsg = $"trade_status{trade_status}"; } //——请根据您的业务逻辑来编写程序(以上代码仅作参考)—— ///////////////////////////////////////////////////////////////////////////////////////////////////////////// } } return(RedirectToAction("paysuccess", "playerpay", new { area = "player", orderId = id })); }