主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情! |
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作 |
现在很多活动都是引导用户关注微信官方账号,才能参与活动。如何判断用户是否关注了微信官方账号,其实很简单。根据这篇文章,你不会再担心了。本文的php代码对此进行了详细解释。
一、微信公众平台配置1。获取appid,appsecret,添加白名单,登录微信公众平台,进入基本配置。开发中需要appId和appsecret两个参数(appsecret只显示一次,需要保存,否则需要重置获取)。获取access_token时需要添加IP白名单。
点击查看
点击修改
2.添加网页授权进入微信官方账号设置= "功能设置= "网页授权域名点击设置,在输入框中输入授权回调页面的域名,参考点1(只能填写一个),下载点3中的txt文档,上传到服务器的根目录。
二、php后端实现1。获取全局令牌。此令牌的有效期为2小时,可以临时存储。到期后需要重新收购。PS:项目中一定要用同一个接口,不然容易互相刷,导致过期。
公共静态函数getToken($appid,$ app secret){ $ URL = # 39;https://api.weixin.qq.com/cgi-bin/token?格兰特类型=客户证书 appid = # 39.$appid。' 秘密= # 39;.$ appsecretreturn Curl::call web server($ URL);}正确返回结果:{ " access _ token : 访问令牌 , 过期时间为 :7200}返回结果参数描述:参数描述:全局令牌有效时间expires _ in access _ token获取的凭证,单位:秒。错误返回结果:{ 错误代码 :40013, errmsg : 无效的appid}返回结果参数描述:返回码表示-1系统繁忙,请开发者稍后再试。0请求成功,40001 AppSecret错误或AppSecret不属于此微信官方账号。请确认AppSecret 40002的正确性。请确保grant_type字段的值为client_credential 40164。调用接口的IP地址不在白名单中。请在接口IP白名单中设置它。(小程序和小游戏调用不要求IP地址在白名单中。2.获取用户关联微信官方账号的openid分为两步。首先获取用户对于微信官方账号的授权码,然后用这个码获取临时access_token和openid。
获取用户授权码
公共静态函数getCode($appId,$redirect_uri,$state=1,$ scope = # 39snsapi _ base # 39,$ response _ type = # 39代码 # 39;){ $ url = # 39https://open.weixin.qq.com/connect/oauth2/authorize? appid = # 39;.$appId。' redirect _ uri = # 39.$redirect_uri。' response _ type = # 39.$response_type。' scope = # 39.$scope。' state = # 39.$州。'#微信_重定向 # 39;;页眉( # 39;地点: # 39;.$url,true,301);}正确返回结果:代码code返回,跳转回调页面$redirect_uri返回结果不正确:{ 错误代码 :10003, errmsg : redirect_uri域名与后台配置不一致”}返回结果参数描述:返回代码描述10003 redirect_uri域名与后台配置不一致10004此微信官方账号被封禁10005此微信官方账号没有这些范围的权限10006。你必须注意这个测试编号10009。操作过于频繁。,请稍后再试。10010范围不能为空。10011 redirect_uri不能为空。10012 appid不能为空。10013状态不能为空。10015微信官方账号不是授权的第三方平台。请检查授权状态10016不支持微信开放平台的Appid。请将微信官方账号Appid通过getCode获取的代码兑换为网页授权的access_token和openid。
公共静态函数getaccessstoken($ code,$appid,$appsecret,$ grant _ type = # 39授权_代码 # 39;){ $ url = # 39https://api.weixin.qq.com/sns/oauth2/access_token? appid = # 39;.$appid。' 秘密= # 39;.$appsecret。' code = # 39.$code。' grant _ type = # 39.$grant_type。'';return Curl::call web server($ URL);}正确返回结果:{ " access _ token : 访问令牌 , 过期时间为 :7200, 刷新令牌 : 刷新令牌 , openid : OPENID , 范围 : 范围 }返回参数描述参数描述access_token网页授权接口调用凭证。注意:此access_token与基金会支持的access_token不同。expires_in access_token接口调用凭证超时,单位(秒)refresh_token用户刷新access_token openid用户的唯一ID。请注意,当用户在不关注微信官方账号的情况下访问微信官方账号中的网页时,也会创建一个用户授权的范围,并且是微信官方账号中唯一的OpenID范围用户。使用逗号(,)分隔错误返回结果:{ 错误代码 :40029, errmsg : 无效代码 }3.获取用户信息。使用步骤2中获得的openId和步骤1中获得的令牌来获取用户信息。
公共静态函数getUserInfo($openId,$ token){ $ URL = # 39;https://api.weixin.qq.com/cgi-bin/user/info?接入令牌= # 39;.$token。' openid = # 39.$openId。' lang = zh _ CN # 39;return Curl::call web server($ query URL, # 39;', '获取 # 39;);}正确返回结果:{ " subscribe :1, openid : o6 _ bmjrptlm 6 _ 2s gvt 7 hmzopfl 2m ;, 昵称 : 乐队 , 性 :1, 语言 : zh _ CN , 城市 : 广州”, 省 : 广东, ;国家 : 中国”、 headimgurl : http://third wx . qlogo . cn/mmopen/g3monuztnhkdmzicilib x 6 iafqac 56 vxls ufpb 6n 5 wks yvy 0 chqkkiajsgq 1 dzutogvllrhjberq 4 emsv 84 eavhiaiceqxibjxcfhe/0 ;, subscribe _ time :1382694957, unionid : o6 _ bmasdasdsad 6 _ 2s gvt 7 hmzopfl ; 备注 : , groupid :0, tagid _ list :, 订阅_场景 : ADD _ SCENE _ QR _ CODE , qr _ scene :98765, qr _ scene _ str : }返回参数描述:参数描述表示订阅用户是否订阅微信官方账号ID。值为0时,表示用户未关注微信官方账号,无法获取其余信息。openid用户的标识,微信官方账号中唯一昵称用户的昵称,性用户的性别,值为1时为男性,值为2时为女性。值为0时,为未知城市用户所在城市的语言,国家用户所在国家的语言,省语言用户所在省份的语言。简体中文为zh_CN headimgurl用户头像,最后一个值代表正方形头像的大小(有0、46、64、96、132个值可供选择,0代表640*640正方形头像)。当用户没有头像时,此项为空。如果用户更改头像,原头像网址将失效。Subscribe_time用户的关注时间,这是一个时间戳。如果用户关注过多次,取最后一次关注。只有用户将微信官方账号与微信开放平台账号绑定后,才会出现unionid。备注微信官方账号运营者给粉丝的备注,微信官方账号运营者可以在微信公众平台的用户管理界面给粉丝添加备注。groupid:用户的GroupID(兼容旧的用户分组接口)tagid_list:用户的标记id列表subscribe_scene返回用户关注的频道来源。ADD_SCENE_SEARCH微信官方账号搜索、ADD_SCENE_ACCOUNT_MIGRATION微信官方账号迁移、ADD_SCENE_PROFILE_CARD名片分享、ADD_SCENE_QR_CODE扫描二维码、点击ADD_SCENEPROFILE链接的图文页面中的名称、图文页面右上角的ADD_SCENE_PROFILE_ITEM菜单、ADD _ SCENE _支付后关注、ADD_SCENE_OTHERS其他qr_scene二维码扫描场景(开发者自定义)qr_scene_str二维码扫描场景描述(开发者-错误代码 :40013, errmsg : 无效的appid} 3.你是否用判断关注过,这里是入口:
公共函数isConcern($appId,$ app secret){ $ param = # 39;';//如果有参数$ this->: getCode($appId,U( # 39;回拨 # 39;, 'param = # 39.$param),1, # 39;snsapi _ base # 39);}授权后回电
公共函数callback(){ $ is concern = 0;$ code = $ this - gt;_ get( # 39;代码 # 39;);$ param = $ this - gt;_ get( # 39;param # 39);$ appId = C( # 39;appId # 39);//在config( # 39;appSecret # 39);$ accessTokenInfo = $ this - gt;getAccessToken($code,$appId,$ app secret);$ openId = $ accessTokenInfo[ # 39;openid # 39];$ accessToken = $ accessTokenInfo[ # 39;访问令牌 # 39;];$ token = $ this - gt;getToken($appId,$ app secret);$ userInfo = $ this - gt;getUserInfo($openId,$ token[ # 39;访问令牌 # 39;]);if($ userInfo[ # 39;订阅 # 39;]= = 1){ $ this - gt;分配( # 39;userInfo # 39,$ userInfo);$ is concern = 1;//已关注} else { $ is concern = 0;//没有关注} $ this ->;分配( # 39;openid # 39,$ openId);$ this - gt;显示( # 39;第#39页;);}这时候就可以在页面上得到userInfo和isconcern。当isconcern为1时,表示您已经关注了微信官方账号;不然你还没重视。
相关建议:
微信官方账号开发微信微信官方账号,判断用户是否关注了php代码解析。
判断php字符类型PHP判断用户是否关注微信微信官方账号。
视频:微信官方账号的关注和注销操作-0基础微信开发介绍以上就是代码好用。你可以通过几步判断用户是否关注了微信官方账号的详细内容。更多信息请关注主机参考其他相关文章!
这几篇文章你可能也喜欢:
- 如何使用微信小程序中的车牌号输入法(如何使用微信小程序中的车牌号输入法进行打印)
- 什么是骨架屏?
- 微信小程序开发中var that =this的基本用法
- 回想一下Android智能手机上的微信小程序白屏问题(手机上打开小程序时白屏)。
- 可以转发微信小程序给好友(微信小程序可以转发分享到朋友圈吗?)
本文由主机参考刊发,转载请注明:代码还是比较好用的,几步就可以判断用户是否关注了微信官方账号(用户是否关注了微信官方账号)。 https://zhujicankao.com/79932.html
评论前必须登录!
注册