亲测全套支付可用(微信支付宝)复制粘贴即可跑
/**
* @Auther: tjr
* @Date: 2020/9/30 15:11
* @Description: 支付宝后台接口
*/
@Slf4j
@RestController
@RequestMapping(value = "/pay")
@Api(value="支付", tags="支付模块")
public class PayController {
@Autowired
AliPayService aliPayService;
@Autowired
WxPayService wxPayService;
@Autowired
CouOrderService couOrderService;
@Autowired
CouOrderMapper couOrderMapper;
@Autowired
CouUserMapper couUserMapper;
@ApiOperation(value = "统一微信公众号支付接口")
@PostMapping("/jspaPay")
public CommonResult jspaPay(@RequestBody Request<AliWxPayEntity> request, HttpServletRequest httpServletRequest) {
if (request == null) {
return CommonResult.validateFailed();
}
AliWxPayEntity entity = JSON.parseObject(JSON.toJSONString(request.getData()), AliWxPayEntity.class);
if (entity.getMoney() == null|| entity.getPayStatus() == null ) {
}
if (entity.getMoney() == null || entity.getPayStatus() == null) {
return CommonResult.validateFailed();
}
if (entity.getPayStatus() == 1) {
WxPayEntity wxPayEntity = new WxPayEntity();
String ip = HttpUtils.getRemoteHost(httpServletRequest);
wxPayEntity.setOrderNo(entity.getOdd());
wxPayEntity.setTotalMoney(entity.getMoney());
wxPayEntity.setIp(ip);
CouUser couUser = couUserMapper.selectById(entity.getUserId());
if (couUser==null){
return CommonResult.failed("找不到该用户");
}
if (StringUtil.isBlank(couUser.getOpenId())){
return CommonResult.failed("该用户暂未绑定微信,没有openid");
}
wxPayEntity.setOpenid(couUser.getOpenId());
//微信支付
ResultMap resultMap = wxPayService.JSAPIPay(wxPayEntity);
PayEntity payEntity = new PayEntity();
payEntity.setNum(entity.getOdd());
payEntity.setResultMap(resultMap);
return CommonResult.success(payEntity);
}
return CommonResult.failed("下单失败");
}
/**
* app支付接口-统一下单支付接口
*
* @return
* @throws AlipayApiException
*/
@ApiOperation(value = "统一app支付接口")
@PostMapping("/appPay")
public CommonResult appPay(@RequestBody Request<AliWxPayEntity> request, HttpServletRequest httpServletRequest) {
if (request == null) {
return CommonResult.validateFailed();
}
AliWxPayEntity entity = JSON.parseObject(JSON.toJSONString(request.getData()), AliWxPayEntity.class);
if (entity.getMoney() == null|| entity.getPayStatus() == null ) {
}
if (entity.getMoney() == null || entity.getPayStatus() == null) {
return CommonResult.validateFailed();
}
if (entity.getPayStatus() == 2) {
//发起支付,支付宝
PayOrderNo payOrderNo = new PayOrderNo();
payOrderNo.setTotalFee(String.valueOf((entity.getMoney().multiply(new BigDecimal(100)).intValue())));//分
//设置订单号
payOrderNo.setOrderNo(entity.getOdd());
//获取支付
AlipayTradeAppPayResponse response = aliPayService.tradeAppPay(payOrderNo);
if (response.isSuccess()) {
log.debug("调用成功" + response.getBody());
PayEntity payEntity = new PayEntity();
payEntity.setNum(entity.getOdd());
payEntity.setPay(response.getBody());
return CommonResult.success(payEntity);
} else {
log.error("调用失败" + response.getBody());
return CommonResult.failed(response.getBody());
}
}
if (entity.getPayStatus() == 1) {
WxPayEntity wxPayEntity = new WxPayEntity();
String ip = HttpUtils.getRemoteHost(httpServletRequest);
wxPayEntity.setOrderNo(entity.getOdd());
wxPayEntity.setTotalMoney(entity.getMoney());
wxPayEntity.setIp(ip);
//微信支付
ResultMap resultMap = wxPayService.unifiedOrder(wxPayEntity);
PayEntity payEntity = new PayEntity();
payEntity.setNum(entity.getOdd());
payEntity.setResultMap(resultMap);
return CommonResult.success(payEntity);
}
return CommonResult.failed("下单失败");
}
/**
* 支付网站扫码支付接口-统一下单支付接口方法
* @author tujr
* @createTime 2020/8/27 0027 10:09
**/
@ApiOperation(value="统一网站支付接口")
@PostMapping("/nativePay")
public CommonResult nativePay(@RequestBody Request<AliWxPayEntity> request, HttpServletRequest httpServletRequest, HttpServletResponse response) throws Exception {
if (request==null){
return CommonResult.validateFailed();
}
AliWxPayEntity entity = JSON.parseObject(JSON.toJSONString(request.getData()), AliWxPayEntity.class);
if (entity.getMoney()==null ||entity.getPayStatus()==null||entity.getPayStatus()<1||entity.getPayStatus()>2){
return CommonResult.validateFailed();
}
if (entity.getPayStatus()==2) {
AliPayEntity aliPayEntity = new AliPayEntity();
aliPayEntity.setMoney(entity.getMoney());
aliPayEntity.setOrderNo(entity.getOdd());
aliPayService.alipayPay(aliPayEntity,response);
}
if (entity.getPayStatus()==1){
WxPayEntity wxPayEntity = new WxPayEntity();
String ip = HttpUtils.getRemoteHost(httpServletRequest);
wxPayEntity.setOrderNo(entity.getOdd());
wxPayEntity.setTotalMoney(entity.getMoney());
wxPayEntity.setIp(ip);
//微信支付
wxPayService.nativePay(wxPayEntity,httpServletRequest,response);
}
return CommonResult.failed("下单失败");
}
@ApiOperation(value="轮询查状态接口")
@PostMapping("/selectPayStatus")
public CommonResult selectPayStatus(@RequestBody Request<AliPayStatusEntity> request) {
return aliPayService.selectPayStatus(request);
}
}