openid
是什么,一个微信号与一个公众号对应一个固定不变的openid
。因此一个微信号在一个公众号下的openid
是不变的,若是换了一个对应的公众号,那就是另外一个openid
了。且只有在微信自带浏览器中打开的项目才可获取到。web
UnionID
是什么,若是开发者拥有多个移动应用,网站应用,公众号和小程序,能够经过UnionID来区分用户的惟一性,由于只要是同一个微信开发平台帐号下的移动应用,网站应用,公众号和小程序,用户的UnionID是惟一的。换句话说,同一个用户,对同一个微信开发平台的不一样应用,UnionID是惟一的。json
准备条件,一个公众号、一个外网可访问的域名、该公众号的AppID
和 AppSecret
、设置网页受权域名(登录公众平台 设置----->公众号设置------>功能设置----->网页受权域名 按步骤操做并设置就好),这个域名就是你获取openid的web项目发布的域名,这里注意服务器请必定跑在80端口。小程序
// 受权访问连接 https://open.weixin.qq.com/connect/oauth2/authorize?appid=XXXXXXXX&redirect_uri=http://test-recycle-h5.jxypapp.com&response_type=code&scope=snsapi_base&state=%7B%22id%22%3D%221%22%2C%22name%22%3A%22xiaoming%22%7D#wechat_redirect // 受权成功后,重定向连接 http://test-recycle-h5.jxypapp.com/?code=0215ZMRH0rVjli29oYTH0exORH05ZMRz&state=%7B%22id%22%3D%221%22%2C%22name%22%3A%22xiaoming%22%7D
参数解释:api
appid:
公众号appid.redirect_uri:
填写微信识别成功以后,跳转的url
(须要encode编码)。response_type:
就填code
,不用修改。scope:
可填(snsapi_base (静默受权)和snsapi_userinfo(弹出受权页面的受权方式)两个值,其中前者为只得到openid,不须要用户受权,后者为得到用户信息,须要用户受权)。state:
自定义参数,重定向后会带上state参数,开发者能够填写a-zA-Z0-9
的参数值,最多128
字节(传json
数据须要encode
编码)。#wechat_redirect:
指定在微信内跳转,平时能够不填,在302重定向时,必须填!注意事项:跨域
redirect_uri
须要encode
编码,不然页面会显示“redirect_ur参数错误!”
!redirect_uri
网址的域名必须是,你在微信公众平台帐号中填写受权回调页的域名,具体须要登陆微信公众平台后台,在用户信息那里点击修改,填上本身的域名便可,注意:受权回调页中的域名没有http://
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
参数解释:浏览器
appid
:同上secret
:同上code
:填写第一步获取的code
参数grant_type
:填写为authorization_code
注意事项:服务器
返回结果:微信
{ "access_token":"ACCESS_TOKEN", "expires_in":7200, "refresh_token":"REFRESH_TOKEN", "openid":"OPENID", "scope":"SCOPE" }
access_token
是公众号的全局惟一接口调用凭据,公众号调用各接口时都需使用access_token
。开发者须要进行妥善保存。access_token
的存储至少要保留512个字符空间。access_token
的有效期目前为2个小时,需定时刷新,重复获取将致使上次获取的access_token
失效。微信开发
接口说明app
https请求方式: GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
参数说明
grant_type
:获取access_token
填写client_credential
appid
:第三方用户惟一凭证secret
:第三方用户惟一凭证密钥,即appsecret
返回结果
{"access_token":"ACCESS_TOKEN","expires_in":7200}
接口调用请求说明 http请求方式: GET https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
参数解释:
access_token
调用接口凭证 ,第三步获取的access_tokenopenid
普通用户的标识,对当前公众号惟一,第二步获取的openidlang
返回国家地区语言版本,zh_CN
简体,zh_TW
繁体,en
英语{ "subscribe": 1, // 是否关注此公共号,0-未关注,1-关注 "openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M", //用户的标识,对当前公众号惟一 "nickname": "Band", // 用户的昵称 "sex": 1, //用户的性别,值为1时是男性,值为2时是女性,值为0时是未知 "language": "zh_CN", // 用户的语言,简体中文为zh_CN "city": "广州", // 用户所在城市 "province": "广东", // 用户所在省份 "country": "中国", // 用户所在国家 "headimgurl":"http://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0", //用户头像 "subscribe_time": 1382694957, // 用户关注时间,为时间戳。若是用户曾屡次关注,则取最后关注时间 "unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL" ,//只有在用户将公众号绑定到微信开放平台账号后,才会出现该字段。 "remark": "", // 公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注 "groupid": 0, // 用户所在的分组ID(兼容旧的用户分组接口) "tagid_list":[128,2], 用户被打上的标签ID列表 "subscribe_scene": "ADD_SCENE_QR_CODE", //返回用户关注的渠道来源,ADD_SCENE_SEARCH 公众号搜索,ADD_SCENE_ACCOUNT_MIGRATION 公众号迁移,ADD_SCENE_PROFILE_CARD 名片分享,ADD_SCENE_QR_CODE 扫描二维码,ADD_SCENEPROFILE LINK 图文页内名称点击,ADD_SCENE_PROFILE_ITEM 图文页右上角菜单,ADD_SCENE_PAID 支付后关注,ADD_SCENE_OTHERS 其余 "qr_scene": 98765, "qr_scene_str": "" }