需求:使用go语言调用微信的api实现微信小程序获取openid和sessionkey。

什么都不多说,先看微信官方的流程图:

 看完以后你心里面会想,我明明什么都看得懂,但是什么都不会写!!!!!

现在不要着急,我来告诉你正确的食用方法!

实现:微信小程序的登录
  • 第一步我们肯定要调用api,那么这个api是什么呢?其实微信小程序官方文档中有了一个介绍,就是这个东西:
GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code 
  • 你自己看这个url里面是不是又问号,问号后边是不是有我们要的值,所以我们只需要拼接字符串就行了,当你注册了一个微信小程序的时候,你可以在网页上的微信小程序找到你的appid和secret,所以你现在拥有了2个值,是不是还差一个code,这个code是前端传过来的!所以你只需要做到拿到code就行!
  • 那么问题又来了,你怎么拿到code呢?那我的举例,我会把code放在url上,那么就是/login?code=?所以我使用了gin框架中的Query函数,如下图:
  •  拿到以后我就进行了一个字符串的拼接:
  •  现在我们url有了,我们就可以发出请求了!因为微信小程序官方要求我们使用的是get请求,那我们就用get请求:
  •  接下来就是我们要把里面的数据绑定到我们自己定义的结构体里面了:
  •  至此,我们就拿到了用户的openid和sessionkey了,我们可以对其进行结合然后加密放入数据库中,也可以直接将其放入数据库中

还有些同学可能会遇到code been used的情况

我自己的问题是因为微信小程序开发者工具apifox冲突了,微信小程序开发者工具刷新一次以后会自动的调用code,如果再使用apifox调用其code就会报错。

新人发帖,有问题大佬们可以纠错!