///// <summary>
        ///// 推送物流订单确认消息
        ///// </summary>
        ///// <param name="reqPushCfmMsgDto"></param>
        ///// <returns></returns>
        //[HttpPost]
        //[Route("OrderComfirm")]
        ////[Authorize]
        //public async Task<ActionResult<ResModel<ResMsgDto>>> LogiticOrderConfirm([FromBody]ReqPushCfmMsgDto reqPushCfmMsgDto)
        //{
        //    var res = new ResModel<ResMsgDto>();

        //    //未授权
        //    JObject token = CheckAuthorize(reqPushCfmMsgDto.token);
        //    if (token == null) //未授权 24小时过期,重新获取
        //    {
        //        res.success = "false";
        //        res.resultMessage = "无权限访问";
        //        return res;
        //    };
        //    if (!ModelState.IsValid)
        //    {
        //        return BadRequest(ModelState);
        //    }
        //    HttpContext httpContext = _httpContextAccessor.HttpContext;

        //    //检查新增物流消息的特殊标识
        //    if (reqPushCfmMsgDto.method == "getOrderPushMsg" && reqPushCfmMsgDto.type=="2")
        //    {
        //        try
        //        {
        //            res = await _iunion.LogiticOrderConfirm(reqPushCfmMsgDto, httpContext);
        //            return res;
        //        }
        //        catch (Exception ex)
        //        {
        //            return res.GetRes(Convert.ToBoolean((int)ErrorEnum.SystemException).ToString(), EnumHelper.GetDescription(ErrorEnum.SystemException));
        //        }
        //    }
        //    else
        //    {
        //        res.success = "false";
        //        res.resultMessage = "请求method错误";
        //    }
        //    return res;
        //}

        ///// <summary>
        ///// 推送物流订单追加费用消息
        ///// </summary>
        ///// <param name="reqPushAddExpMsgDto"></param>
        ///// <returns></returns>
        //[HttpPost]
        //[Route("AddExp")]
        ////[Authorize]
        //public async Task<ActionResult<ResModel<ResMsgDto>>> LogiticOrderAddExpense([FromBody]ReqPushAddExpMsgDto reqPushAddExpMsgDto)
        //{
        //    var res = new ResModel<ResMsgDto>();

        //    //未授权
        //    JObject token = CheckAuthorize(reqPushAddExpMsgDto.token);
        //    if (token == null) //未授权 24小时过期,重新获取
        //    {
        //        res.success = "false";
        //        res.resultMessage = "无权限访问";
        //        return res;
        //    };
        //    if (!ModelState.IsValid)
        //    {
        //        return BadRequest(ModelState);
        //    }
        //    HttpContext httpContext = _httpContextAccessor.HttpContext;

        //    //检查物流订单追加费用消息的特殊标识
        //    if (reqPushAddExpMsgDto.method == "getOrderPushMsg" && reqPushAddExpMsgDto.type == "3")
        //    {
        //        try
        //        {
        //            res = await _iunion.LogiticOrderAddExpense(reqPushAddExpMsgDto, httpContext);
        //            return res;
        //        }
        //        catch (Exception ex)
        //        {
        //            return res.GetRes(Convert.ToBoolean((int)ErrorEnum.SystemException).ToString(), EnumHelper.GetDescription(ErrorEnum.SystemException));
        //        }
        //    }
        //    else
        //    {
        //        res.success = "false";
        //        res.resultMessage = "请求method错误";
        //    }
        //    return res;
        //}

        ///// <summary>
        /////  推送妥投驳回消息
        ///// </summary>
        ///// <param name="reqPushDelivRejMsgDto">确认请求</param>
        ///// <returns></returns>
        //[HttpPost]
        //[Route("DeliverRej")]
        ////[Authorize]
        //public async Task<ActionResult<ResModel<ResMsgDto>>> LogiticOrderDelivRej(ReqPushDelivRejMsgDto reqPushDelivRejMsgDto)
        //{
        //    var res = new ResModel<ResMsgDto>();

        //    //未授权
        //    JObject token = CheckAuthorize(reqPushDelivRejMsgDto.token);
        //    if (token == null) //未授权 24小时过期,重新获取
        //    {
        //        res.success = "false";
        //        res.resultMessage = "无权限访问";
        //        return res;
        //    };
        //    if (!ModelState.IsValid)
        //    {
        //        return BadRequest(ModelState);
        //    }
        //    HttpContext httpContext = _httpContextAccessor.HttpContext;

        //    //检查物流订单追加费用消息的特殊标识
        //    if (reqPushDelivRejMsgDto.method == "getOrderPushMsg" && reqPushDelivRejMsgDto.type == "6")
        //    {
        //        try
        //        {
        //            res =await _iunion.LogiticOrderDelivRej(reqPushDelivRejMsgDto, httpContext);
        //            return res;
        //        }
        //        catch (Exception ex)
        //        {
        //            return res.GetRes(Convert.ToBoolean((int)ErrorEnum.SystemException).ToString(), EnumHelper.GetDescription(ErrorEnum.SystemException));
        //        }
        //    }
        //    else
        //    {
        //        res.success = "false";
        //        res.resultMessage = "请求method错误";
        //    }
        //    return res;
        //}

        ///// <summary>
        ///// 推送线路价格更新审批结果
        ///// </summary>
        ///// <param name="reqPushRoutPriceMsgDto">确认请求</param>
        ///// <returns></returns>
        //[HttpPost]
        //[Route("PriceUpdate")]
        ////[Authorize]
        //public async Task<ActionResult<ResModel<ResMsgDto>>> RoutPriceUpdate(ReqPushRoutPriceMsgDto reqPushRoutPriceMsgDto)
        //{
        //    var res = new ResModel<ResMsgDto>();

        //    //未授权
        //    JObject token = CheckAuthorize(reqPushRoutPriceMsgDto.token);
        //    if (token == null) //未授权 24小时过期,重新获取
        //    {
        //        res.success = "false";
        //        res.resultMessage = "无权限访问";
        //        return res;
        //    };
        //    if (!ModelState.IsValid)
        //    {
        //        return BadRequest(ModelState);
        //    }
        //    HttpContext httpContext = _httpContextAccessor.HttpContext;

        //    //检查物流订单追加费用消息的特殊标识
        //    if (reqPushRoutPriceMsgDto.method == "getOrderPushMsg" && reqPushRoutPriceMsgDto.type == "7")
        //    {
        //        try
        //        {
        //            res = await _iunion.RoutPriceUpdate(reqPushRoutPriceMsgDto, httpContext);
        //            return res;
        //        }
        //        catch (Exception ex)
        //        {
        //            return res.GetRes(Convert.ToBoolean((int)ErrorEnum.SystemException).ToString(), EnumHelper.GetDescription(ErrorEnum.SystemException));
        //        }
        //    }
        //    else
        //    {
        //        res.success = "false";
        //        res.resultMessage = "请求method错误";
        //    }
        //    return res;
        //}
        ///// <summary>
        ///// 推送追加费用确认消息
        ///// </summary>
        ///// <param name="reqPushAddExpCofmMsg">确认请求</param>
        ///// <returns></returns>
        //[HttpPost]
        //[Route("AddExpComfm")]
        ////[Authorize]
        //public async Task<ActionResult<ResModel<ResMsgDto>>> LogiticOrderAddExpComf(ReqPushAddExpCofmMsgDto reqPushAddExpCofmMsg)
        //{
        //    var res = new ResModel<ResMsgDto>();

        //    //未授权
        //    JObject token = CheckAuthorize(reqPushAddExpCofmMsg.token);
        //    if (token == null) //未授权 24小时过期,重新获取
        //    {
        //        res.success = "false";
        //        res.resultMessage = "无权限访问";
        //        return res;
        //    };
        //    if (!ModelState.IsValid)
        //    {
        //        return BadRequest(ModelState);
        //    }
        //    HttpContext httpContext = _httpContextAccessor.HttpContext;

        //    //检查物流订单追加费用消息的特殊标识
        //    if (reqPushAddExpCofmMsg.method == "getOrderPushMsg" && reqPushAddExpCofmMsg.type == "8")
        //    {
        //        try
        //        {
        //            res = await _iunion.LogiticOrderAddExpComf(reqPushAddExpCofmMsg, httpContext);
        //            return res;
        //        }
        //        catch (Exception ex)
        //        {
        //            return res.GetRes(Convert.ToBoolean((int)ErrorEnum.SystemException).ToString(), EnumHelper.GetDescription(ErrorEnum.SystemException));
        //        }
        //    }
        //    else
        //    {
        //        res.success = "false";
        //        res.resultMessage = "请求method错误";
        //    }
        //    return res;
        //}
        private string GenerateJSONWebToken(ReqTokenDto reqToken)
        {
            //var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["Jwt:corp_id"]));
            //var credentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256);

            var secret = _configuration["Jwt:client_secret"].ToString();

            //var claims = new[] {
            //new Claim(JwtRegisteredClaimNames.Jti, userInfo.user),
            //new Claim(JwtRegisteredClaimNames.Email, userInfo.EmailAddress),
            //new Claim("DateOfJoing", userInfo.DateOfJoing.ToString("yyyy-MM-dd")),
            // new Claim(JwtRegisteredClaimNames.Jti, await Guid.NewGuid().ToString())
            // };

            //var token = new JwtSecurityToken(_configuration["Jwt:client_id"],
            //    _configuration["Jwt:client_secret"],
            //    null,
            //    expires: DateTime.Now.AddHours(24),
            //    signingCredentials: credentials);

            var token = new JwtBuilder()
                        .WithAlgorithm(new HMACSHA256Algorithm())
                        .WithSecret(secret)
                        .Build();

            return(token);
        }
Example #2
0
        /// <summary>
        /// 记录调用获取Access token接口
        /// </summary>
        /// <param name="reqTokenDto"></param>
        /// <param name="httpContext"></param>
        public async Task <ResModel <ResTokenDto> > GetToken(ReqTokenDto reqTokenDto, HttpContext httpContext)
        {
            ResModel <ResTokenDto> res   = new ResModel <ResTokenDto>();
            ResTokenDto            token = new ResTokenDto();
            string strConn = _unDbConnection.GetDbConnStr();

            using (IDbConnection conn = DapperHelper.GetOpenConnection(strConn, DbProvider.SqlServer))
            {
                IDbTransaction transaction = conn.BeginTransaction();
                try
                {
                    //记录接口调用
                    string ipStr  = httpContext.Connection.RemoteIpAddress.ToString();
                    string sqlstr = @" insert into INTERFACE_CALL_LOG(FUNCTION_NAME,FUNCTION_PARAM,Ip,CALL_DATE)
                            select 'GetToken ','ReqTokenDto;HttpContext',@ip,getdate()";
                    await conn.ExecuteAsync(sqlstr, new { ip = ipStr }, transaction);

                    transaction.Commit();
                    conn.Close();
                    res.success = "true";
                    return(res);
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    res.success       = "false";
                    res.resultMessage = "推送消息失败:" + ex.Message;
                    return(res);
                }
            }
        }
        public async Task <IActionResult> GetToken([FromForm] ReqTokenDto reqToken)
        {
            ResModel <ResTokenDto> res = new ResModel <ResTokenDto>();

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            HttpContext context = _httpContextAccessor.HttpContext;

            IActionResult response = Unauthorized();
            //var user = AuthenticateUser(login);


            ResTokenDto token = new ResTokenDto();

            try
            {
                //验证客户端应用唯一编号,调用时采用MD5加密传输

                //var crpid = DesHelper.Decrypt(reqToken.corp_id);
                if (_configuration["Jwt:client_id"] != reqToken.client_id || _configuration["Jwt:client_secret"] != reqToken.client_secret ||
                    Md5Helper.Get32MD5One(_configuration["Jwt:corp_id"]).ToLower() != reqToken.corp_id)
                {
                    res.success       = "false";
                    res.resultMessage = "无权限访问!";
                }
                else
                {
                    if (reqToken.response_type == "token")
                    {
                        //记录调用获取Access token接口
                        res = await _iunion.GetToken(reqToken, context);

                        if (res.success == "true")
                        {
                            var tokenString = GenerateJSONWebToken(reqToken);
                            token = new ResTokenDto {
                                access_token = tokenString, time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), expire_in = DateTime.Now.AddHours(24).ToString("yyyy-MM-dd HH:mm:ss"), state = reqToken.state
                            };
                            res.success = "true";
                            res.result  = token;
                        }
                    }
                    else
                    {
                        res.success       = "false";
                        res.resultMessage = "无权限访问!";
                    }
                }

                response = Ok(res);
            }
            catch (Exception ex)
            {
                return(Ok(res.GetRes("false", ex.Message, null)));
            }
            return(response);
        }
Example #4
0
        /// <summary>
        /// 记录调用获取Access token接口
        /// </summary>
        /// <param name="reqTokenDto"></param>
        /// <param name="httpContext"></param>
        public async Task <ResModel <ResTokenDto> > GetToken(ReqTokenDto reqTokenDto, HttpContext httpContext)
        {
            var res = await _unionDal.GetToken(reqTokenDto, httpContext);

            return(res);
        }