<dependency>
<groupId>com.alipay.sdkgroupId>
<artifactId>alipay-sdk-javaartifactId>
<version>4.11.0.ALLversion>
dependency>
pom.xml 详情:https://gitee.com/zhaifengxi/zhai-docking-alipay-open/blob/master/pom.xml
这里瑞思拜一位技术大佬:battcn 唐亚峰,开发的swagger2组件,非常实用。
public static final String COMMON_SERVER_URL = "https://openapi.alipay.com/gateway.do";
AlipayConstant.java 详情:https://gitee.com/zhaifengxi/zhai-docking-alipay-open/blob/master/src/main/java/zhai/docking/alipay/constant/AlipayConstant.java
@ApiField("code")
private String code; //网关返回码
@ApiField("msg")
private String msg; //网关返回码描述
@ApiField("sub_code")
private String subCode; //业务返回码
@ApiField("sub_msg")
private String subMsg; //业务返回码描述
/** 返回码 */
private String code;
/** 返回码描述 */
private String msg;
public boolean isSuccess() {
return this.code.equals(AlipayConstant.RESULT_SUCCESS_CODE);
}
public BaseAlipayCommonOut commonOut(AlipayResponse response) {
BaseAlipayCommonOut out = new BaseAlipayCommonOut();
if (!AlipayConstant.CODE_SUCCESS.equals(response.getCode()) && StringUtil.isBlank(response.getSubCode())) {
out.setCode(AlipayConstant.RESULT_ERROR_DEF_CODE);
out.setMsg(StringUtil.join(response.getCode(), StringConstant.COLON, response.getMsg()));
} else if (StringUtil.isNotBlank(response.getSubCode()) && !AlipayConstant.SUB_CODE_SUCCESS.equals(response.getSubCode())) {
out.setCode(AlipayConstant.RESULT_ERROR_DEF_CODE);
out.setMsg(StringUtil.join(response.getSubCode(), StringConstant.COLON, response.getSubMsg()));
} else {
out.setCode(AlipayConstant.RESULT_SUCCESS_CODE);
}
return out;
}
BaseAlipayCommonOut.java 详情:https://gitee.com/zhaifengxi/zhai-docking-alipay-open/blob/master/src/main/java/zhai/docking/alipay/domain/base/alipay/common/BaseAlipayCommonOut.java
@SneakyThrows
@Override
public BaseAlipayBlueSeaCreateOut create(BaseAlipayBlueSeaCreateIn in) {
/** 操作:调用支付宝接口 */
AlipayClient alipayClient = new DefaultAlipayClient(AlipayConstant.COMMON_SERVER_URL, alipayApiProp.getAppid(), alipayApiProp.getPrivateKey(), AlipayConstant.COMMON_FORMAT, AlipayConstant.COMMON_CHARSET, alipayApiProp.getPublicKey(), AlipayConstant.COMMON_SIGN_TYPE);
AlipayOpenSpBlueseaactivityCreateRequest request = new AlipayOpenSpBlueseaactivityCreateRequest ();
request.setBizContent(JSONUtil.toStr(in));
AlipayOpenSpBlueseaactivityCreateResponse response = alipayClient.execute(request);
/** 操作:结果转换 */
BaseAlipayBlueSeaCreateOut result = ObjectUtil.copy(response, BaseAlipayBlueSeaCreateOut.class);
BaseAlipayCommonOut commonOut = result.commonOut(response);
ObjectUtil.copy(commonOut, result);
return result;
}
BaseAlipayApiBlueSeaSerImpl.java 详情:https://gitee.com/zhaifengxi/zhai-docking-alipay-open/blob/master/src/main/java/zhai/docking/alipay/service/base/alipay/api/BaseAlipayApiBlueSeaSerImpl.java
alipay: # 支付宝
api:
appid: # 自行配置
publicKey: # 自行配置
privateKey: # 自行配置
AlipayApiProperties.java 详情:https://gitee.com/zhaifengxi/zhai-docking-alipay-open/blob/master/src/main/java/zhai/docking/alipay/prop/AlipayApiProperties.java
AlipayApiConfig.java 详情:https://gitee.com/zhaifengxi/zhai-docking-alipay-open/blob/master/src/main/java/zhai/docking/alipay/config/AlipayApiConfig.java
application.yml 详情:https://gitee.com/zhaifengxi/zhai-docking-alipay-open/blob/master/src/main/resources/application.yml
@Autowired
BizLogSer bizLogSer;
/** 操作:记录业务日志 */
bizLogSer.save(new BizLogSave(new BizLogDataTemp(in, response), AlipayConstant.BLUE_SEA_CREATE_LOG));
BizLogSerImpl.java 详情:https://gitee.com/zhaifengxi/zhai-docking-alipay-open/blob/master/src/main/java/zhai/docking/alipay/service/base/bizlog/BizLogSerImpl.java
BizLogAsync.java 详情:https://gitee.com/zhaifengxi/zhai-docking-alipay-open/blob/master/src/main/java/zhai/docking/alipay/sync/base/bizlog/BizLogAsync.java