PayController.java 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package com.example.xiaoshiweixinback.controller;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.example.xiaoshiweixinback.business.common.Constants;
  4. import com.example.xiaoshiweixinback.business.common.Response;
  5. import com.example.xiaoshiweixinback.business.common.base.Records;
  6. import com.example.xiaoshiweixinback.business.utils.JsonUtils;
  7. import com.example.xiaoshiweixinback.business.utils.LoginUtils;
  8. import com.example.xiaoshiweixinback.entity.weixinPay.*;
  9. import com.example.xiaoshiweixinback.service.OrderService;
  10. import com.example.xiaoshiweixinback.service.VipService;
  11. import com.example.xiaoshiweixinback.service.weixinpay.AuthorizationService;
  12. import com.example.xiaoshiweixinback.service.weixinpay.WeixinPayService;
  13. import io.swagger.v3.oas.annotations.Operation;
  14. import jakarta.servlet.http.HttpServletRequest;
  15. import org.apache.commons.compress.utils.IOUtils;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.web.bind.annotation.*;
  18. import java.io.IOException;
  19. import java.nio.charset.StandardCharsets;
  20. @RequestMapping(Constants.XIAOSHI_WEIXINBACK + "/weixinpay")
  21. @RestController
  22. public class PayController {
  23. @Autowired
  24. private WeixinPayService weixinPayService;
  25. @Autowired
  26. private AuthorizationService authorizationService;
  27. @Autowired
  28. private OrderService orderService;
  29. @Operation(summary = "回调成功")
  30. @PostMapping("/success")
  31. private String success(@RequestBody WeiXinSuccessDTO weiXinSuccessDTO) throws IOException {
  32. try {
  33. WeiXinSuccessDTO.Resource resource = weiXinSuccessDTO.getResource();
  34. WeixinSuccessVO weixinSuccessVO = authorizationService.decryptMessage(resource.getAssociated_data(), resource.getNonce(), resource.getCiphertext());
  35. String tradeNo = weixinSuccessVO.getOut_trade_no();
  36. orderService.payBack(tradeNo);
  37. } catch (Exception e) {
  38. return "";
  39. }
  40. return "success";
  41. }
  42. @Operation(summary = "下单并获取订单信息")
  43. @PostMapping("/getPayTickets")
  44. private Response getPayTickets(@RequestBody WeiXinPayDTO weiXinPayDTO) {
  45. Records records = new Records();
  46. try {
  47. GetPayTicketVO getPayTicketVO = weixinPayService.getPayTickets(weiXinPayDTO);
  48. records.setData(getPayTicketVO);
  49. } catch (Exception e) {
  50. e.printStackTrace();
  51. }
  52. return Response.success(records);
  53. }
  54. @Operation(summary = "回调成功")
  55. @PostMapping("/testAuthorization")
  56. private String testAuthorization() {
  57. try {
  58. String associatedData = "transaction";
  59. String nonce = "yxul9eBG7PQp";
  60. String ciphertext = "UivUAmQ3r289Wv1q3Hbi7CmnQseCD6EHmuAE1301YMFU41IPkE/98NsTBb7pygTK7dc1Z4AS05sxlHcUMSeJB5KXn7H3l9vfvW538WhoxbbmBqafH9hTUT32A0dUz9LB4Kuw7yqyJl2af70VaZ7O/XDlYR0wAzNFLjsfvJMx0hEIGQQVnuBuCgkZitI5vwvBZN8WIuFdldGqjbRDcCUe7NHVAho2Ph+PRuSbocO7ijtbqoVS8NHfTKVl23bDrHoopuAH/7W6UGX6BD2QMBk4FTm3HmGO0TPmIxrgwIkDz91HyZ3mNmc3A4Fd4p7y7XqOfABGcaSzb0ZY0M2o/gmIDCXS9l3ZY0Rz8D4eo7ddWLeK5hdwWQmVIMqNh+bqt0OEA9KiYFWqfqU9G2DTZbd6r3MYPAAm7NTacu+/iI9mittq0DfsGn66MFGL8WFqMQCpUP9CqsCHQPxnCW80s7m1YJBL5SA8SwogvnIz5FK6bad+own1JCQmuwsmqNkdcnAr48u6OesmUa/OFdOSL+pb1UDaea5O4K/Zp/GhmUFC4JNpreBoZS4SYhs5OTfdgiKV4wEBjrz4";
  61. WeixinSuccessVO weixinSuccessVO = authorizationService.decryptMessage(associatedData, nonce, ciphertext);
  62. System.out.println(weixinSuccessVO);
  63. return "a";
  64. } catch (Exception e) {
  65. e.printStackTrace();
  66. }
  67. return "success";
  68. }
  69. }