This commit is contained in:
2025-09-29 21:53:06 +08:00
parent 553f6374f5
commit f56236dc93
4 changed files with 75 additions and 0 deletions

View File

@ -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);
}
/**
* 查询订单接口
*/

View File

@ -11,4 +11,5 @@ public class AlipayCreateRequest {
private String totalAmount; // 订单总金额
private String body; // 订单描述
private String openId; // 用户ID
private String authNo;
}

View File

@ -10,6 +10,9 @@ public interface AlipayService {
*/
AlipayCreateResponse unifiedOrder(AlipayCreateRequest request);
AlipayCreateResponse zhiMaOrder(AlipayCreateRequest request);
/**
* 查询订单
*/

View File

@ -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();