/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <returns></returns> private bool Notify_PaySucceed(object sender, PaySucceedEventArgs e) { if (e.GatewayType == typeof(PaySharp.Wechatpay.WechatpayGateway)) { var alipayNotifyResponse = (NotifyResponse)e.NotifyResponse; //校验订单信息 string payNO = alipayNotifyResponse.TradeNo; //微信订单号 string orderNO = alipayNotifyResponse.OutTradeNo; //商户订单号 string orderTotal = alipayNotifyResponse.TotalAmount.ToString(); //订单金额 string payDate = alipayNotifyResponse.TimeEnd; //支付完成时间 CourseOrderBLL courseOrderBLL = new CourseOrderBLL(); CourseOrderEntity courseOrderEntity = courseOrderBLL.GetByOrderNO(orderNO); //校验订单是否存在 if (courseOrderEntity == null) { return(false); } if (courseOrderEntity.orderTotal * 100 == Convert.ToDecimal(orderTotal)) { //2.更新订单的相关状态 if (courseOrderEntity.state == 1) { courseOrderEntity.payNo = payNO; courseOrderEntity.payDate = DateTime.ParseExact(payDate, "yyyyMMddHHmmss", System.Globalization.CultureInfo.CurrentCulture); courseOrderEntity.state = 2; courseOrderEntity.modifyDate = DateTime.Now; courseOrderEntity.realTotal = Convert.ToDecimal(orderTotal) / 100; courseOrderEntity.payChannel = "微信支付-APP"; int rows = courseOrderBLL.ActionDal.ActionDBAccess.Updateable(courseOrderEntity).ExecuteCommand(); //3.返回一个xml格式的结果给微信服务器 if (rows > 0) { return(true); } else { return(false); } } else { return(false); } } } //处理成功返回true return(false); }
/// <summary> /// 处理结果通知 /// </summary> /// <param name="strXml"></param> /// <returns></returns> public static string CourseNotify(string strXml) { string strResult = string.Empty; //判断是否请求成功 if (PayHelper.GetXmlValue(strXml, "return_code") == "SUCCESS") { //判断是否支付成功 if (PayHelper.GetXmlValue(strXml, "result_code") == "SUCCESS") { //获得签名 string getSign = PayHelper.GetXmlValue(strXml, "sign"); //进行签名 string sign = PayHelper.GetSignInfo(PayHelper.GetFromXml(strXml)); if (sign == getSign) { //校验订单信息 string payNO = PayHelper.GetXmlValue(strXml, "transaction_id"); //微信订单号 string orderNO = PayHelper.GetXmlValue(strXml, "out_trade_no"); //商户订单号 string orderTotal = PayHelper.GetXmlValue(strXml, "total_fee"); //订单金额 string payDate = PayHelper.GetXmlValue(strXml, "time_end"); //支付完成时间 CourseOrderBLL courseOrderBLL = new CourseOrderBLL(); CourseOrderEntity courseOrderEntity = courseOrderBLL.GetByOrderNO(orderNO); //校验订单是否存在 if (courseOrderEntity.orderTotal * 100 == Convert.ToDecimal(orderTotal)) { //2.更新订单的相关状态 if (courseOrderEntity.state == 1) { courseOrderEntity.payNo = payNO; courseOrderEntity.payDate = DateTime.ParseExact(payDate, "yyyyMMddHHmmss", System.Globalization.CultureInfo.CurrentCulture); courseOrderEntity.state = 2; courseOrderEntity.modifyDate = DateTime.Now; courseOrderEntity.realTotal = Convert.ToDecimal(orderTotal) / 100; courseOrderEntity.payChannel = "微信支付-APP"; int rows = courseOrderBLL.ActionDal.ActionDBAccess.Updateable(courseOrderEntity).ExecuteCommand(); //3.返回一个xml格式的结果给微信服务器 if (rows > 0) { strResult = PayHelper.GetReturnXml("SUCCESS", "OK"); } else { strResult = PayHelper.GetReturnXml("FAIL", "订单状态更新失败"); } } else { strResult = PayHelper.GetReturnXml("SUCCESS", "OK"); } } else { strResult = PayHelper.GetReturnXml("FAIL", "支付结果中微信订单号数据库不存在!"); } } else { strResult = PayHelper.GetReturnXml("FAIL", "签名不一致!"); } } else { strResult = PayHelper.GetReturnXml("FAIL", "支付通知失败!"); } } else { strResult = PayHelper.GetReturnXml("FAIL", "支付通知失败!"); } return(strResult); }