18910140161

利用微信JavaSDK实现网站集成微信登录功能

顺晟科技

2021-06-16 10:40:53

557

一、微信开放平台操作步骤

微信开放平台地址:https://open.weixin.qq.com

必须注意的是,网站集成微信登录需要在微信开放平台上运营,与微信公众平台不同。虽然双方的最终用户标识都是openId,但它们不具有互操作性。开发平台要想和公共平台沟通,两个平台必须相互绑定,然后获取的unionId。

先说开放平台上的操作步骤:

1.创建“网站应用程序”

因为你登录了对接PC网站,你就创建了一个“网站应用”。操作截图如下:

新网站应用截图

2.获取AppID和AppSecret

微信审核通过后,会分配相应的AppId,AppSecret需要管理员扫描生成。生成后的截图如下:

参见AppId截图

二、发展指南

微信OAuth2.0授权登录允许微信用户使用微信身份安全登录第三方应用或网站。微信用户授权登录微信OAuth2.0连接的第三方应用后,第三方可以获取用户的界面调用证书(access_token),通过该证书可以调用微信开放平台授权关系界面,从而获取微信用户的基本开放信息,帮助用户实现基本开放功能等。整个过程如下:

1.第三方发起微信授权登录请求。微信用户允许第三方应用授权后,微信会拉起应用或重定向到第三方网站,并自带授权临时账单的代码参数;

2.通过代码参数添加AppID和AppSecret,交换access _ token通过API

3.通过access_token调用接口,获取用户的基础数据资源或帮助用户实现基础操作。

第三,发展实战

开源项目WxJava,项目中使用WxJava源代码地址(https://github.com/Wechat-Group/WxJava);

首先,为Spring Boot创建一个新项目。具体可以参考我之前的文章《Spring Boot入门-快速搭建web项目》。

创建新项目后,继续执行以下步骤。

1.将jar包导入pom.xml

!-微信登录jar -

属国

groupIdcom.github.binarywang/groupId

artifactIdweixin-Java-MP/artifactId

版本3 . 3 . 0/版本

/依赖性

2.将相应的配置添加到配置文件中

appId和appSecret在application.yml中的配置如下:

wx:

mp:

configs:

- appid: wx1********

secret: * * * * * * * * * * *

令牌:

aesKey:

msgDataFormat:

3.初始化配置

WxMpProperties.java法典如下:

@数据

@ConfigurationProperties(前缀='wx.mp ')

公共类WxMpProperties {

私有ListMpConfig配置;

@数据

公共静态类MpConfig {

/**

*设置微信微信官方账号的appid

*/

私有字符串appId

/**

*设置微信微信官方账号的app秘密

*/

私有字符串秘密;

/**

*设置微信微信官方账号的令牌

*/

私有字符串标记;

/**

*设置微信微信官方账号的编码密钥

*/

私有字符串aesKey

}

}

WxMpConfiguration.java法典如下:

@Slf4j

@配置

@ EnableConfigurationPropertieS(WXMPProperties . class)

公共类WxMpConfiguration {

私有静态MapString,WxMpService MpSerVices=Maps . NewHashMap();

public static MapString,WxMpService getMpServices() {

返回mpServices

}

@自动连线

私有WxMpProperties属性;

@自动连线

私有WxMpInRedisConfigStorageMy配置存储;

@PostConstruct

public void IntSerVices(){

//代码中getConfigs()处报错的同学,请仔细阅读项目描述。你的IDE需要引入lombok插件!

最终列表ListWxMpProperties。MpConfig configs=this . properties . Getconfigs();

if (configs==null) {

抛出新的RuntimeException('老大哥,请先阅读项目首页的描述(自述文件),添加相关配置,注意不要出错!');

}

mpServices=configs.stream()。地图(a - {

//redis

config STORAGE . SetAppID(a . GetAppID());

config storage . setsecret(a . GetSecret());

config storage . SetToken(a . GetToken());

config STORAGE . SetAesKey(a . GetAesKey());

WxMpService service=new WxMpServiceImpl();

service . setwxmpconfigstorage(config storage);

log.info('苏慕白appId={},a . geta ppid();

退货服务;

}。收藏(收藏者。tomap(s-s . getwx mpconfig storage()).getAppId()、a - a 、(o,n) - o)段;

}

}

4 ."阿灵顿阿灵顿阿灵顿阿灵顿阿灵顿阿灵顿阿灵顿阿灵顿阿灵顿阿灵顿阿灵顿阿灵顿阿灵顿阿灵顿阿灵顿阿灵顿阿灵顿阿灵顿

@Slf4j(消歧义)@ SLF 4j(消歧义)@ SLF 4j(消歧义)@ SLF 4j(消歧义)@ SLF 4j(消歧义)@ SLF 4j

@控制器(控制器)

@请求映射('/重定向/{appid} ')

公共班级重定向控制器[

/**

*范思哲范思哲

*

*/

@请求映射('/getuserininfo ')"

public void get base(httperservletrequest,HttpServletResponse,@PathVariable String appid,@ requestparam(' code ')字符串代码){ }

wx MP service MP service=wx MP configuration。getmpseservices().获取(appid);

尝试[

wx mpoauth 2访问令牌访问令牌=mpservice。誓言2 getaccesstoken(代码);

log.info('accessToken={},' JSON。to sconstraint(accesstoken));

wmpuser wx mpuser=mpservice。誓言2 getuseriinfo(访问令牌,null);

log.info('wxMpUser={},' JSON。to scoconstruction(wx mpuser));

} catch(异常e)}

日志错误('范思哲范思哲我的天、和;

}

}

}

你好~我爱你~阿叔.

1.你好个人电脑伊鲁阿伊阿伊阿伊阿伊阿伊阿伊阿伊阿伊阿伊阿伊阿伊阿伊阿伊阿伊阿伊阿伊阿伊阿伊阿伊阿伊阿伊阿伊阿伊阿伊阿伊阿伊阿伊阿伊阿伊

339开。微信。QQ。com/connect/QR connect吗?appid=wx 12345678重定向_ uri=http://www .测试。com/redit/wx 12345 678/getuser infresponse _ type=codes cope=snsapi _ login state=state #微信_重定向

阿祖伊阿祖伊阿祖伊阿祖伊阿祖伊阿祖伊阿祖伊阿祖伊阿祖伊阿祖伊阿祖伊阿祖伊阿祖伊阿祖伊阿祖伊阿祖伊阿祖伊阿祖伊阿祖伊阿祖伊:

2.韩世宁韩世宁韩世宁

范思哲?范思哲:

范仲淹,你是说范仲淹,你是说范仲淹,你是说范仲淹,你是说范仲淹,你是说范仲淹?你是说范仲淹,你是说范仲淹?你是说范仲淹,你是说范仲淹,PC菲兰达

http://www .oicqzone。com/重定向/wx 12345 678/getuserininfo?代码=代码状态=状态

3.范仲淹,范仲淹

阿力克斯阿力克斯阿力克斯阿力克斯阿力克斯程式码你好别动哎哎哎,你知道吗?我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,你是谁?你是谁?你是谁:

[http-nio-8104-exec-2]关于CT . m . s . c重定向控制器-访问令牌={ ' access token ' : ' 24 _ vwnvrsv 9 vmr 7 qoqjkror 93 bhsp ',' expiresin ' :7200,' OpenID ' : ' or xsdsuh 6 scakof 3d 1 i4d 3c ',' refresh token ' : ' 24 _ wmknxcn 9ff 2 pl 2 xhlfw-ky 96 P6 zifj 8 lmiop _ camzohem

[http-nio-8104-exec-2]关于CT . m . s . c重定向控制器-wx mpuser={ ' city ' 3330 ',' country': ',' headimurl ' 3: ' 339 thidwx。qlogo。cn/mm pen/VI _ 32/Q3 au hgzwzm 4 ibasovif 3qr 4 qjnwh 4q 1 wiawcffzkgmzqu pr 0 ha 3 micu 1 ltb LQ 7 phim dy scan 2 NIC 6033 ' OpenID ' 3360 ' or xsdsuh 6 scakof 3d 1 i4d 3c ',' privileges':[],' province ' : ',' sexDesc': '你好union id ' 3360 ' oadfukfcp mjosyu 1 oc 2 of 2h 6 pt ' }

哼哼哼个人电脑你知道吗,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我是说,我的意思是,我的意思是,我的意思是,我的意思是,我的意思是,我的意思是,我的意思是,我的意思是,我的意思是,我的意思是,我的意思是,我的意思是,我的意思是,我的意思是,我的意思是,我的意思是!

相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航