示例#1
0
        /// <summary>
        /// 订单回写
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool OrderReturn(JuHeFuResponseModel model)
        {
            bool           isOk     = false;
            CustomerEntity userInfo = accountBll.GetUserById(ConvertHelper.ZParseInt32(model.userid, 0));

            #region 操作充值、回写订单

            //验证订单号、流水号
            OrderPaymentEntity entity = buyOrderManager.GetOrderPaymentByTradeCode(model.tradeid);
            if (entity == null)
            {
                LogHelper.WriteInfo(typeof(PayBll), string.Format("PayCallBackRetunResult支付回调操作失败信息:订单不存在-----{0}", JsonHelper.ToJson(model)));
                //该订单不存在,记录日志
                return(false);
            }
            if (entity.UserId.ToString().Trim() != model.userid.Trim() || entity.PayCode != model.channeltradeid)
            {
                LogHelper.WriteInfo(typeof(PayBll), string.Format("PayCallBackRetunResult支付回调操作失败信息:UserId、Tradeid跟订单信息不匹配----{0}", JsonHelper.ToJson(model)));
                //信息有误,记录日志
                return(false);
            }
            if (model.success == "1")
            {
                //调用充值
                if (entity.PayStatus == 1)
                {
                    if (userInfo.SourceType == 10)
                    {
示例#2
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);
        }