|
@@ -55,39 +55,14 @@ import java.util.concurrent.TimeUnit;
|
|
|
@RequestMapping("/payment")
|
|
|
@Api(value = "付款接口", tags = "付款接口")
|
|
|
public class PaymentController extends BaseController {
|
|
|
- private final static Logger log = LoggerFactory.getLogger(PaymentController.class);
|
|
|
- @Autowired
|
|
|
- private UserOrderPaymentService paymentService;
|
|
|
- @Autowired
|
|
|
- private UserOrderRefundService userOrderRefundService;
|
|
|
+
|
|
|
@Autowired
|
|
|
private SysUserFeignService sysUserFeignService;
|
|
|
@Autowired
|
|
|
- private UserOrderService userOrderService;
|
|
|
- @Autowired
|
|
|
private PaymentClient paymentClient;
|
|
|
@Autowired
|
|
|
- private RedissonClient redissonClient;
|
|
|
- @Autowired
|
|
|
private PaymentProperties paymentProperties;
|
|
|
|
|
|
- @ApiOperation(value = "查询付款单")
|
|
|
- @GetMapping("/queryPayment")
|
|
|
- public HttpResponseResult<Payment> queryPayment(String paymentNo) {
|
|
|
- UserOrderPayment userOrderPayment = paymentService.getOne(Wrappers.<UserOrderPayment>lambdaQuery()
|
|
|
- .eq(UserOrderPayment::getPaymentNo, paymentNo)
|
|
|
- );
|
|
|
- if (null == userOrderPayment) {
|
|
|
- return HttpResponseResult.succeed();
|
|
|
- }
|
|
|
- Payment param = new Payment(userOrderPayment.getOpenType(),
|
|
|
- PaymentClientEnum.valueOf(userOrderPayment.getPaymentClient()), userOrderPayment.getPayChannel());
|
|
|
- param.setId(userOrderPayment.getTransNo());
|
|
|
- param.setPaymentNo(userOrderPayment.getPaymentNo());
|
|
|
- BaseResult<Payment> paymentBaseResult = paymentClient.queryPayment(param);
|
|
|
- return HttpResponseResult.status(paymentBaseResult);
|
|
|
- }
|
|
|
-
|
|
|
@ApiOperation(value = "通过用户给的授权码获取三方支付授权信息")
|
|
|
@GetMapping("/getOpenId")
|
|
|
public HttpResponseResult<Map<String, Object>> getOpenId(OpenAuth openAuth) {
|
|
@@ -100,74 +75,4 @@ public class PaymentController extends BaseController {
|
|
|
BaseResult<Map<String, Object>> res = paymentClient.getOpenAuthMsg(openAuth);
|
|
|
return HttpResponseResult.status(res);
|
|
|
}
|
|
|
-
|
|
|
- /***
|
|
|
- * 支付回调
|
|
|
- * @author liweifan
|
|
|
- * @param: request
|
|
|
- * @updateTime 2022/3/11 18:35
|
|
|
- */
|
|
|
- @PostMapping("/callback/{openType}/{client}/{payChannel}/{payMethod}")
|
|
|
- public Object callback(
|
|
|
- @PathVariable("openType") String openType,
|
|
|
- @PathVariable("client") String client,
|
|
|
- @PathVariable("payChannel") String payChannel,
|
|
|
- @PathVariable("payMethod") String payMethod,
|
|
|
- HttpServletRequest request
|
|
|
- ) {
|
|
|
- log.info("支付回调:openType is {} ,paymentClient is {},payChannel is {},payMethod is {}", openType, client, payChannel, payMethod);
|
|
|
- BaseResult<PaymentCallBack> res = paymentClient.analysisNotice(
|
|
|
- OpenEnum.valueOf(openType), PaymentClientEnum.valueOf(client),
|
|
|
- PayChannelEnum.valueOf(payChannel), MethodNameEnum.valueOf(payMethod), request);
|
|
|
- if (res.getStatus()) {
|
|
|
- PaymentCallBack data = res.getData();
|
|
|
- //查询到订单
|
|
|
- UserOrderVo userOrderVo = userOrderService.getUserOrderByPaymentNoOrTransNo(data.getPaymentNo(), data.getId());
|
|
|
- if (null == userOrderVo) {
|
|
|
- return res.getData().getResMsg();
|
|
|
- }
|
|
|
- try {
|
|
|
- DistributedLock.of(redissonClient)
|
|
|
- .runIfLockCanGet(CacheNameEnum.LOCK_EXECUTE_ORDER.getRedisKey(userOrderVo.getUserId())
|
|
|
- , () -> {
|
|
|
- if (MethodNameEnum.executePayment.equals(data.getMethodName())) {
|
|
|
- //支付交易
|
|
|
- paymentService.executePaymentCallBack(data);
|
|
|
- } else if (MethodNameEnum.closePayment.equals(data.getMethodName())) {
|
|
|
- //关闭订单
|
|
|
- paymentService.closePaymentCallBack(data);
|
|
|
- } else if (MethodNameEnum.refundPayment.equals(data.getMethodName())) {
|
|
|
- //退款
|
|
|
- userOrderRefundService.refundPaymentCallBack(data);
|
|
|
- }
|
|
|
- }, 60L, TimeUnit.SECONDS);
|
|
|
- } catch (BizException e) {
|
|
|
- log.error("回调业务异常,msg is {}", e.getMessage());
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- }
|
|
|
- return res.getData().getResMsg();
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /***
|
|
|
- * 支付回调
|
|
|
- * @author liweifan
|
|
|
- * @param: request
|
|
|
- * @updateTime 2022/3/11 18:35
|
|
|
- */
|
|
|
- @PostMapping("/testCallback")
|
|
|
- public void testCallback(@RequestBody PaymentCallBack data) {
|
|
|
- if (MethodNameEnum.executePayment.equals(data.getMethodName())) {
|
|
|
- //支付交易
|
|
|
- paymentService.executePaymentCallBack(data);
|
|
|
- } else if (MethodNameEnum.closePayment.equals(data.getMethodName())) {
|
|
|
- //关闭订单
|
|
|
- paymentService.closePaymentCallBack(data);
|
|
|
- } else if (MethodNameEnum.refundPayment.equals(data.getMethodName())) {
|
|
|
- //退款
|
|
|
- userOrderRefundService.refundPaymentCallBack(data);
|
|
|
- }
|
|
|
- }
|
|
|
}
|