引入依赖
<!--引入阿里支付-->
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>4.40.607.ALL</version>
<!--<version>4.40.506.ALL</version>-->
</dependency>
AliPayment.java
package com.mmwzcloud.jszj.module.jszj.payment;
import com.alipay.api.AlipayApiException;
import com.alipay.api.CertAlipayRequest;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.domain.*;
import com.alipay.api.internal.util.AlipaySignature;
import com.alipay.api.request.AlipayFundTransUniTransferRequest;
import com.alipay.api.request.AlipayTradeAppPayRequest;
import com.alipay.api.request.AlipayTradeRefundRequest;
import com.alipay.api.response.AlipayFundTransUniTransferResponse;
import com.alipay.api.response.AlipayTradeAppPayResponse;
import com.alipay.api.response.AlipayTradeRefundResponse;
import com.mmwzcloud.jszj.framework.common.exception.ErrorCode;
import com.mmwzcloud.jszj.framework.common.exception.ServiceException;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;
import org.springframework.stereotype.Service;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 阿里支付类
*/
@Service
@Slf4j
public class AliPayment {
private static Map<String,DefaultAlipayClient> aliCertClientMap = new HashMap();
public static String appid="202";
public static String privateKey="MIIEvAIB";
public static String sysServiceProviderId="";
public DefaultAlipayClient getAliCertClient() {
DefaultAlipayClient aliCertClient = aliCertClientMap.get("aliCertClient");
if(aliCertClient != null){
return aliCertClient;
}
File appCert = new File("aliPayCert/appCertPublicKey_2021006118637370.crt");
File alipayCert = new File("aliPayCert/alipayCertPublicKey_RSA2.crt");
File alipayRootCert = new File("aliPayCert/alipayRootCert.crt");
try {
if (!appCert.exists()) {
InputStream stream = AliPayment.class.getResourceAsStream("/aliPayCert/appCertPublicKey_2021006XXXXXX.crt");
FileUtils.copyInputStreamToFile(stream, appCert);
}
if (!alipayCert.exists()) {
InputStream stream = AliPayment.class.getResourceAsStream("/aliPayCert/alipayCertPublicKey_RSA2.crt");
FileUtils.copyInputStreamToFile(stream, alipayCert);
}
if (!alipayRootCert.exists()) {
InputStream stream = AliPayment.class.getResourceAsStream("/aliPayCert/alipayRootCert.crt");
FileUtils.copyInputStreamToFile(stream, alipayRootCert);
}
} catch (IOException e) {
log.error(e.getMessage());
throw new ServiceException(new ErrorCode(1003,e.getMessage()));
}
String appCertPath = appCert.getAbsolutePath();
String alipayCertPath = alipayCert.getAbsolutePath();
String alipayRootCertPath = alipayRootCert.getAbsolutePath();
String privateKey=this.privateKey;
CertAlipayRequest certAlipayRequest = new CertAlipayRequest();
certAlipayRequest.setServerUrl("https://openapi.alipay.com/gateway.do");
certAlipayRequest.setAppId(this.appid);
certAlipayRequest.setPrivateKey(privateKey);
certAlipayRequest.setFormat("JSON");
certAlipayRequest.setCharset("utf-8");
certAlipayRequest.setSignType("RSA2");
certAlipayRequest.setCertPath(appCertPath);
certAlipayRequest.setAlipayPublicCertPath(alipayCertPath);
certAlipayRequest.setRootCertPath(alipayRootCertPath);
DefaultAlipayClient alipayClient = null;
try {
alipayClient = new DefaultAlipayClient(certAlipayRequest);
aliCertClientMap.put("aliCertClient",alipayClient);
} catch (AlipayApiException e) {
e.printStackTrace();
}
return alipayClient;
}
public boolean transfer(){
DefaultAlipayClient alipayClient = this.getAliCertClient();
TransferSceneReportInfo info = new TransferSceneReportInfo();
info.setInfoType("结算款项名称");
info.setInfoContent("邀请新用户奖励");
AlipayFundTransUniTransferModel model = new AlipayFundTransUniTransferModel();
model.setOutBizNo("2025041111122");
model.setTransAmount("0.1");
model.setProductCode("TRANS_ACCOUNT_NO_PWD");
model.setBizScene("DIRECT_TRANSFER");
model.setOrderTitle("提现");
model.setTransferSceneName("业务结算");//https://b.alipay.com/page/bizfund/transferScene/list 需审核后设置生效
model.setTransferSceneReportInfos(Arrays.asList(info));
Participant payee = new Participant();
payee.setIdentityType("ALIPAY_LOGON_ID");
payee.setIdentity("13462627296");
payee.setName("景春德");
model.setPayeeInfo(payee);
AlipayFundTransUniTransferRequest request = new AlipayFundTransUniTransferRequest();
request.setBizModel(model); // SDK 帮你序列化,不会错
AlipayFundTransUniTransferResponse response = null;
try {
response = alipayClient.certificateExecute(request);
} catch (AlipayApiException e) {
throw new RuntimeException(e);
}
System.out.println(response.getBody());
return true;
}
public static void main(String[] args) {
AliPayment aliPayment = new AliPayment();
boolean transfer = aliPayment.transfer();
}
}

转账场景申请列表