第一步:先引入需要的jar包
<!-- 支付宝核心sdk -->
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>4.22.113.ALL</version>
</dependency>
<!-- 加解密钥sdk -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.62</version>
</dependency>
// 获取支付宝用户信息
public static void main(String[] args) throws AlipayApiException {
// 实例化阿里客户端sdk对象
AlipayClient alipayClient = new DefaultAlipayClient(
"https://openapi.alipay.com/gateway.do",
"你的小程序的appid",
"商户私钥",
"json",
"GBK",
"支付宝公钥",
"RSA2"
);
// 先通过前端传过来的code,去支付宝获取临时token
AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest();
request.setGrantType("authorization_code");
request.setCode("eb3429d428d7434ca7940396aa9fLB17"); //前端传的用户授权的临时code,调用一次就失效
AlipaySystemOauthTokenResponse oauthTokenResponse = alipayClient.execute(request);
// 在使用token去支付宝获取用户信息
if(oauthTokenResponse.isSuccess()){
AlipayUserInfoShareResponse userInfoShareResponse = alipayClient.execute(new AlipayUserInfoShareRequest(), oauthTokenResponse.getAccessToken());
if(userInfoShareResponse.isSuccess()){
JSONObject resultData = JSONObject.parseObject(userInfoShareResponse.getBody());
JSONObject aliUserInfo = resultData.getJSONObject("alipay_user_info_share_response");
if(!aliUserInfo.isEmpty() && aliUserInfo.getInteger("code").intValue() == 10000){
System.out.println("用户id:"+aliUserInfo.getString("user_id"));
System.out.println("昵称:"+aliUserInfo.getString("nick_name"));
System.out.println("头像:"+aliUserInfo.getString("avatar"));
} else {
System.out.println("获取支付宝用户信息失败!");
}
} else {
System.out.println("调用【alipayUserInfoShare】接口失败!");
}
} else {
System.out.println("调用【alipaySystemOauthToken】接口失败!");
}
}