支付宝授权登录
一、场景
支付宝小程序登录,获取用户userId
二、注册支付宝开发者账号
1、支付宝开放平台
2、点击右上角–控制台,创建小程序
3、按照步骤完善信息,生成密钥时会用到的工具
4、生成的密钥,要保管好,以后不能找回,只能重新生成
5、右上角可以搜索对应接口文档
三、开发代码
1、pom依赖
<!--支付宝登录-->
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java-v3</artifactId>
<version>3.1.38.ALL</version>
</dependency>
2、工具类
public class AliLoginUtils {
public static Map<String,String> toOpenId(String code) {
try {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setAlipayConfig(getAlipayConfig());
// 构造请求参数
AlipaySystemOauthApi api = new AlipaySystemOauthApi();
AlipaySystemOauthTokenModel data = new AlipaySystemOauthTokenModel();
data.setCode(code);
data.setGrantType("authorization_code");
// 调用接口获取用户信息
AlipaySystemOauthTokenResponseModel response = api.token(data);
String openId = response.getOpenId();
Map<String, String> infoMap = new HashMap<>();
infoMap.put("openid",openId);
return infoMap;
} catch (ApiException e) {
throw new RuntimeException(e);
}
}
public static void main(String[] args) {
Map<String, String> map = AliLoginUtils.toOpenId("");
System.out.println(map);
}
3、配置类
import com.alipay.v3.util.model.AlipayConfig;
public class AliDataConfigure {
public static AlipayConfig getAlipayConfig() {
AlipayConfig alipayConfig = new AlipayConfig();
alipayConfig.setServerUrl("https://openapi.alipay.com");
alipayConfig.setAppId("自己创还能的小城序appId");
alipayConfig.setPrivateKey("应用私钥,例如:MIIEvQIBADANB");
alipayConfig.setAlipayPublicKey("支付宝公钥,例如:MIIBIjANBg");
return alipayConfig;
}
}
4、响应示例
后续如果在使用,会继续更新
一个在学习中的开发者,勿喷,欢迎交流