注册用户,可以自动关注关联微信公众号关联小程序吗

微信二次开发,微信获取用户网页授权是如何判断用户是否为已关注公众号用户
20:49:27 +08:00用 Android 发布 · 15861 次点击
微信二次开发,网页授权环节如何判断用户是否关注公众号
现在微信获取网页授权,无论是否未关注用户都能获取授权。所以
1.如何判断用户是否为关注用户
2.如果成功判断用户非关注用户,通过链接引导用户关注是否违反微信相关规则
23 回复 &| &直到
11:02:47 +08:00
& & 21:00:16 +08:00
我能想到的办法是通过事先自己保存一份粉丝数据表,然后后面每关注一个都同步到这个表里。
然后用户授权之后,就可以查询知道是否关注。
但是获取粉丝列表 API 只有服务号有这个权限,所以如果是半路接手这个公众号的话,订阅号就无法使用这个方法。
但是如果是一个新公众号(或者现有粉丝不多,可以忽略),那么订阅号服务号都可以用这个方法。
& & 21:01:14 +08:00
诱导关注这个看运气,如果有人举报了,微信又审核通过认定你诱导了,那么就会受到惩罚。
& & 21:30:32 +08:00 via Android
@ 都有这个权限,接入开放平台,同步用户,记录新加入者。
& & 21:36:01 +08:00
@ 嗯,那也是一个办法
对于已经有订阅号的,可以新注册一个服务号(主要用于授权),然后都接入开放平台
& & 22:05:32 +08:00
微信有 2 种获取信息,一种是不许要授权的,只能获得 open_id ,
另外一种是需要用户授权的,就可以获取用户的昵称、城市、头像等,里面有个字段 subscribe 会告诉你用户是否关注了。
用户管理-》获取用户基本信息
& & 22:33:51 +08:00
@ 说的正确,有两种方式获取用户信息,其中一种是有个 subscribe 字段判断是否关注的。
现在就是诱导关注一下就好了!!
感谢大家的帮忙
& & 22:36:30 +08:00
@ 又是个诱导关注的坑
& & 23:03:31 +08:00
@ 诱导关注的话你要当心,腾讯遇到诱导关注的举报或者自己发现,会封公众号的,建议不要诱导太严重被举报,诱导的话最好用文字图片,这样安全点
& & 23:26:05 +08:00
@ 订阅号也可以获取粉丝列表的
& & 00:15:57 +08:00
没办法,客户要求吸粉,上司要求这样做,我都提出会封号的可能,看造化吧。
& & 00:21:21 +08:00
@ 这里有区别,我俩说的是订阅号没有权限的,他说得是服务好有权限的。
& & 00:38:16 +08:00
@ 是的,我做的是服务号
& & 00:40:10 +08:00
& & 06:13:57 +08:00 via Android
@ 但其实你说的这个获取用户信息的 API 只有在用户已经跟公众号有消息交互之后才能调用成功。
所以一个账号仅仅是微信网页上授权给你之后,是无法调用这个接口的。
& & 06:15:36 +08:00 via Android
网页授权获取用户信息接口里并没有返回是否关注信息
& & 07:14:41 +08:00
用户关注你的时候,微信服务器会向你的开发者服务器推送关注事件消息的,用户取消关注的时候也会给你推送事件消息。
有了这两点,配合网页授权获得的用户的 openId ,自然就能知道这个 openId 是否还在关注着。
& & 08:50:18 +08:00
开发平台账号绑定微信公众号账号。
然后就能在取用户信息的时候取到 subscribe
这个。这个字段就是是否关注公众号的
& & 10:43:09 +08:00
用户关注的时候就可以获取用户的信息,直接存数据库。
网页授权可以获取 unionid 和 openid ,如果数据库有用户信息,就可以看存的关注字段,如果没有信息,肯定是没有关注过。
因为是判断是否关注过,那只要每次用户关注公众号 就会自动把信息存库,就不存在其他方式登录不能判断了。
& & 10:52:18 +08:00 via Android
@ 但是有一个大前提是, 95%以上的已认证订阅号是没有“网页授权获取用户信息”这个 API 的权限的,只有已认证的服务号才有这个权限。
我手里有一个已认证的订阅号有这个权限,但那是各种机缘巧合下得到的,并且授权域名已经被写死了,在公众号后来无法修改(现在上面已经提示无权限,但其实我还是可以用那个授权域名来做授权),我不敢保证其他人有没有这种机缘巧合,所以保险一点说 95%,其实按照微信的逻辑,应该是订阅号 100%没有网页授权权限的。
& & 10:54:51 +08:00 via Android
所以如果楼主问的是怎么判断服务号的授权用户是否关注,当然有各种办法。
但如果问的是订阅号,就需要一些曲折的办法,比如上面提到的另外注册一个服务号用于授权,并且都加入微信开放平台,然后用 unionid 来做判断。
& & 11:00:16 +08:00
我不清楚订阅号和公众号有什么区别,目前不做微信开发了,
比如公众号的话,一个是微信自己有是否关注的字段、关注时间,
还有就是,用户关注后,微信发送到服务器的事件信息,关注和位关注的时间类型也是不一样的,那就可以自己做一个字段判断存起来。
因为自己也没做过订阅号,可以参考,如果没用的话见谅。
& & 11:01:48 +08:00 via Android
能看一下手册不
& & 11:02:47 +08:00 via Android
公众号是订阅号和服务号的统称
我最近半年做了几十款基于微信的小游戏小活动了,我可以保证我已经把所有的 API 都通读了,并且已经测试过所有 API 了
& · & 402 人在线 & 最高记录 3541 & · &
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.0 · 58ms · UTC 21:47 · PVG 05:47 · LAX 13:47 · JFK 16:47? Do have faith in what you're doing.分享到微信朋友圈:
打开微信,点击底部的“发现”,使用“扫一扫”打开网页后,点击右上角,可分享到朋友圈。
这家伙很懒,什么都没有留下!
最新文章12345678910你在吗。能私人QQ或者微信 添加一下我吗
dushexinyi977&请教一个问题,微信头条上端固定类似于通栏的广告,为啥在不同的手机上显示的会变形呢?苹果手机可以完整显示,其他手机,都只能显示一半,求解?&我看了文章2遍了,怎么感觉这么复杂,是真的复杂吗?&怎么二次开发?&我的微信公众号想群发用二维码扫验证,但是验证不过,说不说手机有问题?&请问输入6位的验证码了以后要多久才可以通过验证啊&我想问一下,为什么我的微信多客服,登陆不上呢?&运营者扫二维码后,显示是没通过认证是怎么回事&微商怎么做,想了解了解&你好 在另篇文章中看到14年注册的订阅号无法升级成服务号了是吗?只能重新注册?&
许亚成带你玩转微信公众号, All Rights Reserved.微信公众号用户与网站用户的绑定方案 - 简书
微信公众号用户与网站用户的绑定方案
您还可以全栈技术交流群(QQ群号:)
现在很多网站都已经建立了一套完整的用户账号体系,基于这套体系,再做其他应用的用户扩展就非常方便。例如,有了微软的outlook账户,就可以登录win8,可以登录微软的邮箱,还可以登录skype。同样地,一个Apple ID可以享受苹果的所有服务。正所谓,一个账号,处处使用。
对于企业,可能会有产品线通常有网站,app,微信公众号等。统一各产品线的账号体系,实现一个账号处处使用的目标是非常有必要的。网站和app使用同一个账号,不需要做任何多余的工作,客户只要有用户名密码即可登录。对于微信公众号,由于它是基于微信公众平台的一个应用,需要遵守平台的规则,所以需要做一些额外的工作才能达到账号互通的目标。
接下来我们就来讨论一下,如何做到微信公众号用户与网站用户的账号体系无缝对接。
当用户关注微信公众号后,会有一些交互,交互过程中可能需要获取到用户的身份信息(对应到网站的账户信息),例如在公众号中下单,查询订单等操作。那么现在问题来了:对于同一个用户,我们如何建立微信公众号用户(openid)与网站用户(userid)之间的对应关系。这个过程我们称之为绑定。
微信账号绑定
为了简化讨论,我总结了这样两个场景:
一、用户已注册成为我们的网站用户,但还未关注我们的微信公众号;
二、用户未注册,但已关注我们的微信公众号。
对于以上两种情况,下面分别讨论。
用户已注册成为我们的网站用户,但还未关注我们的微信公众号。如何方便用户关注公众号,同时又能把用户和微信公众号绑定在一起呢?很自然地就可以想到二维码这个入口。
最近几年,二维码的应用特别广泛。微信对二维码的推广及应用可以说是如鱼得水,微信二维码支付,微信二维码登录,微信二维码名片等等。可以说,二维码已经成为O2O中连接线上线下的重要纽带。小马哥也称"二维码是线上线下的一个关键入口"。
在这里,需要用户在网站上先登录,然后在合适的地方给出一个绑定入口,比如在个人设置里。绑定流程如下:
微信账号绑定流程
这里需要用到微信的二维码生成功能:
关于微信二维码,官方文档中这样说:
目前有2种类型的二维码,分别是临时二维码和永久二维码,前者有过期时间,有效期30天(2592000秒),但能够生成较多数量,后者无过期时间,数量较少(目前参数只支持1--100000,即10万个)。两种二维码分别适用于帐号绑定、用户来源统计等场景。
显然,我们使用临时二维码比较合适。每当用户刷新页面时,都可以生成一次。
由于二维码里可以带有场景值(scene_id),当用户扫描带有场景值的二维码后,微信服务器会把场景值推送给我们自己的服务器,我们拿到场景值后,就可以做验证和绑定逻辑。注意:生成二维码需要认证后的服务号。
一次完整的绑定流程应该是这样的:
①用户登录网页,点击“绑定微信账户”;
②后台使用微信接口,生成二维码链接返回给前端显示,并建立场景值A与用户的对应关系;
③用户扫描二维码,并点击关注微信公众号(假如已关注,直接跳到④);
④后台接收微信服务器推送的场景值A;
⑤后台根据场景值A,查询到对应的用户ID(依赖于②中建立的对应关系);
⑥建立用户userid与微信用户openid的对应关系;
⑦给用户的微信客户端推送“绑定成功”的提示;
⑧通知前台页面,绑定已完成,刷新页面,并返回一些微信账户信息。完成绑定。
其中,②中,“建立场景值A与用户之间的对应关系”,因为用户已经登录,所以用户点击“绑定微信账户”时,我们可以在后台分配一个临时场景值A与用户ID之间的对于关系。对于用户量不大的网站,可以直接使用php中的apc来缓存,并设置一个过期时间(与临时二维码过期时间设置成一样即可)。不要使用session来存储这种对应关系,因为④中是微信的推送事件,是不带session信息的,可以使用redis这类缓存或DB来存储。另,这里要使用临时二维码,数量上没有限制,只有时间限制,前台定时刷新即可。
⑧中,因为http没有推送机制,所以最简单的方法就是轮询去查询,是否已经完成绑定,完成绑定后再刷新页面。
完成绑定后,用户再跟我们的微信公众号交互时,根据openid可以找到对应的userid,即完成身份识别。对于之前提到的下单,查询订单,都是可以实现的。
整个绑定过程并不复杂,实现起来也没有太大的技术难度,最关键的是思路。
上述流程是用户已经在网页端登录了,也就是说已经注册用户。对于没有登录的情况,我们也可以做,在登录页面生成一个二维码,让用户用微信扫一扫。假如用户已经注册,则可以自动登录,并完成网站账号和微信账号的绑定;假如用户没有注册,则网页跳转到绑定账号页面,只要用户输入邮箱密码快速注册,同时也完成了网站账号和微信用户的绑定。实现技术方案跟上述类似。
场景二,对于用户来说操作略微复杂,因为它需要用户在微信客户端的网页中完成登录/注册。所以,假如注册过程太过复杂繁琐,不建议使用。
用户绑定账户流程
上述绑定流程集成了注册的过程,所以看起来比较复杂。实现起来也没有太大的难度,我们重点关注一下安全性方面的问题,因为绑定账户涉及到用户的信息安全,考虑两个问题:
1、如何防止链接被伪造
登录/注册的链接需要确保是我们自己的服务器生成的,其他人无法伪造。可以参考微信的验证服务器地址的有效性:
所以一个比较安全的登录链接可以是这样的:
校验签名的代码:
private function checkSignature()
$openid = $_GET["openid"];
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce, $openid);
sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
token值可以跟自己的微信公众号后台的一致,也可以换一个,建议换一个安全点。
2、如何确保openid是可信的
考虑这种场景:A用户进入登录页面,复制登录链接到浏览器,把openid替换为B用户的openid,使用A用户的账号密码登录。这样就把A用户的userid和B用户的openid绑定在一起了,显然是不安全的。
解决方案有很多,比如可以给openid加密,在加密方法保密的情况下,用户无法伪造加密后的openid。假如不想给openid加密,可以在生成链接时,在服务器端建立openid与签名signature的对应关系,假如用户篡改了openid就无法通过校验。
记住,永远不要轻信客户端传过来的信息。
完成绑定后,我们可以做一些简单的应用。比如,公司需要举办一个线下路演活动,该活动需要报名才能参加,并且需要签到。
这是一个典型的可以用微信实现的O2O例子。流程如下:
线下路演签到流程
其中,“绑定用户子流程”就是场景二中的流程。报名的交互在这里不再累述,每个业务都不一样。
对于一个已经完成绑定的用户,他参加一个活动,需要做的就是通过微信报名,然后扫描二维码签到,体验相当流畅。
如有任何问题,欢迎跟我交流!
http://hello1010.com/
X399平台点睛之笔ZENITHEXTREME引爆性能狂潮 近期,X399平台的顶级性能浮出水面,各家媒体的全方位测试犹如一支强心剂,让PC玩家大呼过瘾。我们惊喜地发现,国内外各大科技媒体一致选用了ROGZENITH EXTREME这款主板。它是华硕目前最顶级的X399芯片...
在我公司的项目中,同时开发了APP和微信服务号,需要做到APP和微信服务号的商城数据互通。什么个意思?首先说说,我们的APP采用的是微信登录,要实现的就是,用户在服务号的商城一系列操作所保存的数据,在APP中能同步,也就是说一个账号在2个地方都可以用,当然这个前提是保证你公...
问题描述 我们目前帮很多医院做公众号菜单,菜单跳转到我们的H5去预约挂号,预约挂号后我们需要把取号,停诊,等通知推送给用户。 开发过的公众号 健康青岛:服务号 番禺民生卡:服务号 阜阳健康在线:服务号 南阳市第一人民医院:订阅号 公众号接入步骤概述 接入微信公众平台开发,开...
网站应用绑定微信 场景: 对于企业,可能会有产品线通常有网站,app,微信公众号等。统一各产品线的账号体系,实现一个账号处处使用的目标是非常有必要的。现在很多网站都已经建立了一套完整的用户账号体系,基于这套体系,很多功能得已实现,最近我帮公司实现了微信绑定的功能,...
一、公众号介绍 微信公众号分类 订阅号:主要偏于为用户传达资讯(类似报纸杂志),认证前后都是每天只可以群发一条消息; 服务号:主要偏于服务交互(类似银行,114,提供服务查询),认证前后都是每个月可群发4条消息; 企业号:主要用于公司内部通讯使用,需要先有成员的通讯信息验证...
影片评分:3 推荐指数:3 影片评分:4 推荐指数:4 影片评分:3.5 推荐指数:3.5 影片评分:4.5 推荐指数:5 十佳。 特别喜欢这张图。 影片评分:3.5 推荐指数:4 影片评分:3.5-4 推荐指数:4 老头老太太们的爱情。 影片评分:5 推荐指数:5 超好评...
你是怎么度过你的业余时间的?我喜欢阅读纸质书,所以一般一次性会买很多本回来!想着至少一周可以看一本,然而,很多书都是翻了两页在那里,就再也没有去翻了!也并不是没有时间,只是感觉总是没有动力让我全心全意扎进书堆里面!毕竟手机精彩得多! 其实,工作不算繁忙,没有值班的时候都是准...
读完本书《拆掉思维的墙》后,你的一点点改变和收获? 读完这本书,收获了一句话:拆掉思维里的墙。 每当遇到困难,我就会想起这句话,就会去拼命去想我的思维里还有哪些墙阻碍我寻找到困难的解决方案。这样我就能把注意力放在我有哪些方案,我还有哪些资源,我还可以尝试哪些我没尝试过的途径...
画图片水印开启一个位图上下文,和view无关,所以不需要在drawRect方法中。位图上下文需要我们手动创建,最后需要关闭上下UIGraphicsEndImageContext()。UIGraphicsBeginImageContextWithOptions(尺寸,透明否,...查看: 19705|回复: 1
微信公众号绑定DZ账号后实现自动登录原理
本帖最后由 rohv 于
10:15 编辑
记录一下自己,微信登陆网站原理机制;欢迎指教。
运营中,一般会配合微信来使用;这个时候登陆比较麻烦,尤其是有的手机不保存coocle,就更加麻烦,每次来网站要重新登陆.
环境:discuz X
微信:公众号(服务号/订阅号);要有菜单功能;示范:微信服务号:拆车件
技术:会php代码
1、做好微信公众号与网站的链接,这个在mp.weixin.qq.com里有详细介绍;
2、申请dz帐号,并通过微信公众号对话框绑定该帐号【FromUserName】;
3、在菜单上设一个按钮(属性为click),点击后就递交到网站的php上了,php查询绑定表FromUserName;
&&这点最重要了:如果存在FromUserName;那生成一个url?login=md5字符串;就和一般的找回密码的链接一样;
& && && && && && && && &&&数据库记录字符串和时间,规定时间内点击有效。
4、点击字符串后,用dz内置的connect_login($uid)搞定;
//********************************************微信绑定后5分钟内登陆
if($mods == 'wxclick'){
if(!$key){$key='1234';}
$result= mysql_query(&select id,uid,user,logindate,loginyns from pre_web_weixin_bangding where logincode = '&.$key.&'&);
$row=mysql_fetch_array($result);
$id=$row['id'];
$uid=$row['uid'];
$user=$row['user'];
$times=$newtime - $row['logindate'];
if(!$uid){$str = '错误的登陆码!';}
if($uid && $row['loginyns'] !== '2'){
$str = '该指令已经登陆过,请重新使用微信发送指令。';}
if($uid && $times & 300){
$str = '已经超过了5分钟,请重新使用微信,发送指令。';}
if($uid && !$str){
$yn = connect_login($uid);
if($yn=='1'){
DB::update( &web_api_bangding&, array(&loginyns&=& 0) ,& id = &.$id);
$str = $user.'已成功登陆网站!';}
}
include template('diy:weixin/'.$web.'/login');
}
//********************************************微信绑定后5分钟内登陆end
include template('diy:weixin/'.$web.'/login');
//****************************************登录网站 但隐有错
function connect_login($uid) {
global $_G;
$member = DB::fetch_first('SELECT * FROM '.DB::table('common_member').' WHERE uid='.$uid);
if(!($member = getuserbyuid($uid, 1))) {
} else {
if(isset($member['_inarchive'])) {
C::t('common_member_archive')-&move_to_master($member['uid']);
}
}
require_once libfile('function/member');
$cookietime = 2592000;
setloginstatus($member, $cookietime);
0.jpg (60.58 KB, 下载次数: 11)
10:07 上传
1.jpg (21.61 KB, 下载次数: 9)
10:07 上传
2.jpg (23.75 KB, 下载次数: 10)
10:07 上传
3.jpg (58.52 KB, 下载次数: 9)
10:07 上传
貌似不错.....支持先.......
Powered by你的位置: >
公众账号在已经开通了关注权限功能的情况下,是否有接口可以获取到用户关联的手机号码呢?已能正常获取到用户的基本信息标签:获取用户信息yangwl6:36发布分享到weibo1回复#1{2}sanxi在5-2817:40回复开通关注权限的公众号加粉丝的前提就是在关注权限表中添加用户的手机号码。你这个是想说啥?yangwl8:50回复现在获取用户基本信息的接口只能获取到用户的昵称等简单的信息,是否有接口能提供用户关联的手机号码,如果不行的话,那么是否能针对在关注权限表中已经添加手机号码的这些用户,目前好像没有途径将关注的用户与这些号码做起关联?sanxi在5-2909:42回复@yangwl2001用户手机号码属于用户高度隐私,暂不提供。
精选微信公众账号
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
精选微信公众账号文章与您分享

我要回帖

更多关于 微信公众号关联 的文章

 

随机推荐