JAVA全系列 教程
3762个小节阅读:7091.2k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
xxxxxxxxxx
/**
* 统一收单并支付页面接口
* @param orderNo 订单编号
* @return
* @throws Exception
*/
BaseResult pcPay(String orderNo)throws Exception;
xxxxxxxxxx
/**
* 统一收单支付页面
* @param
* @return
* @throws Exception
*/
@Override
public BaseResult pcPay(String orderNo) throws Exception {
log.info("info ============= {}",orderNo);
// 1. 根据订单编号查询订单信息
OrderInfo orderInfo = iOrderInfoService.findByOrderNo(orderNo);
// 2. 判断订单是否存在
if (orderInfo == null){
return BaseResult.error(CodeEnum.ORDER_ERROR);
}
AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest();
// 3. 支付请求参数拼接
JSONObject bizContent = new JSONObject();
//商户订单号
bizContent.put("out_trade_no",orderNo);
//支付金额
bizContent.put("total_amount",orderInfo.getTotalFee());
//订单标题
bizContent.put("subject",orderInfo.getTitle());
//商户门店编号
bizContent.put("store_id","00100");
request.setBizContent(bizContent.toJSONString());
// 回调
request.setNotifyUrl(zfbPayConfig.getNotifyUrl().concat(ZfbNotifyType.NATIVE_NOTIFY.getType()));
AlipayTradePrecreateResponse response = null;
//支付宝二维码URL
String qrCode = "";
try {
response = alipayClient.execute(request);
if (!response.isSuccess()) {
throw new Exception("生成支付宝订单失败:" + response.getMsg() + response.getQrCode());
}
qrCode = response.getQrCode();
} catch (AlipayApiException e) {
throw new Exception(e.getMessage());
}
// 封装支付信息 返回
PayInfoVO payInfoVO = new PayInfoVO();
payInfoVO.setOrderNo(orderNo);
payInfoVO.setCodeUrl(qrCode);
log.info("payInfo: {}",payInfoVO);
return BaseResult.ok(payInfoVO);
}
xxxxxxxxxx
@PostMapping("/pcPay/{orderNo}")
public BaseResult pcPay(@PathVariable String orderNo) throws Exception {
log.info("发起支付请求");
return zfbPayService.pcPay(orderNo);
}