支付宝商家券配置基础信息
支付宝商家券配置基础信息
全部流程均以沙箱环境测试
创建项目添加以下依赖
<!-- 代码简化 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!-- 工具包 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.11</version>
</dependency>
<!-- HuTool 工具包 -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.16</version>
</dependency>
<!-- 集合工具包 -->
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.2</version>
</dependency>
<!-- ************************************ swagger ************************************-->
<!-- 接口注解 -->
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.6.2</version>
<scope>compile</scope>
</dependency>
<!--引入Knife4j的官方start包,Swagger2基于Springfox2.10.5项目-->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<!--使用Swagger2-->
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
<!-- ************************************ 支付宝依赖 ************************************-->
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-easysdk</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>4.33.44.ALL</version>
</dependency>
添加配置类 获取支付宝客户端
public class DefaultAlipayConfig {
public final static AlipayClient ALIPAY_CLIENT = newInstance();
/**
* 支付宝私钥
*/
private static final String PRIVATE_KEY = "";
/**
* 支付宝公钥
*/
private static final String ALIPAY_PUBLIC_KEY = "";
/**
* 应用ID
*/
private static final String APP_ID = "";
/**
* 初始化支付宝配置
* @return 支付宝客户端
*/
private static AlipayClient newInstance(){
// 支付宝配置
AlipayConfig alipayConfig = new AlipayConfig();
// 设置应用ID
alipayConfig.setAppId(APP_ID);
// 设置私钥
alipayConfig.setPrivateKey(PRIVATE_KEY);
// 设置支付宝公钥
alipayConfig.setAlipayPublicKey(ALIPAY_PUBLIC_KEY);
// 设置网关
alipayConfig.setServerUrl("https://openapi.alipaydev.com/gateway.do");
// 设置格式
alipayConfig.setFormat("json");
// 设置参数字符编码
alipayConfig.setCharset("UTF8");
// 设置签名类型
alipayConfig.setSignType("RSA2");
try {
return new DefaultAlipayClient(alipayConfig);
} catch (AlipayApiException e) {
throw new RuntimeException(e);
}
}
}
以下内容 只是我自己喜欢返回结果使用的类,可以不使用!
创建通用异常枚举
@Getter
@AllArgsConstructor
public enum ResponseCode implements IErrorCode {
//=================================通用异常=================================
// 请求成功
SUCCESS(0, "请求成功"),
// 请求失败
FAIL(-1, "请求失败");
/**
* 状态码
*/
private final Integer code;
/**
* 错误信息
*/
private final String msg;
}
public interface IErrorCode {
/**
* 获取错误码
*
* @return Integer
*/
Integer getCode();
/**
* 获取错误信息
*
* @return String
*/
String getMsg();
}
创建统一返回结果类
@Data
@JsonPropertyOrder(value = {"code", "message", "data"})
@ApiModel(value = "ResponseVo", description = "接口响应信息")
public class ResponseResult<T> implements Serializable {
private static final long serialVersionUID = 5743116789207192315L;
@ApiModelProperty(value = "状态码")
private Integer code;
@ApiModelProperty(value = "状态信息")
private String message;
@ApiModelProperty(value = "响应数据")
private T data;
/**
* 通过注解忽略异常信息(不展示)@JsonIgnore
*/
@ApiModelProperty(value = "异常信息")
@JsonInclude(JsonInclude.Include.NON_NULL)
private Object error;
public ResponseResult() {
}
/**
* 响应成功
*
* @return ResponseResult<Object>
*/
public static ResponseResult<Object> success() {
ResponseResult<Object> responseResult = new ResponseResult<>();
responseResult.setCode(ResponseCode.SUCCESS.getCode());
responseResult.setMessage(ResponseCode.SUCCESS.getMsg());
return responseResult;
}
/**
* 响应成功
*
* @param data 响应数据
* @return ResponseResult<T>
*/
public static <T> ResponseResult<T> success(T data) {
ResponseResult<T> responseResult = new ResponseResult<>();
responseResult.setCode(ResponseCode.SUCCESS.getCode());
responseResult.setMessage(ResponseCode.SUCCESS.getMsg());
responseResult.setData(data);
return responseResult;
}
/**
* 响应成功
*
* @param msg 自定义消息
* @return ResponseResult<Object>
*/
public static ResponseResult<Object> successWithCustomMessage(String msg) {
ResponseResult<Object> responseResult = new ResponseResult<>();
responseResult.setCode(ResponseCode.SUCCESS.getCode());
responseResult.setMessage(msg);
responseResult.setData(null);
return responseResult;
}
/**
* 响应成功
*
* @param msg 自定义消息
* @param data 响应数据
* @return ResponseResult<T>
*/
public static <T> ResponseResult<T> success(String msg, T data) {
ResponseResult<T> responseResult = new ResponseResult<>();
responseResult.setCode(ResponseCode.SUCCESS.getCode());
responseResult.setMessage(msg);
responseResult.setData(data);
return responseResult;
}
/**
* 响应失败
*
* @return ResponseResult<Object>
*/
public static ResponseResult<Object> fail() {
ResponseResult<Object> responseResult = new ResponseResult<>();
responseResult.setCode(ResponseCode.FAIL.getCode());
responseResult.setMessage(ResponseCode.FAIL.getMsg());
return responseResult;
}
/**
* 响应失败
*
* @param message 失败信息
* @param <T> 泛型
* @return ResponseResult<T>
*/
public static <T> ResponseResult<T> fail(String message) {
ResponseResult<T> responseResult = new ResponseResult<>();
responseResult.setCode(ResponseCode.FAIL.getCode());
responseResult.setMessage(message);
return responseResult;
}
/**
* 响应失败
*
* @param errorCode 错误码
* @param <T> 泛型
* @return ResponseResult<T>
*/
public static <T> ResponseResult<T> fail(IErrorCode errorCode) {
ResponseResult<T> responseResult = new ResponseResult<>();
responseResult.setCode(errorCode.getCode());
responseResult.setMessage(errorCode.getMsg());
return responseResult;
}
/**
* 响应失败
*
* @param errorCode 错误码
* @param message 错误信息
* @param <T> 泛型
* @return ResponseResult<T>
*/
public static <T> ResponseResult<T> fail(IErrorCode errorCode, String message) {
ResponseResult<T> responseResult = new ResponseResult<>();
responseResult.setCode(errorCode.getCode());
responseResult.setMessage(message);
return responseResult;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)