支付宝官方文档
转账到支付宝用户快速接入
单笔转账到支付宝账户接入助手
直接上代码
SDK
<!-- https://mvnrepository.com/artifact/com.alipay.sdk/alipay-easysdk -->
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-easysdk</artifactId>
<version>2.2.0</version>
</dependency>
AlipayUtils
package cn.country.cunyue.app.application.utils;
import com.alibaba.fastjson.JSON;
import com.alipay.api.AlipayApiException;
import com.alipay.api.CertAlipayRequest;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.request.AlipayFundTransUniTransferRequest;
import com.alipay.api.response.AlipayFundTransUniTransferResponse;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;
public class AlipayUtils {
private static final String APP_ID = "appid";
private static final String APP_PRIVATE_KEY = "商户自己保留的私钥(由支付宝开放平台开发助手生成)";
private static final String CHARSET = "utf-8";
private static final String APP_CERT_PATH = "从放平台-应用信息-接口加签方式-应用公钥信息";
private static final String ALIPAY_CERT_PATH = "从开放平台-应用信息-接口加签方式-支付宝公钥证书";
private static final String ALIPAY_ROOT_CERT_PATH = "从开放平台-应用信息-接口加签方式-支付宝根证书";
public static Map<String, Object> callTransfer(String outBizNo, BigDecimal transAmount, String orderTitle, String identity, String name, String remark) throws AlipayApiException {
Map<String, Object> map = new HashMap<>();
CertAlipayRequest certAlipayRequest = new CertAlipayRequest();
certAlipayRequest.setServerUrl("https://openapi.alipay.com/gateway.do");
certAlipayRequest.setAppId(APP_ID);
certAlipayRequest.setPrivateKey(APP_PRIVATE_KEY);
certAlipayRequest.setFormat("json");
certAlipayRequest.setCharset(CHARSET);
certAlipayRequest.setSignType("RSA2");
certAlipayRequest.setCertPath(APP_CERT_PATH);
certAlipayRequest.setAlipayPublicCertPath(ALIPAY_CERT_PATH);
certAlipayRequest.setRootCertPath(ALIPAY_ROOT_CERT_PATH);
DefaultAlipayClient alipayClient = new DefaultAlipayClient(certAlipayRequest);
AlipayFundTransUniTransferRequest request = new AlipayFundTransUniTransferRequest();
Map<String, Object> transfer = new HashMap<>();
transfer.put("out_biz_no", outBizNo);
transfer.put("trans_amount", transAmount);
transfer.put("product_code", "TRANS_ACCOUNT_NO_PWD");
transfer.put("biz_scene", "DIRECT_TRANSFER");
transfer.put("order_title", orderTitle);
Map<String, Object> payeeInfo = new HashMap<>();
payeeInfo.put("identity", identity);
payeeInfo.put("identity_type", "ALIPAY_LOGON_ID");
payeeInfo.put("name", name);
transfer.put("payee_info", payeeInfo);
transfer.put("remark", remark);
String string = JSON.toJSONString(transfer);
request.setBizContent(string);
AlipayFundTransUniTransferResponse response = alipayClient.certificateExecute(request);
if (response.isSuccess()) {
if ("10000 ".equals(response.getCode())) {
map.put("code", 10000);
map.put("msg", "提现成功!");
return map;
} else if ("40004 ".equals(response.getCode()) && ("SYSTEM_ERROR".equals(response.getSubCode()) || "UNKNOWN_ERROR".equals(response.getSubCode()) || "unknown-sub-code".equals(response.getSubCode()))) {
map.put("code", 40004);
map.put("msg", "提现失败!");
return map;
} else if (!"10000 ".equals(response.getCode()) && "ORDER_NOT_EXIST".equals(response.getSubCode())) {
map.put("code", 40004);
map.put("msg", "提现失败!");
return map;
} else {
map.put("code", 20000);
map.put("msg", "系统繁忙!");
return map;
}
} else {
map.put("code", 500);
map.put("msg", "调用失败!");
return map;
}
}
}