PayApi.java 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. package com.caimei.controller.pay;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.caimei.model.ResponseJson;
  4. import com.caimei.model.dto.PayVipDto;
  5. import com.caimei.utils.RequestUtil;
  6. import io.swagger.annotations.Api;
  7. import io.swagger.annotations.ApiImplicitParam;
  8. import io.swagger.annotations.ApiImplicitParams;
  9. import io.swagger.annotations.ApiOperation;
  10. import lombok.RequiredArgsConstructor;
  11. import org.springframework.beans.factory.annotation.Value;
  12. import org.springframework.web.bind.annotation.*;
  13. import java.util.HashMap;
  14. import java.util.Map;
  15. /**
  16. * 二手发布支付,升级超级会员支付
  17. *
  18. * @author : Charles
  19. * @date : 2021/9/27
  20. */
  21. @Api(tags="支付API")
  22. @RestController
  23. @RequiredArgsConstructor
  24. @RequestMapping("/pay")
  25. public class PayApi {
  26. @Value("${caimei.core}")
  27. private String core;
  28. /**
  29. * 获取线上支付全局开关状态
  30. */
  31. @ApiOperation("获取线上支付全局开关状态")
  32. @GetMapping("/online/switch")
  33. public ResponseJson<String> getPayOnLineSwitch() throws Exception {
  34. String url = core + "/order/pay/online/switch";
  35. String result = RequestUtil.sendGet(url);
  36. return getResponseJson(result);
  37. }
  38. @ApiOperation("银行通道码获取")
  39. @GetMapping("/bankcode")
  40. public ResponseJson<String> bankcode() throws Exception {
  41. String url = core + "/order/pay/bankcode";
  42. String result = RequestUtil.sendGet(url);
  43. return getResponseJson(result);
  44. }
  45. /**
  46. * 开通认证通会员-微信线上支付
  47. * @param param {
  48. * vipRecordId 会员购买记录Id
  49. * returnUrl 页面回调地址
  50. * code 微信小程序code
  51. * state 微信公众号state参数
  52. * }
  53. */
  54. @ApiOperation("开通认证通会员-微信线上支付")
  55. @PostMapping("/auth/vip/wechat")
  56. public ResponseJson<String> payAuthVipByWeChat(@RequestBody Map<String,Object> param) throws Exception {
  57. String url = core + "/order/pay/auth/vip/wechat";
  58. String result = RequestUtil.sendPost(url, param);
  59. return getResponseJson(result);
  60. }
  61. /**
  62. * 开通认证通会员-支付宝线上支付
  63. * @param param {
  64. * vipRecordId 会员购买记录Id
  65. * returnUrl 页面回调地址
  66. * }
  67. */
  68. @ApiOperation("开通认证通会员-支付宝线上支付")
  69. @PostMapping("/auth/vip/alipay")
  70. public ResponseJson<String> payAuthVipByAlipay(@RequestBody Map<String,Object> param) throws Exception {
  71. String url = core + "/order/pay/auth/vip/scan";
  72. String result = RequestUtil.sendPost(url, param);
  73. return getResponseJson(result);
  74. }
  75. /**
  76. * 开通认证通会员-银联线上支付
  77. * @param param {
  78. * vipRecordId 会员购买记录Id
  79. * returnUrl 页面回调地址
  80. * bankCode 银行编码(银联支付使用)
  81. * userType 用户类型(银联支付使用)企业:ENTERPRISE,个人:USER
  82. * }
  83. */
  84. @ApiOperation("开通认证通会员-银联线上支付")
  85. @PostMapping("/auth/vip/union")
  86. public ResponseJson<String> payAuthVipByUnionPay(@RequestBody Map<String,Object> param) throws Exception {
  87. String url = core + "/order/pay/auth/vip/union";
  88. String result = RequestUtil.sendPost(url, param);
  89. return getResponseJson(result);
  90. }
  91. /**
  92. * 开通认证通会员-支付回调
  93. */
  94. @ApiOperation("开通认证通会员-支付回调")
  95. @ApiImplicitParam(required = false, name = "data", value = "回调数据")
  96. @GetMapping("/auth/vip/callback")
  97. public String paymentAuthVipCallback(String data) throws Exception {
  98. String url = core + "/order/pay/auth/vip/callback?data=" + data;
  99. return RequestUtil.sendGet(url);
  100. }
  101. @ApiOperation("购买认证通会员-查询是否购买成功")
  102. @ApiImplicitParam(required = false, name = "vipRecordId", value = "会员购买记录id")
  103. @GetMapping("/auth/vip/check")
  104. public ResponseJson<String> authVipCheck(Integer vipRecordId) throws Exception {
  105. String url = core + "/order/pay/auth/vip/check?vipRecordId=" + vipRecordId;
  106. String result = RequestUtil.sendGet(url);
  107. return getResponseJson(result);
  108. }
  109. @ApiOperation("查询本次支付订单结果")
  110. @ApiImplicitParams({
  111. @ApiImplicitParam(required = false, name = "mbOrderId", value = "平台唯一流水号"),
  112. @ApiImplicitParam(required = false, name = "orderFlag", value = "订单标识:0非订单,1订单")
  113. })
  114. @GetMapping("/result/json")
  115. public ResponseJson<String> getPayOrderResult(String mbOrderId,Integer orderFlag) throws Exception {
  116. String url = core + "/order/pay/result/json?mbOrderId=" + mbOrderId + "&orderFlag=" + orderFlag;
  117. String result = RequestUtil.sendGet(url);
  118. return getResponseJson(result);
  119. }
  120. @ApiOperation("生成网银支付链接")
  121. @ApiImplicitParam(required = false, name = "param", value = "参数")
  122. @PostMapping("/link")
  123. public ResponseJson<String> getPayLink(@RequestBody Map<String,Object> param) throws Exception {
  124. String url = core + "/order/pay/link";
  125. String result = RequestUtil.sendPost(url, param);
  126. return getResponseJson(result);
  127. }
  128. @ApiOperation("重定向页面的支付数据")
  129. @ApiImplicitParam(required = false, name = "linkLogo", value = "参数")
  130. @GetMapping("/link/data")
  131. public ResponseJson<String> getPayLinkData(String linkLogo) throws Exception {
  132. String url = core + "/order/pay/link/data?linkLogo=" + linkLogo;
  133. String result = RequestUtil.sendGet(url);
  134. return getResponseJson(result);
  135. }
  136. private ResponseJson<String> getResponseJson(String parameters) {
  137. JSONObject object = JSONObject.parseObject(parameters);
  138. Integer code = object.getInteger("code");
  139. String msg = object.getString("msg");
  140. String data = object.getString("data");
  141. return ResponseJson.success(code, msg, data);
  142. }
  143. }