
上表中有个serial_is_paid字段:用于标记此交易是否已完成,即:在支付成功通知回调处理中,根据回传的out_trade_no更新支付状态;至于怎么查询订单支付状态,想必你应该也知道了...

好了,很久没写技术博客有些找不到感觉,写的可能比较粗略,有不清楚的朋友可以留意&交流!
到处都是坑的微信支付V3之 微信支付回调页面
据上次 到处都是坑的微信支付V3 后很多园友在被虐了千百遍后终于跳转到了亲切的微信支付界面,但输入密码支付后却不知道怎么处理了,接下来补上支付后的处理流程。
1. html中根据前台支付后反馈信息成功与否跳转到相关页面
if (res.err_msg == "get_brand_wcpay_request:ok") { // message: "微信支付成功!", window.location.replace("@Url.Content("~/WxPay/Success?ordercode=@(Model.order_no)"));}else if (res.err_msg == "get_brand_wcpay_request:cancel") { // message: "已取消微信支付!" }2. 支付开发教程(微信商户平台版) 中下载 微信支付接口文档及demo(公众账号).zip//支付回调页面public ActionResult notice_url(){string resultFromWx = getPostStr();//设置支付参数RequestHandler paySignReqHandler = new RequestHandler(null);WriteLog(" 微支付notice resultFromWx=" + resultFromWx);var res = XDocument.Parse(resultFromWx);//通信成功if (res.Element("xml").Element("return_code").Value == "SUCCESS"){if (res.Element("xml").Element("result_code").Value == "SUCCESS"){//交易成功paySignReqHandler.SetParameter("return_code", "SUCCESS");paySignReqHandler.SetParameter("return_msg", "OK");string ordecode = res.Element("xml").Element("out_trade_no").Value;BLL.orders Bll = new BLL.orders();try{if (Bll.Update(ordecode )){ WriteLog(" 微支付交易成功=" + ordecode);}else{ WriteLog(" 微支付交易失败=" + ordecode);}}catch (Exception ex){WriteLog(ex," 微支付交易异常=" + ordecode);}}else{paySignReqHandler.SetParameter("return_code", "FAIL");paySignReqHandler.SetParameter("return_msg", "交易失败");}}else{paySignReqHandler.SetParameter("return_code", "FAIL");paySignReqHandler.SetParameter("return_msg", "签名失败");}string data = paySignReqHandler.ParseXML();var result = TenPayV3.Unifiedorder(data);WriteLog(" 微支付notice result=" + result);return View();}注意://获得Post过来的数据public string getPostStr(){Int32 intLen = Convert.ToInt32(Request.InputStream.Length);byte[] b = new byte[intLen];Request.InputStream.Read(b, 0, intLen);return System.Text.Encoding.UTF8.GetString(b);} 现在前后台都打通了,主要还是要耐心调试,祝君好运~