|  | @@ -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);
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  |  }
 |