修改配置
This commit is contained in:
@ -0,0 +1,48 @@
|
||||
package com.sczx.pay.controller;
|
||||
|
||||
import com.sczx.pay.dto.*;
|
||||
import com.sczx.pay.service.AlipayService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@Api(value = "支付宝芝麻免押支付接口", tags = "支付宝芝麻免押支付接口")
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/api/authAlipay")
|
||||
public class AliAuthPaymentController {
|
||||
|
||||
@Autowired
|
||||
private AlipayService alipayService;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 免押冻结
|
||||
*/
|
||||
@ApiOperation(value = "免押冻结接口")
|
||||
@PostMapping("/fundFreeze")
|
||||
public AlipayFundFreezeResponse fundFreeze(@RequestBody AlipayFundFreezeRequest request) {
|
||||
log.info("收到支付宝免押冻结请求: {}", request);
|
||||
return alipayService.fundFreeze(request);
|
||||
}
|
||||
|
||||
/**
|
||||
* 取消冻结
|
||||
*/
|
||||
@ApiOperation(value = "取消冻结接口")
|
||||
@PostMapping("/cancelFundFreeze")
|
||||
public AlipayFundFreezeResponse cancelFundFreeze(@RequestBody AlipayFundFreezeRequest request) {
|
||||
log.info("收到支付宝取消免押冻结请求: {}", request);
|
||||
return alipayService.cancelFundFreeze(request);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "查询冻结接口")
|
||||
@PostMapping("/queryFundFreeze")
|
||||
public AlipayQueryFreezeResponse queryFundFreeze(@RequestBody AlipayQueryFreezeRequest alipayQueryFreezeRequest) {
|
||||
log.info("收到支付宝查询免押冻结请求: {}", alipayQueryFreezeRequest);
|
||||
return alipayService.queryFundFreeze(alipayQueryFreezeRequest);
|
||||
}
|
||||
}
|
||||
@ -66,24 +66,4 @@ public class AliPaymentController {
|
||||
log.info("收到支付宝退款查询请求: {}", request);
|
||||
return alipayService.refundQuery(request);
|
||||
}
|
||||
|
||||
/**
|
||||
* 免押冻结
|
||||
*/
|
||||
@ApiOperation(value = "免押冻结接口")
|
||||
@PostMapping("/fundFreeze")
|
||||
public AlipayFundFreezeResponse fundFreeze(@RequestBody AlipayFundFreezeRequest request) {
|
||||
log.info("收到支付宝免押冻结请求: {}", request);
|
||||
return alipayService.fundFreeze(request);
|
||||
}
|
||||
|
||||
/**
|
||||
* 取消冻结
|
||||
*/
|
||||
@ApiOperation(value = "取消冻结接口")
|
||||
@PostMapping("/cancelFundFreeze")
|
||||
public AlipayFundFreezeResponse cancelFundFreeze(@RequestBody AlipayFundFreezeRequest request) {
|
||||
log.info("收到支付宝取消免押冻结请求: {}", request);
|
||||
return alipayService.cancelFundFreeze(request);
|
||||
}
|
||||
}
|
||||
|
||||
12
src/main/java/com/sczx/pay/dto/AlipayQueryFreezeRequest.java
Normal file
12
src/main/java/com/sczx/pay/dto/AlipayQueryFreezeRequest.java
Normal file
@ -0,0 +1,12 @@
|
||||
package com.sczx.pay.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.Data;
|
||||
|
||||
@ApiModel("支付宝资金冻结请求参数")
|
||||
@Data
|
||||
public class AlipayQueryFreezeRequest {
|
||||
private String companyId;
|
||||
private String outOrderNo;
|
||||
private String operationType;
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
package com.sczx.pay.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.Data;
|
||||
|
||||
@ApiModel("支付宝资金冻结响应参数")
|
||||
@Data
|
||||
public class AlipayQueryFreezeResponse {
|
||||
private boolean success;
|
||||
private String message;
|
||||
private String outTradeNo; // 商户订单号
|
||||
private String authNo; // 支付串(用于前端调起支付)
|
||||
private String code; // 状态码
|
||||
}
|
||||
@ -40,6 +40,11 @@ public interface AlipayService {
|
||||
*/
|
||||
AlipayFundFreezeResponse cancelFundFreeze(AlipayFundFreezeRequest alipayFundFreezeRequest);
|
||||
|
||||
/**
|
||||
* 查询资金授权冻结接口
|
||||
*/
|
||||
AlipayQueryFreezeResponse queryFundFreeze(AlipayQueryFreezeRequest alipayQueryFreezeRequest);
|
||||
|
||||
/**
|
||||
* 验证通知签名
|
||||
*/
|
||||
|
||||
@ -17,6 +17,7 @@ import com.sczx.pay.service.AlipayService;
|
||||
import com.sczx.pay.utils.AlipaySdkUtil;
|
||||
import com.sczx.pay.utils.ThreadPoolUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -405,6 +406,55 @@ public class AlipayServiceImpl implements AlipayService {
|
||||
return response;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AlipayQueryFreezeResponse queryFundFreeze(AlipayQueryFreezeRequest alipayQueryFreezeRequest) {
|
||||
AlipayQueryFreezeResponse response = new AlipayQueryFreezeResponse();
|
||||
try {
|
||||
// 构造请求参数以调用接口
|
||||
AlipayFundAuthOperationDetailQueryRequest request = new AlipayFundAuthOperationDetailQueryRequest();
|
||||
AlipayFundAuthOperationDetailQueryModel model = new AlipayFundAuthOperationDetailQueryModel();
|
||||
//
|
||||
// // 设置支付宝授权资金订单号
|
||||
// model.setAuthNo("2014021601002000640012345678");
|
||||
|
||||
// 设置商户的授权资金订单号
|
||||
model.setOutOrderNo(alipayQueryFreezeRequest.getOutOrderNo());
|
||||
|
||||
// // 设置支付宝的授权资金操作流水号
|
||||
// model.setOperationId("20140216010020006400");
|
||||
|
||||
// 设置商户的授权资金操作流水号
|
||||
model.setOutRequestNo(alipayQueryFreezeRequest.getOutOrderNo());
|
||||
|
||||
// 设置需要查询的授权资金操作类型
|
||||
model.setOperationType(alipayQueryFreezeRequest.getOperationType());
|
||||
|
||||
request.setBizModel(model);
|
||||
log.info("查询免押冻结请求 : {}",request);
|
||||
AlipayFundAuthOperationDetailQueryResponse queryResponse = alipaySdkUtil.execute(request);
|
||||
log.info("查询免押冻结响应 : {}",queryResponse.getBody());
|
||||
|
||||
if (queryResponse.isSuccess() && StringUtils.equalsIgnoreCase(queryResponse.getOrderStatus(), "AUTHORIZED")) {
|
||||
response.setSuccess(true);
|
||||
response.setCode("SUCCESS");
|
||||
response.setAuthNo(queryResponse.getAuthNo());
|
||||
response.setOutTradeNo(queryResponse.getOutOrderNo());
|
||||
response.setMessage("查询免押冻结成功");
|
||||
|
||||
} else {
|
||||
response.setSuccess(false);
|
||||
response.setCode("FAIL");
|
||||
response.setMessage("查询免押冻结失败: " + queryResponse.getMsg() + ":" + queryResponse.getSubMsg());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("支付宝查询免押冻结异常,公司ID: {}, 订单号: {}", alipayQueryFreezeRequest.getCompanyId(), alipayQueryFreezeRequest.getOutOrderNo(), e);
|
||||
response.setSuccess(false);
|
||||
response.setCode("FAIL");
|
||||
response.setMessage("支付宝查询免押冻结失败异常: " + e.getMessage());
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean verifyNotifySign(Long companyId, Map<String, String> params) {
|
||||
try {
|
||||
|
||||
@ -3,7 +3,7 @@ spring:
|
||||
name: sczx-singlepay # 应用名称,对应 Nacos 配置的 dataId
|
||||
cloud:
|
||||
nacos:
|
||||
server-addr: 115.190.8.52:8848 # Nacos 服务器地址
|
||||
server-addr: ${NACOS_SERVER_ADDR} # Nacos 服务器地址
|
||||
config:
|
||||
group: DEFAULT_GROUP # 配置分组
|
||||
file-extension: yaml # 配置文件格式
|
||||
|
||||
Reference in New Issue
Block a user