微信端开发

网友投稿 170 2023-06-19


微信端开发

这个小程序的主要目的是为了用户用微信的用户信息登录后将用户信息授权存入自己的数据库中,这样以后每次微信登录得到的code 所得到的 openid 可以在项目的数据库中查到该用户的相关信息。

在测试的过程中,需要用户登录得到的code,所以会用到微信开发小工具~!

该工具的使用必须被项目授权

所生成的code是有时间限制的

微信登录端口的api如下

接口地址:https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

请求参数:

参数 必填 说明

appid 是 小程序唯一标识

secret 是 小程序的 app secret

js_code 是 登录时获取的 code

grant_type 是 填写为 authorization_code

返回参数:

参数 说明

openid 用户唯一标识

session_key 会话密钥

expires_in 会话有效期, 以秒为单位, 例如2592000代表会话有效期为30天

返回说明:

//正常返回的JSON数据包

{

"openid": "OPENID",

"session_key": "SESSIONKEY"

"expires_in": 2592000

}

//错误时返回JSON数据包(示例为Code无效)

{

"errcode": 40029,

"errmsg": "invalid code"

}

所以我们可以将代码写成如下

公司将发送的报文格式自己都写好了的,我只需要写出请求路径和http://请求参数就ok

//@Param code 用户登录微信生成的code

//@Return OAuthResult 返回包含openid和session_key和expires_in的类

public OAuthResult getOAuthResultByCode(String code) {

String path = "/sns/jscode2session";

Map parameters = new HashMap<>();

parameters.put("appid", WechatConstant.WECHAT_APP_ID);

parameters.put("secret", WechatConstant.WECHAT_APP_SECRET);

parameters.put("js_code", code);

parameters.put("grant_type", "authorization_code");

OAuthResult oAuthResult = messageSender.getMessageForObject(path, parameters, OAuthResult.class, false);

if (oAuthResult.getOpenid() == null){

throw new BusinessException(BusinessException.Code.OAUTH_PROCESS_ERROR, "OAuth异常,原因:" + oAuthResult.getErrmsg());

http:// }

return oAuthResult;

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java 装箱与拆箱详解及实例代码
下一篇:利用iscroll4实现轮播图效果实例代码
相关文章

 发表评论

暂时没有评论,来抢沙发吧~