Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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);
        }