前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

基于JavaEE——微信网页(三)微信的程序接入

qiguaw 2024-09-21 00:11:53 资源文章 19 ℃ 0 评论

首先,还是要先看一下下面的例子

西门大官人想要找到金莲,直接上门 X(金莲是不会让他进来的!!)

那么,西门大官人就要去找王婆帮忙,偷偷地给王婆一个小纸条(内容嘛,不可说,不可说)

王婆收到纸条后,将西门大官人记下来,然后告诉他金莲的真实地址和开门的口号,

西门大官人美滋滋的再次拿着地址,来到了金莲的门前,用王婆给的口号传递给了金莲,

金莲一看:哇,口号对上了,可以啦.......................................此处省略点东西..........

那么我们换个角度看一下

用户要访问我们的程序,我们假设不是任何人都可以访问我们,那么用户随随便便是不允许访问的,用户需要进入微信服务器,经过微信服务器数据处理生成code,并重定向至第三方程序的连接上。实现了微信的第三方程序的一种接入方式。

那么问题来了,code由我们第三方程序接收到,从何做出判断这个用户是从微信跳转过来的呢??

我们继续找那三个人

当西门大官人找到王婆的时候,王婆已经将西门大官人记了下来,针对西门大官人还生成了一个专属口号。

当西门大官人找到金莲的时候,金莲接到了大官人的口号,便偷偷地将口号给了王婆,王婆拿出小本子,根据口号找到了西门大官人,便告诉她:我让他来的,他是谁谁谁,怎么怎么的,这样那样......

金莲说:“OK”!

微笑

当西门大官人找到王婆的时候,王婆已经将西门大官人记了下来,针对西门大官人还生成了一个专属口号。

当西门大官人找到金莲的时候,金莲接到了大官人的口号,便偷偷地将口号给了王婆,王婆拿出小本子,根据口号找到了西门大官人,便告诉她:我让他来的,他是谁谁谁,怎么怎么的,这样那样......

金莲说:“OK”!

微笑

我们再次回到正题

当用户点击菜单按钮,首先跳转到微信服务器,微信服务器针对用户生成一个只能使用一次的code,并重定向到第三方 程序,第三 方程序获取到code后,向微信服务器发起一次查询请求,根据code查询到这个用户的openid,并返回给第三 方程序。

程序拿到openid后有什么用?什么是openid?

微信官方API说明:

用户唯一标识,请注意,在未关注公众号时,用户访问公众号的网页,也会产生一个用户和公众号唯一的OpenID

而我们第三 方程序所要做的就是在获取到code之后,向微信服务器发送一次请求,通过code获取到openid,之后继续我们的代码业务逻辑。这样对于我们程序来说,便可以通过openid指向用户,保证了访问用户的唯一性。

首先,我们需要在按钮部署的连接:

获取code ---> 相当于递小纸条给王阿婆的过程

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

STATE 重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节

SCOPE ---> 这里我们选择静默授权,所以使用snsapi_base即可应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且,即使在未关注的情况下,只要用户授权,也能获取其信息)

REDIRECT_URI

授权后重定向的回调链接地址,请使用 URLEncode 对链接进行处理(第三方程序地址)

参数

是否必须

说明

appid

公众号的唯一标识

ecret

公众号的appsecret

code

填写第一步获取的code参数

grant_type

填写为authorization_code

参数

描述

access_toke

网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同

expires_i

access_token接口调用凭证超时时间,单位(秒)

refresh_toke

用户刷新access_toke

openid

用户唯一标识,请注意,在未关注公众号时,用户访问公众号的网页,也会产生一个用户和公众号唯一的OpenID

cope

用户授权的作用域,使用逗号(,)分隔

这里返回的access_token与我们管理微信的access_token不是一个token!!!

在这里,获取到openid,而我们程序便可以通过解析获取到openid。

下一篇,上代码!!!!!!!!!

-----------------------------------------------分割线----------------------------------------------

持续未完,感谢大家的阅读,如果大家有兴趣可以查看《基于JavaEE—微信网页(一)角色的基本说明》《基于JavaEE—微信网页(二)微信开发》。也欢迎大家转发,并关注。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表