绑定微信以及获取openId
由于公司最近在做一个微信公众号的项目,需要获取用户openId,我再一次踏入了微信的坑!
先在这里告诫后来的同志,如果一样要开始做有关微信的东西,最好是有前辈,或者直接看完文档,不懂或者纳闷的地方直接找微信客服!千万不要直接去怼微信的代码,简直了...
我们公司是属于已认证的服务号的那种公众平台,前戏基本上该做的已经做了。
先说一说该注意的几个点,以及很容易忽视的地方。

这里的业务域名、JS接口安全域名和网页授权域名都是同一个,也就是公司官网认证的域名。然后我们写的html文件必须要在这个域名对应ip地址的文件夹下,二级或者三级都可以。
还有需要注意一下的就是基本配置的IP白名单这块!

刚开始研究了几天文档,兴致满满的写代码,几个各种报错,各种不对劲,甚至调用微信官方接口都各种调不起。找了几番度娘才发现原来的IP白名单的原因。还有一个坑,我们下次讲,这次暂时先说说openId的获取方式。
在拿到AppID和AppSecret也就是开发者密码后,就可以调用微信授权接口了。
文档目录:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842
要获取用户openId首先要让用户同意授权,获取code;
授权大概就是这个样子:
由于我们这边管事的不希望用户看到授权页面,说什么影响用户享受什么的,什么鬼,授权页面很正常好不好,我反而觉得没有授权页面就拿到信息那才是感觉怪怪的~~.(稍微吐槽吐槽~~)
获取code的方法,微信文档的接口这些写的还算清楚,但是其中的坑就真心的是让人无奈啊!
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
按照这个接口的格式把每个参数拼接,然后访问,我起先以为是Ajax访问,结果......一脸懵逼啊~~
结果这里是直接访问就OK,参数里面有个redirect_uri,授权后重定向的回调链接地址,这里的参数直接写授权后跳转的页面就OK,要注意的是这里的url必须是网页授权域名里的!
然后就是授权页面的展示。这里我们管事的要求的是直接不要授权页面,也就是所谓的静默跳转,直接到主页面!
这里就需要把微信参数中scope的值变成snsapi_base !但是应用授权作用域,snsapi_base (只能获取用户openid)!

然后最终的样子就是这样子:

然后在主页面获取url里的code参数,这个都会,就不多说了,获取后再调用微信链接获取access_token!
这里就有一个隐形的坑了,而且是大坑!

按理说,code也拿到了,按微信参数一个个填,应该就可以获取到里面的openId的,但是这里的链接是不能前台获取的,只有让后台写接口,我们这边动态传入数据给后台,来获取,然后呢,code这个数据是只能调用一次的,所以,你懂的~~~应该是为了保护公众号信息被盗取,所以在前台输入微信接口是调取不到的,所以这也是没办法的事情,可是微信好歹提示下啊,啥也不说,哎~~
拿到openId后,用openId拿到对应微信公众号的关注者信息这些是后台做的事情,你叫他给你个接口,然后你把openId输入进去,和某些需要的参数就可以直接拿到了,(反正我这边只需要一个openId~~~)
绑定微信以及获取openId的更多相关文章
- 微信点餐系统(七)-微信授权获取openid:
章节小结: 1.学会了微信授权的步骤,学会了微信授权的文档 2.学会了使用natapp内网穿透工具 3.加深了虚拟机的网络配置以及基本使用 4.学会了抓包购票工具fiddler的使用 5.微信授权步骤 ...
- [转] Android进阶——安卓接入微信,获取OpenID
PS: sendAuthRequest拿到code,通过code拿到access_token和openId,access_token可以拿到用户的信息 http://blog.csdn.net/hao ...
- node 微信授权 获取openid
node获取微信授权拿到openid 需要了解的网站 1.微信授权. 先说一下流程(一张图代替所有): 流程步骤: 1.用户同意,获取code. 2.通过code获取网页授权access_toke ...
- 微信网页获取openId
<%@ WebHandler Language="C#" Class="UserAuth" %> public class UserAuth : I ...
- 微信企业号获取OpenID过程
define('CorpID', "wx82e2c31215d9a5a7"); define('CorpSecret', ""); //当前管理组 设置-> ...
- 微信小程序调用微信登陆获取openid及用户信息 java做为服务端
转载的文章,很不错 https://blog.csdn.net/weilai_zhilu/article/details/77932630
- 微信公众号&小程序 -- 获取并解密用户数据(获取openId、unionId)
本文转自https://my.oschina.net/u/3235888/blog/832895 前言 微信小程序API文档:https://mp.weixin.qq.com/debug/wxadoc ...
- 获取openid
请将文件MP_verify_IbWggk5i4gWgrast.txt上传至mp.weixin.qq.com指向的web服务器(或虚拟主机)的目录 怎么处理的?//将txt文件上传到你填的域名的根目录 ...
- 小程序获取openid和unionid java实现
官方api:https://developers.weixin.qq.com/miniprogram/dev/api/api-login.html#wxloginobject 参考文章:https:/ ...
随机推荐
- 将ArrayList<HashMap<String, String>>转为ArrayList<Bundle>类型的解决方案
Bundle是一种利用键值对存储的数据格式,而我们在程序中通常利用HashMap存储数据.在开发中,通过Http请求得到JSONArray类型的返回值,我选择利用ArrayList<HashMa ...
- (转)java反射机制及简单工厂模式
第一步,定义一个接口类 package factory.face; /** * 接口,为了保证返回的对象可以统一用 Product接受 * @author Administrator */ publi ...
- vue数据驱动作用域问题
需求是这样的,如图 点击禁用后,变成启用,但是结果却不让人满意 我们先来看一下错误代码: //conponet控件里的内容 html内容: <div> <button @click. ...
- Opencv-2017-7-18
橘子薄皮只吃瓤,可以称之为过滤,意思是只要我们需要的东西,去除不需要的. 图像灰度级的分布及变化. 空间域(分布)和频域(变化). 低频(变化小),高频,水平/垂直,(高/低通滤波器). 低频-类似模 ...
- 【firefox】关闭firefox缓存
在Firefox中关闭缓存 看看这里 在地址栏输入:about:config 然后在过滤器中输入:browser.cache.disk.enable 解释:When a page is loaded, ...
- 自动创建win计划任务
@echo off set NAME=refrash IE set TIME=20:01:00 set DAY=MON,TUE,WED,THU,FRI,SAT,SUN set COMMAND=cscr ...
- storm从入门到放弃(三),放弃使用《StreamId》特性。
序:StreamId是storm中实现DAG有向无环图的重要一个特性,但是从实际生产环境来看,这个功能其实蛮影响生产环境的稳定性的,我们系统在迭代时会带来整体服务的不可用. StreamId是stor ...
- 抵制克苏恩[Lydsy2017年4月月赛]
题目描述 小Q同学现在沉迷炉石传说不能自拔.他发现一张名为克苏恩的牌很不公平.如果你不玩炉石传说,不必担心,小Q同学会告诉你所有相关的细节.炉石传说是这样的一个游戏,每个玩家拥有一个 30 点血量的英 ...
- ASP.NET-页面间的数据传递
暑假期间做项目时遇到相关问题,总结如下,与大家分享 1.通过查询字符串传递 这种方式是将参数附加在网址的后面,传递数据简单,但容易暴露,一般用于传递一些简单的数据. 例如,在Default1.aspx ...
- C语言中全局变量存放在哪个位置?
今年软考的时候,遇到了这个题目,表示不解,然后考完之后去查了一下百度,才发现自己选错.全局变量存放在静态存储区,位置是固定的. 局部变量在栈空间,栈地址是不固定的.栈:就是那些由编译器在需要的时候分配 ...