SpringBoot 集成第三方登录
微信
不了解微信登录过程的可以看一下微信官方文档。
1. 登录微信开发平台
1.在微信开发平台里面获取我们需要的AppID、AppSecret 。
2.创建配置类
/**
* @Author ddz
* @ClassName WxAppConfig
* @Description
* @Date 2021/8/12 14:50
* @Version 1.0
**/
public class WxAppConfig {
/**
* appID
*/
public static String appID = "AppID";
/**
* AppSecret
*/
public static String appSecret = "AppSecret";
}
3. 开始自己的业务模块
1. 方便测试
支付宝
1. 登录支付宝开发平台
1.在支付宝开发平台里,进入控制台查看自己创建的应用。
支付宝开发平台
获取appid和设置授权回调地址
授权回调地址必须和我们打包时设置的一样,这里我们用测试的链接来测试,在测试的链接后面有个拼接的参数 redirect_uri 必须和设置的一样,不然授权后回调访问不到。
2. 获取公钥、私钥或者证书模式下获取所需的三个证书
这些获取方法在支付宝支付里面有讲到,不知道的可以去看一下获取的流程。
2. 导入依赖
<!-- https://mvnrepository.com/artifact/com.alipay.sdk/alipay-sdk-java -->
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>4.15.12.ALL</version>
</dependency>
3. 创建配置类
package com.communist.common.config;
/***
* 支付宝配置
* @author Lenovo
*/
public class AlipayConfig {
/**
* 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号
*/
public static String APP_ID = "APPID";
/**
* AES 密钥
*/
public static String ENCRYPT_KEY = "AES加密密钥";
/**
* 商户私钥,您的PKCS8格式RSA2私钥,这些就是我们刚才设置的
*/
public static String MERCHANT_PRIVATE_KEY = "应用私钥";
/**
* 支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。,这些就是我们刚才设置的
*/
public static String ALIPAY_PUBLIC_KEY = "支付宝公钥";
/**
* 异步通知,再这里我们设计自己的后台代码
*/
public static String notify_url = "异步回调";
/**
* 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
*/
public static String return_url = "";
/**
* 支付宝网关
*/
public static String GATEWAYURL = "https://openapi.alipay.com/gateway.do";
/**
* 签名方式 固定
*/
public static String SIGN_TYPE = "RSA2";
/**
* 字符编码格式 固定
*/
public static String CHARSET = "utf-8";
}
4.业务模块
1.创建业务接口
/**
* 支付宝登录
*
*
* @param authCode @return
*/
Result aliLogin(String authCode) ;
2. 创建接口实现类
/**
* 支付宝登录
*
* @param authCode @return
*/
@Override
public Result aliLogin(String authCode) {
// 获取AuthCode 等,具体可以获取哪些数据参考支付宝官方接口文档,这里只需要使用auth_code
Assert.isTrue(StrUtil.isNotEmpty(authCode), "auth_code is null");
// 构建client
DefaultAlipayClient alipayClient = new DefaultAlipayClient(
AlipayConfig.GATEWAYURL, AlipayConfig.APP_ID, AlipayConfig.MERCHANT_PRIVATE_KEY, "json", AlipayConfig.CHARSET, AlipayConfig.ALIPAY_PUBLIC_KEY, AlipayConfig.SIGN_TYPE);
// 通过authCode获取accessToken
AlipaySystemOauthTokenRequest oauthTokenRequest = new AlipaySystemOauthTokenRequest();
oauthTokenRequest.setCode(authCode);
oauthTokenRequest.setGrantType("authorization_code");
AlipaySystemOauthTokenResponse oauthTokenResponse = alipayClient.certificateExecute(oauthTokenRequest);
String accessToken = oauthTokenResponse.getAccessToken();
Assert.isTrue(StrUtil.isNotEmpty(accessToken), "接入支付宝登录认证出现错误,无法获取到accessToken");
// 根据accessToken获取用户信息
AlipayUserInfoShareResponse userInfoResponse = alipayClient.certificateExecute(new AlipayUserInfoShareRequest(), accessToken);
Assert.isTrue(userInfoResponse.isSuccess(), "无法获取用户信息!");
// userInfoResponse 中有哪些用户信息参考支付宝官方接口文档,这里演示如下几个
// 下面判断是否授权过、写自己的业务逻辑
return Result.ok();
}
版权声明:本文为weixin_45626288原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
