From f56236dc9377118cab0be514942494ab8b6f7708 Mon Sep 17 00:00:00 2001 From: eric <465889110@qq.com> Date: Mon, 29 Sep 2025 21:53:06 +0800 Subject: [PATCH] zhima --- .../pay/controller/AliPaymentController.java | 7 ++ .../com/sczx/pay/dto/AlipayCreateRequest.java | 1 + .../com/sczx/pay/service/AlipayService.java | 3 + .../pay/service/impl/AlipayServiceImpl.java | 64 +++++++++++++++++++ 4 files changed, 75 insertions(+) diff --git a/src/main/java/com/sczx/pay/controller/AliPaymentController.java b/src/main/java/com/sczx/pay/controller/AliPaymentController.java index 1e0058e..7d566b8 100644 --- a/src/main/java/com/sczx/pay/controller/AliPaymentController.java +++ b/src/main/java/com/sczx/pay/controller/AliPaymentController.java @@ -27,6 +27,13 @@ public class AliPaymentController { return alipayService.unifiedOrder(request); } + @ApiOperation(value = "支付宝芝麻统一下单接口") + @PostMapping("/zhiMaOrder") + public AlipayCreateResponse aliPayZhiMaOrder(@RequestBody AlipayCreateRequest request) { + log.info("收到支付宝支付请求: {}", request); + return alipayService.zhiMaOrder(request); + } + /** * 查询订单接口 */ diff --git a/src/main/java/com/sczx/pay/dto/AlipayCreateRequest.java b/src/main/java/com/sczx/pay/dto/AlipayCreateRequest.java index a8a0fc0..3d2febd 100644 --- a/src/main/java/com/sczx/pay/dto/AlipayCreateRequest.java +++ b/src/main/java/com/sczx/pay/dto/AlipayCreateRequest.java @@ -11,4 +11,5 @@ public class AlipayCreateRequest { private String totalAmount; // 订单总金额 private String body; // 订单描述 private String openId; // 用户ID + private String authNo; } diff --git a/src/main/java/com/sczx/pay/service/AlipayService.java b/src/main/java/com/sczx/pay/service/AlipayService.java index 53bb8b9..d27bec1 100644 --- a/src/main/java/com/sczx/pay/service/AlipayService.java +++ b/src/main/java/com/sczx/pay/service/AlipayService.java @@ -10,6 +10,9 @@ public interface AlipayService { */ AlipayCreateResponse unifiedOrder(AlipayCreateRequest request); + + AlipayCreateResponse zhiMaOrder(AlipayCreateRequest request); + /** * 查询订单 */ diff --git a/src/main/java/com/sczx/pay/service/impl/AlipayServiceImpl.java b/src/main/java/com/sczx/pay/service/impl/AlipayServiceImpl.java index 1cfff07..1b8b7fd 100644 --- a/src/main/java/com/sczx/pay/service/impl/AlipayServiceImpl.java +++ b/src/main/java/com/sczx/pay/service/impl/AlipayServiceImpl.java @@ -139,6 +139,70 @@ public class AlipayServiceImpl implements AlipayService { return response; } + + @Override + public AlipayCreateResponse zhiMaOrder(AlipayCreateRequest alipayCreateRequest) { + AlipayCreateResponse response = new AlipayCreateResponse(); + try { + + // 构造请求参数以调用接口 + AlipayTradePayRequest request = new AlipayTradePayRequest(); + AlipayTradePayModel model = new AlipayTradePayModel(); + + // 设置商户订单号 + model.setOutTradeNo(alipayCreateRequest.getOutTradeNo()); + + // 设置订单总金额 + model.setTotalAmount(alipayCreateRequest.getTotalAmount()); + + // 设置订单标题 + model.setSubject(alipayCreateRequest.getSubject()); + + model.setAuthNo(alipayCreateRequest.getAuthNo()); + + // 设置预授权确认模式 + model.setAuthConfirmMode("NOT_COMPLETE"); + + // 设置产品码 + model.setProductCode("JSAPI_PAY"); + + + request.setBizModel(model); + //设置回调地址 + request.setNotifyUrl(notifyUrl); + + // 第三方代调用模式下请设置app_auth_token + // request.putOtherTextParam("app_auth_token", "<-- 请填写应用授权令牌 -->"); + log.info("支付宝免押支付下单请求:{}", JSONObject.toJSONString(request)); + AlipayTradePayResponse alipayResponse = alipaySdkUtil.execute(request); + log.info("支付宝免押支付下单返回:{}", JSONObject.toJSONString(alipayResponse)); + if (alipayResponse.isSuccess()) { + response.setSuccess(true); + response.setOrderStr(alipayResponse.getBody()); + response.setOutTradeNo(alipayCreateRequest.getOutTradeNo()); + response.setTradeNo(alipayResponse.getTradeNo()); + response.setCode("SUCCESS"); + response.setMessage("下单成功"); + //保存支付单 + recordPaymentInfo(alipayCreateRequest); + + } else { + response.setSuccess(false); + response.setCode("FAIL"); + response.setMessage("下单失败: " + alipayResponse.getMsg() + ":" + alipayResponse.getSubMsg()); + } + } catch (Exception e) { + log.error("支付宝下单异常,公司ID: {}, 订单号: {}", alipayCreateRequest.getCompanyId(), alipayCreateRequest.getOutTradeNo(), e); + response.setSuccess(false); + response.setCode("FAIL"); + response.setMessage("下单异常: " + e.getMessage()); + } + + return response; + } + + + @Override public AlipayQueryResponse orderQuery(String outTradeNo) { AlipayQueryResponse response = new AlipayQueryResponse();