支付宝开发平台:
支付宝的依赖包:
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>4.35.139.ALL</version>
</dependency>
支付宝的配置(提现功能):
#支付宝配置
alipay:
# app_cert_path: src/main/resources/crt/appCertPublicKey_2021003199665444.crt
# alipay_cert_path: src/main/resources/crt/alipayCertPublicKey_RSA2.crt
# alipay_root_cert_path: src/main/resources/crt/alipayRootCert.crt
app_cert_path: /home/images/appCertPublicKey_2021003199665444.crt
alipay_cert_path: /home/images/alipayCertPublicKey_RSA2.crt
alipay_root_cert_path: /home/images/alipayRootCert.crt
#应用私钥
privateKey: MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCAwT4xlJyjUDIbpB271FbtALU3rrfznYeTWJOmwi2FC1e406LvtrmkBcElT2MSQYqarANykxURUCOme/pSEB6xnvP+HfZPTfNpHX4bTMpTsWBem+5kniPVlED8s5NoRlUvauzhvTshaEweRbwTl+0uLDKfDU+jHG9pLCRMzDrgrWy4f6uD/5rqyj7/gASC+bJ7kuhblsJwYHkPs0K1rcArllSltPudCE1O9jdlJShVCenDQ1uDr9fn6fuFloAvJjthI7bBtMMWdYeI/A4fLOH0JMOY2YdnKg0QMLxx+9iLBP8Wj3Yc/NVQqM2RZB4XWi81/+n6FHnWakA7hUrfLg15AgMBAAECggEAa3df3uhI2XM9b57LBpSUPVuC5kgZ1+fbWlvrWZvnfI3cGTPkYqqkRkhbTzX03i8Abls2wXIMepfmObZvWAGGbQDcbHU7ujO5ADqSoFy236ZEZpNGJotsI3+LwqBsX/OcdGiN8VkNurOgHQBdnAkJ+akAU4s7tkwsnZ8vaT5pwk8pV/ZlQ4eG+JllOevj3tOyxWu1dYMltJBnaNk7YWZOPEy7iQxFuQD7tvmYv98mCXhN1U8jtNbWr2s9LHkMnaTpSCj9siBmXlEbZL75fU7RXX7OoF2LP6HZQ76ytOsOxw1Po77Evm5JEN9B6qMNZz1mKlFNdZjqLD+LU+jEskhaAQKBgQDdMi36Al0xQMAV/GwdnY7vswAQKY394QkPfDKmEXkXlwZilzpo2s6i296jw4eqVJwNF9QY62NGLGj2tfmJtRitz9DaS0BNmCU707GxpMfG0cvY+x9+k3+hiW5RZ/GBhFfLbWUQC7r6kU8w5ECFO5lquAZopiflseagm5glF9CpuQKBgQCVA4PCQtbeTsE7lxAmSbTdnQFfUddemTAI/UpeqB6geMSbA7YHZsLOCB7DAmI/qBtZA5ncq2jcrTKWusumYoiV5dCc9ZwXabb9dGyTVem6oG4Y90XVCrwSy7W6gwrl9jUQM0UoFbBl7MSPYYeBWqlA3mdRRP5D80XMVwHMKodhwQKBgHCQY7NR1qkE4XuOzFo53w5+Ui7nZrnm9hxqQMAgLjZiBb7QZMoNZ5CbQW6nR3fXvN4w3R+dUhTY7sV2D7oTba6uDgO4vc1++pu6fDgBuiSkiQ8vpHRejVngPUKyGcWmWqNMVVzYC1wN7HXeAjOLA+S6J5DD1ZPfd5UN+VwPBYIJAoGAXpEfcg4m/Ggwe1fQGOxXyviT4WE388H12Q6dvtqkrSRXaST+xU2yvTwsAYgmv804pdICOCfT4ZBM9ZlQGqSXl8GEFchNKhKd3dWf/hTcwuKDXHa4q44ncyoyh04YgX4xiLlw3xJ8owKSb4fujenyVceO++V0E710g0yISICI8EECgYA7jid5gEXqG0NyfLNc+ULoFNF2+pQZNlUnBYsOy37gISYIQ5KJnh8wFWsAUvQ7KXfK1VbnT1YIrP8Wx3dtzdSBEKFp8aV1cdJxoXAR8xrKrE4ZIgCZ8ioRy6G0PDjvaZVam6a69xy3aKPfojpFSnQmxpd0GItuXIrbv0DY7jstKA==
#支付宝网关地址
serverUrl: https://openapi.alipay.com/gateway.do
#AppId
appId: 2021003199665444
证书位置:
支付宝AIP的公共响应参数的封装
通过一个config配置文件来实现公共类的配置:
package com.example.alipaymenzhu.config;
/**
* 配置文件
* */
import com.alipay.api.*;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
@Configuration
@PropertySource("classpath:alipay.properties")
@Data
public class AlipayClientConfig {
//#应用的ID
@Value("${alipay.app_id}")
private String alipayAppId;
//#商户PID
@Value("${alipay.seller_id}")
private String alipaySellerId;
//#支付宝的网关
@Value("${alipay.gateway_url}")
private String alipayGatewayUrl;
//#商户的私钥
@Value("${alipay.merchant_private_key}")
public String alipayMerchantPrivateKey;
//#支付宝公钥
@Value("${alipay.alipay_public_key}")
private String alipayAlipayPublicKey;
//接口内容加密方式
@Value("${alipay.content_key}")
private String alipayContentKey;
//#页面跳转同步通知页面路径
@Value("${alipay.retrun_url}")
private String alipayRetrunUrl;
//#异步通知的页面路径
@Value("${alipay.notify_url}")
private String alipayNotifyUrl;
@Bean
public AlipayClient alipayClient() throws AlipayApiException {
/**
* 阿里云开放平台SDK封装了签名实现
* 2.该封装的都是公共参数
* */
//这个方法是支付宝提供的
AlipayConfig alipayConfig =new AlipayConfig();
//应用的ID
alipayConfig.setAppId(alipayAppId);
//网关地址
alipayConfig.setServerUrl(alipayGatewayUrl);
//应用的私钥
alipayConfig.setPrivateKey(alipayMerchantPrivateKey);
//设置请求格式,固定值json
alipayConfig.setFormat(AlipayConstants.FORMAT_JSON);//“json”
//设置字符集
alipayConfig.setCharset(AlipayConstants.CHARSET_UTF8);//"UTF8"
//设置支付宝公钥
alipayConfig.setAlipayPublicKey(alipayAlipayPublicKey);
//设置签名类型
alipayConfig.setSignType(AlipayConstants.SIGN_TYPE_RSA2);
/**
* DefaultAlipayClient:封装了请求要的所以东西(除开请求参数)
* */
AlipayClient alipayClient=new DefaultAlipayClient(alipayConfig);
return alipayClient;
}
}
在业务逻辑中实现(请求参数)的业务逻辑:
AlipayClient alipayClient = new DefaultAlipayClient(alipayConfig);
AlipayFundTransUniTransferRequest request = new AlipayFundTransUniTransferRequest();
AlipayFundTransUniTransferModel model = new AlipayFundTransUniTransferModel();
model.setOutBizNo("201806300003");//订单号
model.setRemark("驿站订单提现");
model.setBusinessParams("{\"payer_show_name_use_alias\":\"true\"}");
model.setBizScene("DIRECT_TRANSFER");
Participant payeeInfo = new Participant();
payeeInfo.setIdentity("18874597214");//收款账号
payeeInfo.setIdentityType("ALIPAY_LOGON_ID");//支付宝账户
payeeInfo.setName("刘晖");
model.setPayeeInfo(payeeInfo);
model.setTransAmount("00.10");
model.setProductCode("TRANS_ACCOUNT_NO_PWD");
model.setOrderTitle("驿站订单提现");
request.setBizModel(model);
AlipayFundTransUniTransferResponse response = alipayClient.certificateExecute(request);
System.out.println(response.getPayFundOrderId());
System.out.println(response.getOutBizNo());
System.out.println(response.getStatus());
System.out.println(response.getTransDate());
if (response.isSuccess()) {
System.out.println("调用成功");
} else {
System.out.println("调用失败");
}
注意:这些功能的实现,首先要去支付宝开发平台去申请服务!!!!