/// <summary> /// 扫码支付回调 /// </summary> /// <param name="model"></param> /// <returns></returns> public bool PayCallBackRetunResult(JuHeFuResponseModel model) { bool isOk = false; try { #region 验证参数 //验证参数有效性 if (model == null) { //参数有误,记录日志 LogHelper.WriteInfo(typeof(PayBll), string.Format("PayCallBackRetunResult支付回调操作失败信息:参数为null---{0}", model)); return(false); } if (string.IsNullOrWhiteSpace(model.merid) || string.IsNullOrWhiteSpace(model.merorderid) || string.IsNullOrWhiteSpace(model.tradeid) || string.IsNullOrWhiteSpace(model.success) || model.successmoney == 0 || string.IsNullOrWhiteSpace(model.userid) || string.IsNullOrWhiteSpace(model.sign) || string.IsNullOrWhiteSpace(model.md5)) { LogHelper.WriteInfo(typeof(PayBll), string.Format("PayCallBackRetunResult支付回调操作失败信息:参数不完整---{0}", JsonHelper.ToJson(model))); //参数有误,记录日志 return(false); } string parameterString = string.Format(@"version={0}&merid={1}&merorderid={2}&tradeid={3}&tradedate={4}&success={5}" + "&successmoney={6}&paychannel={7}&channeltradeid={8}" + "&cardid={9}&userid={10}&username={11}&extra={12}&attach={13}&internal={14}", model.version, model.merid, model.merorderid, model.tradeid, model.tradedate, model.success, model.successmoney, model.paychannel, model.channeltradeid, model.cardid, model.userid, model.username, model.extra, model.attach, model.Internal); //验证md5、签名信息 string md5 = MD5Hash.GetMD5String(parameterString); isOk = md5.Trim().ToUpper() == model.md5.Trim().ToUpper(); #endregion object objLock = new object(); lock (objLock) { if (!isOk) { LogHelper.WriteInfo(typeof(PayBll), string.Format("回调信息签名信息验证不通过!---------{0}", model)); return(false); } else { //订单回调 isOk = JHFOrderReturn(model); } } } catch (Exception ex) { LogHelper.WriteInfo(typeof(PayBll), string.Format("支付回调出错!-------实体:{0}错误信息:{1}", JsonHelper.ToJson(model), ex.Message)); return(false); } return(isOk); }
/// <summary> /// 获取支付二维码 /// </summary> /// <param name="orderModel"></param> /// <returns></returns> public CodeResult WXPayRequest(OrderInfoEntity orderModel) { CodeResult result = new CodeResult(); string parameterString = @"version=1.0&merid=26100794&mername=北京联友创新科技发展有限公司&merorderid=" + orderModel.OrderCode + "&paymoney=" + orderModel.TotalAmount + "&productname=" + "&productdesc=&userid=" + orderModel.UserId + "&username="******"&email=&phone=&extra=&custom="; string md5 = MD5Hash.GetMD5String(parameterString);//md5校验值 //发送支付请求 try { string url = ""; //微信支付 if (orderModel.PayType == 1) { url = ConfigHelper.GetAppConfigString("WXPayUrl") + @"?version=1.0&merid=26100794&mername=北京联友创新科技发展有限公司&merorderid=" + orderModel.OrderCode + "&paymoney=" + orderModel.TotalAmount + "&productname=" + "&productdesc=&userid=" + orderModel.UserId + "&username="******"&email=&phone=&extra=&custom=&md5=" + md5; } //支付宝支付 if (orderModel.PayType == 2) { url = ConfigHelper.GetAppConfigString("ZFBPayUrl") + @"?version=1.0&merid=26100794&mername=北京联友创新科技发展有限公司&merorderid=" + orderModel.OrderCode + "&paymoney=" + orderModel.TotalAmount + "&productname=" + "&productdesc=&userid=" + orderModel.UserId + "&username="******"&email=&phone=&extra=&custom=&md5=" + md5; } LogHelper.Info("url=" + url); result = HttpClientHelper.GetResponse <CodeResult>(url); } catch (Exception ex) { //LogHelper.WriteLog(typeof(WXPayBLL), "WXPayRequest", Engineer.ggg, orderModel, ex); LogHelper.WriteInfo(typeof(PayBll), ex.Message); } return(result); }