WxPayController.java 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package com.llisoft.pay.controller;
  2. import java.util.HashMap;
  3. import java.util.Map;
  4. import javax.servlet.http.HttpServletRequest;
  5. import org.slf4j.Logger;
  6. import org.slf4j.LoggerFactory;
  7. import org.springframework.stereotype.Controller;
  8. import org.springframework.web.bind.annotation.GetMapping;
  9. import org.springframework.web.bind.annotation.PostMapping;
  10. import org.springframework.web.bind.annotation.RequestMapping;
  11. import org.springframework.web.bind.annotation.ResponseBody;
  12. import io.swagger.annotations.Api;
  13. import io.swagger.annotations.ApiOperation;
  14. @Api(tags="微信支付回调")
  15. @Controller
  16. @RequestMapping("/wxpay")
  17. public class WxPayController {
  18. private Logger logger = LoggerFactory.getLogger(WxPayController.class);
  19. @ApiOperation(value="同步回调")
  20. @GetMapping("/return")
  21. public String retur(HttpServletRequest request) {
  22. Map<String, String> resultMap = this.getParamMap(request);
  23. logger.info("收到微信同步回调: {}", resultMap);
  24. return null;
  25. }
  26. @ApiOperation(value="异步通知")
  27. @PostMapping(value="/notify")
  28. public @ResponseBody String notify(HttpServletRequest request) {
  29. Map<String, String> resultMap = this.getParamMap(request);
  30. logger.info("收到微信异步通知: {}", resultMap);
  31. return null;
  32. }
  33. /**
  34. * 获取参数Map<String, String>
  35. * @param request
  36. * @return
  37. */
  38. private Map<String, String> getParamMap(HttpServletRequest request){
  39. Map<String, String> returnMap = new HashMap<String, String>();
  40. Map<String, String[]> paramMap = request.getParameterMap();
  41. for (String key: paramMap.keySet()) {
  42. String[] values = paramMap.get(key);
  43. if (values!=null && values.length>0) {
  44. returnMap.put(key, values[0]);
  45. }
  46. }
  47. return returnMap;
  48. }
  49. }