GitBucket
4.23.0
Toggle navigation
Sign in
Files
Branches
1
Releases
Issues
Pull requests
Labels
Priorities
Milestones
Wiki
Forks
yn-bftl-byx
/
thirdparty
Browse code
加入日志
master
1 parent
eebee9f
commit
0d512a47b623d3bbf8f681426b53b5adea536a16
steven
authored
on 23 Sep
Patch
Showing
1 changed file
src/main/java/com/yn/bftl/thirdparty/modules/chinaums/controller/ChinaumsCallBackController.java
Ignore Space
Show notes
View
src/main/java/com/yn/bftl/thirdparty/modules/chinaums/controller/ChinaumsCallBackController.java
package com.yn.bftl.thirdparty.modules.chinaums.controller; import com.alibaba.fastjson.JSON; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.yn.bftl.thirdparty.modules.chinaums.dto.MchApplicationsNoticeDTO; import com.yn.bftl.thirdparty.modules.chinaums.dto.byx.ByxMchApplicationsNoticeDTO; import com.yn.bftl.thirdparty.modules.chinaums.service.ChinaumsCallBackService; import com.yn.bftl.thirdparty.modules.chinaums.vo.ChinaumsCallBackVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.data.redis.connection.util.ByteArrayWrapper; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.validation.Valid; /** * @Author:Vance * @Description:回调controller * @Date:2022/12/8 15:05 */ @Slf4j @Api(value = "ChinaumsCallBackController", tags = "公共端-银联回调") @RestController @RequestMapping("/chinaums/call_back") @Validated public class ChinaumsCallBackController { @Resource private ChinaumsCallBackService chinaumsCallBackService; @ApiOperation(value = "回调") @RequestMapping(value = "/byx/result", method = RequestMethod.POST) public ChinaumsCallBackVO callbackForByx(byte[] data) { log.info("comming"); ByxMchApplicationsNoticeDTO byxMchApplicationsNoticeDTO = byteToObject(data); validateParams(byxMchApplicationsNoticeDTO); log.info("回调通知,数据:" + JSON.toJSONString(byxMchApplicationsNoticeDTO)); return chinaumsCallBackService.callbackForByx(byxMchApplicationsNoticeDTO); } private static void validateParams(ByxMchApplicationsNoticeDTO byxMchApplicationsNoticeDTO) { if (byxMchApplicationsNoticeDTO == null) { log.error("byxMchApplicationsNoticeDTO is null."); throw new RuntimeException("参数不正确"); } if (StringUtils.isEmpty(byxMchApplicationsNoticeDTO.getMsgType())) { log.error("getMsgType is null."); throw new RuntimeException("参数不正确"); } if (byxMchApplicationsNoticeDTO.getMsgBody() == null) { log.error("getMsgBody is null."); throw new RuntimeException("参数不正确"); } } private static ByxMchApplicationsNoticeDTO byteToObject(byte[] data) { if (data == null) { log.error("回调参数异常"); throw new RuntimeException("回调参数异常"); } ObjectMapper mapper = new ObjectMapper(); ByteArrayWrapper wrapper = new ByteArrayWrapper(data); String json = ""; try { json = mapper.writeValueAsString(wrapper); } catch (JsonProcessingException e) { log.error(e.getMessage()); throw new RuntimeException(e); } ByxMchApplicationsNoticeDTO byxMchApplicationsNoticeDTO = JSON.parseObject(json, ByxMchApplicationsNoticeDTO.class); return byxMchApplicationsNoticeDTO; } @ApiOperation(value = "回调") @RequestMapping(value = "/result", method = RequestMethod.POST) public ChinaumsCallBackVO mchApplicationsResult(@Valid @RequestBody MchApplicationsNoticeDTO mchApplicationsNoticeDTO) { return chinaumsCallBackService.mchApplicationsResult(mchApplicationsNoticeDTO); } }
package com.yn.bftl.thirdparty.modules.chinaums.controller; import com.alibaba.fastjson.JSON; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.yn.bftl.thirdparty.modules.chinaums.dto.MchApplicationsNoticeDTO; import com.yn.bftl.thirdparty.modules.chinaums.dto.byx.ByxMchApplicationsNoticeDTO; import com.yn.bftl.thirdparty.modules.chinaums.service.ChinaumsCallBackService; import com.yn.bftl.thirdparty.modules.chinaums.vo.ChinaumsCallBackVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.data.redis.connection.util.ByteArrayWrapper; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.validation.Valid; /** * @Author:Vance * @Description:回调controller * @Date:2022/12/8 15:05 */ @Slf4j @Api(value = "ChinaumsCallBackController", tags = "公共端-银联回调") @RestController @RequestMapping("/chinaums/call_back") @Validated public class ChinaumsCallBackController { @Resource private ChinaumsCallBackService chinaumsCallBackService; @ApiOperation(value = "回调") @RequestMapping(value = "/byx/result", method = RequestMethod.POST) public ChinaumsCallBackVO callbackForByx(byte[] data) { ByxMchApplicationsNoticeDTO byxMchApplicationsNoticeDTO = byteToObject(data); validateParams(byxMchApplicationsNoticeDTO); log.info("回调通知,数据:" + JSON.toJSONString(byxMchApplicationsNoticeDTO)); return chinaumsCallBackService.callbackForByx(byxMchApplicationsNoticeDTO); } private static void validateParams(ByxMchApplicationsNoticeDTO byxMchApplicationsNoticeDTO) { if (byxMchApplicationsNoticeDTO == null) { throw new RuntimeException("参数不正确"); } if (StringUtils.isEmpty(byxMchApplicationsNoticeDTO.getMsgType())) { throw new RuntimeException("参数不正确"); } if (byxMchApplicationsNoticeDTO.getMsgBody() == null) { throw new RuntimeException("参数不正确"); } } private static ByxMchApplicationsNoticeDTO byteToObject(byte[] data) { if (data == null) { log.error("回调参数异常"); throw new RuntimeException("回调参数异常"); } ObjectMapper mapper = new ObjectMapper(); ByteArrayWrapper wrapper = new ByteArrayWrapper(data); String json = ""; try { json = mapper.writeValueAsString(wrapper); } catch (JsonProcessingException e) { throw new RuntimeException(e); } ByxMchApplicationsNoticeDTO byxMchApplicationsNoticeDTO = JSON.parseObject(json, ByxMchApplicationsNoticeDTO.class); return byxMchApplicationsNoticeDTO; } @ApiOperation(value = "回调") @RequestMapping(value = "/result", method = RequestMethod.POST) public ChinaumsCallBackVO mchApplicationsResult(@Valid @RequestBody MchApplicationsNoticeDTO mchApplicationsNoticeDTO) { return chinaumsCallBackService.mchApplicationsResult(mchApplicationsNoticeDTO); } }
Show line notes below