<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
<!-- <version>4.9.124.ALL</version>-->
<version>4.10.97.ALL</version>
<!-- 3.7.110.ALL-->
</dependency>
@PostMapping("/aliyun/getPayAliyunqrcode")
public ApiResult aliyunPay(@RequestBody PayDTO dto){
FrOrderPO frOrderPO = frOrderMapper.selectById(dto.getOrderId());
if(frOrderPO != null){
try {
log.info("开始调用支付宝生成支付二维码...");
AlipayClient alipayClient = new DefaultAlipayClient(PayConfigUtil.aliUrl, alipayAppKey
, aliAppPrivateKey, "json", "utf-8", alipayPublicKey, "RSA2");
AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest();
AlipayTradePrecreateModel model = new AlipayTradePrecreateModel();
model.setOutTradeNo("ZUX" + RandomUtils.randomFlowNo());
model.setTotalAmount(dto.getPrice());
model.setSubject(frOrderPO.getOrderName());
model.setStoreId("9527");
model.setQrCodeTimeoutExpress("10m");
request.setBizModel(model);
request.setNotifyUrl(aliNotifyUrl);
log.info("创建支付宝订单,请求参数:{} ", JSONObject.toJSONString(request));
AlipayTradePrecreateResponse response = alipayClient.execute(request);
return ApiResult.ok(response.getQrCode());
}catch (Exception e){
e.printStackTrace();
}
}
return ApiResult.error();
}
@PostMapping("/aliyun/aliyunnotify")
public String aliyunnotify(Map<String, String> param,HttpServletRequest request){
log.info("支付宝异步回调接口数据处理");
log.info(param.toString());
String tradeStatus = request.getParameter("trade_status");
log.info("交易状态:" + tradeStatus);
String outTradeNo = request.getParameter("out_trade_no");
log.info("商户订单号:" + outTradeNo);
String tradeNo = request.getParameter("trade_no");
log.info("支付宝订单号:" + tradeNo);
String totalAmount = request.getParameter("total_amount");
log.info("支付金额:" + totalAmount);
FrOrderPO frOrderPO = frOrderMapper.findByTradeNoIs(outTradeNo);
if(frOrderPO != null){
return "success";
}
return "fail";
}