最近项目中涉及到调用支付宝支付接口,记录一下。拉进去配置一下直接可以用的
导包
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>4.10.58.ALL</version>
</dependency>
创建一个配置工具类AlipayConfig
这里我构造了一个getAlipayClient的无参方法方便调用
支付宝公钥,私钥,AppID,异步通知地址这些添加自己的就行了。
/**
* 设置网关地址(正式环境)
*/
public static final String APP_GATEWAY = "https://openapi.alipay.com/gateway.do";
//public static final String URL = "https://openapi.alipaydev.com/gateway.do"; //沙箱(测试环境)
/**
* 设置应用Id
*/
public static final String ALIPAY_APPID = "";
/**
* 私钥
*/
public static final String APP_PRIVATE_KEY = "";
/**
* 支付宝公钥
*/
public static final String ALIPAY_PUBLIC_KEY = "";
/**
* 设置请求格式,固定值json
*/
public static final String FORMAT = "json";
/**
* 设置字符集
*/
public static final String CHARSET = "utf-8";
/**
* 设置签名类型
*/
public static final String SIGNTYPE = "RSA2";
/**
* 异步通知地址
*/
public static final String NOTIFYURL = "";
/**
* 设置商户号,多个可用英文逗号隔开
*/
public static final String SELLER_ID = "";
/**
* 接口权限值,目前只支持auth_user和auth_base两个值-->>
* auth_base:以auth_base为scope发起的网页授权,是用来获取进入页面的用户的userId的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(通常是业务页面)。
* auth_user:以auth_user为scope发起的网页授权,是用来获取用户的基本信息的(比如头像、昵称等)。但这种授权需要用户手动同意,用户同意后,就可在授权后获取到该用户的基本信息。若想获取用户信息,scope的值中需要有该值存在,如scope=auth_user,auth_base。
*/
public static final String SCOPE = "auth_user";
/**
* 统一收单交易创建接口
*/
private static AlipayClient alipayClient = null;
/**获得初始化的AlipayClient
* @return 支付宝客户端
*/
public static AlipayClient getAlipayClient() {
if (alipayClient == null) {
synchronized (AlipayConfig.class) {
if (null == alipayClient) {
alipayClient = new DefaultAlipayClient(APP_GATEWAY, ALIPAY_APPID, APP_PRIVATE_KEY, FORMAT, CHARSET, ALIPAY_PUBLIC_KEY