1.开放文档: https://doc.open.alipay.com/docs/api.html
2.代码
public static void main(String[] args) {
/** 初始化 **/
CertAlipayRequest certAlipayRequest = new CertAlipayRequest();
/** 支付宝网关 **/
certAlipayRequest.setServerUrl("https://openapi.alipay.com/gateway.do");
/** 应用id,如何获取请参考:https://opensupport.alipay.com/support/helpcenter/190/201602493024 **/
certAlipayRequest.setAppId("");
/** 应用私钥, 如何获取请参考:https://opensupport.alipay.com/support/helpcenter/207/201602471154?ant_source=antsupport **/
certAlipayRequest.setPrivateKey("");
/** 应用公钥证书路径,下载后保存位置的绝对路径 **/
certAlipayRequest.setCertPath("");
/** 支付宝公钥证书路径,下载后保存位置的绝对路径 **/
certAlipayRequest.setAlipayPublicCertPath("");
/** 支付宝根证书路径,下载后保存位置的绝对路径 **/
certAlipayRequest.setRootCertPath("");
/** 设置签名类型 **/
certAlipayRequest.setSignType("RSA2");
/** 设置请求格式,固定值json **/
certAlipayRequest.setFormat("json");
/** 设置编码格式 **/
certAlipayRequest.setCharset("UTF-8");
AlipayClient alipayClient = null;
try {
alipayClient = new DefaultAlipayClient(certAlipayRequest);
} catch (AlipayApiException e1) {
e1.printStackTrace();
}
/** 实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.fund.trans.uni.transfer(单笔转账接口) **/
AlipayFundTransUniTransferRequest request = new AlipayFundTransUniTransferRequest();
/** 设置业务参数,具体接口参数传值以文档说明为准:https://opendocs.alipay.com/apis/api_28/alipay.fund.trans.uni.transfer/ **/
AlipayFundTransUniTransferModel model = new AlipayFundTransUniTransferModel();
/** 商户端的唯一订单号,对于同一笔转账请求,商户需保证该订单号唯一 **/
model.setOutBizNo("2020062900001");
/** 转账金额,TRANS_ACCOUNT_NO_PWD产品取值最低0.1 **/
model.setTransAmount("0.1");
/** 产品码,单笔无密转账到支付宝账户固定为:TRANS_ACCOUNT_NO_PWD **/
model.setProductCode("TRANS_ACCOUNT_NO_PWD");
/** 场景码,单笔无密转账到支付宝账户固定为:DIRECT_TRANSFER **/
model.setBizScene("DIRECT_TRANSFER");
/** 转账业务的标题,用于在支付宝用户的账单里显示 **/
model.setOrderTitle("转账标题");
Participant participant = new Participant();
/** 参与方的唯一标识,收款支付宝账号或者支付宝吧账号唯一会员ID **/
participant.setIdentity("2088******");
/** 参与方的标识类型:ALIPAY_USER_ID 支付宝的会员ID **/
participant.setIdentityType("ALIPAY_USER_ID");
/** 参与方真实姓名,如果非空,将校验收款支付宝账号姓名一致性。当identity_type=ALIPAY_LOGON_ID时,本字段必填 **/
participant.setName("张三");
model.setPayeeInfo(participant);
/** 业务备注 **/
model.setRemark("单笔转账");
request.setBizModel(model);
AlipayFundTransUniTransferResponse response = null;
try {
response = alipayClient.certificateExecute(request);
} catch (AlipayApiException e) {
e.printStackTrace();
}
/** 获取接口调用结果,如果调用失败,可根据返回错误信息到该文档寻找排查方案:https://opensupport.alipay.com/support/helpcenter/114 **/
3.pom依赖
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>4.10.70.ALL</version>
</dependency>