html52.com
我爱小程序-开发者交流社区

小程序openid的灌水贴

做微信开发的都知道openid的重要性,这里不再炒冷饭了.

今天我们就来讨论一下小程序中openid获取的姿势吧..

首先获取openid有个最最简单的方法就是通过wx.login来获取,

只需要在通过wx.login中code,然后通过wx.request向https://api.weixin.qq.com/sns/jscode2session

发送你们的js_code、appid、secret及grant_type就能坐等openid和session_key的返回了。。。

这是最最简单的,但官方肯定不建议把这个写在小程序中,因为很容易将你的appid和secret暴露出来。


因此他们推出了另一种复杂而不讨好的方法:数据解密算法来获取openid.

用户首先通过刚才的wx.login获得的code发送到开发者的服务器获得session_key,然后保留。

再通过wx.getUserInfo获得encryptedData和iv,结合刚才的session_key,进行解密从而获得openid和appid的信息。

虽然这种方式复杂,但安全还是实实在在的。


至于那种好,就看自己的项目吧,个人推荐复杂的,虽然不是太讨好,但胜在安全。

最后,不知道要有没有人需要encryptedData C#的解密函数,需要的可以留言。。

相关代码不贴了,不为微信添堵。

收场,可以的给个赞吧。。。



网友回复

Akira:

都是要后端处理,不能直接wx.request。

第一种是便于只有微信小程序端的登录,要个openid就够了

第二种是多端登录,需要确保能拿到unionid

星光:

你没有看文档吗,获取sessionkey+openid是自己的服务器后台发送请求,怎么可以直接在小程序request呢

追梦的人(IT大叔一枚):

忘记说了,wx.login和wx.getUserInfo获得的openid是一样的。

Midoruwea:

你是如何把api.weixin.qq.com加到白名单的?很明显第一种方法无法实现。

Ripe_?:

可以加一下我吗?  请求问题  qq 450006509   追梦大哥

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签H5支付