小程序及H5如何获取公众号code?

Posted angelar12138

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小程序及H5如何获取公众号code?相关的知识,希望对你有一定的参考价值。

        之前碰到一个需求,公众号的菜单跳进小程序,前端需要获取到公众号的code传给后端来确认用户的openId,但是咱们前端如何通过小程序或者H5,来获取公众号的code呢?

        通过查阅资料,我来总结一下此次遇到的问题及解决方案:

        1.公众号菜单跳转H5页面

        这个比较简单,直接配一下地址就可以 。

        https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxffc8496b065b1490&redirect_uri=https://xxxx.cn/officialTest&response_type=code&scope=snsapi_base&state=......#wechat_redirect

        这个地址 https://open.weixin.qq.com/connect/oauth2/authorize 是跳转微信网页获取code的地址,后面拼接的参数appid是公众号的appid;

        redirect_uri是回调地址,这个回调地址需要在公众号上配置一下域名,即网页授权域名,否则会报回地址错误;

        response_type=code,重定向后在回调地址后面会拼接上我们需要的code参数;

        scope=snsapi_base,这是微信静默授权的标识,有两个参数,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid)snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且,即使在未关注的情况下,只要用户授权,也能获取其信息;

        state是重定向之后带的参数,也是带在回调嫡长子后面的。

菜单直接填写上面的地址,会将code拼接到到https://xsyapp.csuat.cmburl.cn/officialTest的后面,即重定向为https://xsyapp.csuat.cmburl.cn/officialTest?code=....&state=....这种形式;

        2.公众号菜单跳转微信小程序页面

        微信小程序使用组件webview,嵌入H5页面,和上面一样的道理,url是微信地址拼接回调地址,在回调地址里面获取code

        

         生产环境和测试环境的公众号appid是不一样的,在测试环境也是可以测试跳转的;注意回调地址一定要在公众号上配过域名哦~

         在H5页面将获取到的code,传回微信小程序,页面跳转基本可以 做到无感;

         如果是以/结尾的地址,直接用this.$route.query就可以获取,如果是用#结尾的地址,可以用下面的方式来获取code,我尝试过返回的地址是  "https://xxx.cn/?code=....&state=.....#/officialTest"

         在微信小程序里面onload生命周期中,通过options可以拿到我们需要的参数。

以上是关于小程序及H5如何获取公众号code?的主要内容,如果未能解决你的问题,请参考以下文章

H5在微信小程序及公众号中的支付

微信开发系列——公众号内嵌H5页面获取code,拿到openID

微信小程序微信公众号H5之间相互跳转

[转]微信小程序微信公众号H5之间相互跳转

微信分享与支付专项课程(公众号小程序小程序云)

h5打开支付宝小程序/生活号