///// <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); }
/// <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); }
/// <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); }