package com.ruoyi.payment.controller;
|
|
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.payment.ali.config.AliProperties;
|
import com.ruoyi.payment.ali.v2.AppletPayUtil;
|
import com.ruoyi.payment.ali.v2.model.PaymentReq;
|
import com.ruoyi.payment.ali.v2.model.PaymentResp;
|
import com.ruoyi.payment.ali.v2.model.QueryResp;
|
import com.ruoyi.payment.api.vo.AliPaymentReq;
|
import com.ruoyi.payment.api.vo.AliPaymentResp;
|
import com.ruoyi.payment.api.vo.AliQueryOrder;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.annotation.Resource;
|
|
/**
|
* @author zhibing.pu
|
* @Date 2024/8/24 14:29
|
*/
|
@RestController
|
@RequestMapping("/ali")
|
public class AliPayController {
|
|
@Resource
|
private AppletPayUtil appletPayUtil;
|
|
@Resource
|
private AliProperties aliProperties;
|
|
|
/**
|
* 调起支付宝小程序支付
|
* @param req
|
* @return
|
*/
|
@ResponseBody
|
@PostMapping("/payment")
|
public R<AliPaymentResp> payment(@RequestBody AliPaymentReq req){
|
PaymentReq pojo = new PaymentReq();
|
BeanUtils.copyProperties(req, pojo);
|
PaymentResp payment = appletPayUtil.payment(pojo);
|
if(null != payment){
|
AliPaymentResp aliPaymentResp = new AliPaymentResp();
|
aliPaymentResp.setTradeNo(payment.getTradeNo());
|
aliPaymentResp.setNotifyUrl(aliProperties.getNotifyUrl());
|
return R.ok(aliPaymentResp);
|
}
|
return R.ok();
|
}
|
|
/**
|
* 查询订单
|
* @param outTradeNo
|
* @return
|
*/
|
@ResponseBody
|
@PostMapping("/query")
|
public R<AliQueryOrder> query(@RequestParam("outTradeNo") String outTradeNo){
|
QueryResp query = appletPayUtil.query(outTradeNo);
|
if(null != query){
|
AliQueryOrder aliQueryOrder = new AliQueryOrder();
|
BeanUtils.copyProperties(query, aliQueryOrder);
|
return R.ok(aliQueryOrder);
|
}
|
return R.ok();
|
}
|
|
/**
|
* 关闭订单
|
* @param outTradeNo
|
*/
|
@ResponseBody
|
@PostMapping("/close")
|
public void close(@RequestParam("outTradeNo") String outTradeNo){
|
boolean close = appletPayUtil.close(outTradeNo);
|
if(!close){
|
throw new RuntimeException("关闭支付宝订单失败");
|
}
|
}
|
|
|
|
|
|
}
|