相信很多朋友遇到过有些网站,可以直接通过一个连接就能让你的手机打开微信且跳转到某个指定的页面,许多程序员很好奇到底是怎么实现的,到处求这种方法的源码,在文本中我会介绍及剖析这种跳转实现的原理。
微信是个比较封闭的环境,至于为什么封闭,相信大家都了解,在一些应用场景中,我们要用到外部浏览器跳转到微信内部打开,比如添加好友、微信支付等,在微信内部环境直接长按二维码就能实现,确实方便很多。
言归正传,所有可以唤起微信的地址最终都会被转化为:“ weixin://...ticket=...”这种格式,其他的就是再怎么写,最终都是会走到获取 ticket 这一步,前面的“ weixin://...”是唤起微信的标准开头,主要用于在外部环境唤起微信;
在这插一句嘴,有人问为什么微博或者贴吧等 APP 里不能用这种格式的链接唤起微信呢?道理很简单,因为他们在制作 APP 的时候没有加这个唤起指令,换句话说,他们不想让用户跳到微信去,(都是流量 APP,不想自己的流量外流也是正常的),现在基本上大部分浏览器都支持这个唤起微信的指令,所以内嵌有浏览器的 APP 基本都能唤起微信,就可以支持微信跳转了。
再说下后面的 ticket,这里是关键,链接传到微信后,微信会判断是不是要让你在里面打开,就是用的这个 ticket 参数,,微信识别是否合法,都是判断 ticket,正常情况下,跟微信合作的大平台,微信会放给他们请求和分配合法 ticket 的接口。
市面上大部分公司或个人是没有这个待遇的,但也有这样的需求,怎么办呢?就是用各种手段从那些合作平台那“借用 ticket ”,严格来说,一个 ticket 产生后,有效时间只有 5 分钟,过了 5 分钟,会重新分配一个新的,所以有一个 ticket 也是没用的,必须要能对接其实时获取的接口,这就是为什么很多人奇怪为什么第一次能打开,过几分钟就失效打不开了,那是因为 ticket 的时间过期了。
得到的方法有很多,各大技术团队或个人,破解的、或者内部有人;做技术这行,其实圈子也不算大,如果刚好有同事在京东上班,就可以找他搞个接口给你用。如果没有后台,就靠技术破解了,这个有点运气成分的,不但要找到漏洞,还得能遇到稳定的漏洞,要不然过段时间就不能用了;我上次搞了个活动页活动结束,就没了。
比如京东,最近做了个活动,活动页带这个跳转,就去研究这个页面里面的漏洞,然后将其 ticket 接口截取下来自己用,但活动一旦结束,页面关闭,就没得玩了;所以要有专门的人去找各大合作伙伴的漏洞,拿他们近期出的活动页过来研究,截取他们的 ticket 获取方法,再变成接口拿出来用,这种破解不是说技术好就一定实现,主要靠运气。
很多人想研究这种跳转的原理,其实没有原理,就只是看你怎么拿到 ticket 而已
道理很简单,就像你问怎么开锁一样,不是开锁技术牛逼,是他们能找到原配的钥匙去配,等别人换了锁,又得重新找钥匙拿来配如果以后有人给你卖源码,说包一年,要么是骗子,要么,他用他的接口嵌入到了源码里,给你用了一年,别人随时都能停掉。
有需求就有利益,这就是产业链产生的雏形,很多人开始在网上叫卖微信跳转服务,而且这行都是按月卖的,现在知道为什么吗?因为懂行的都知道,说不定哪天就都不能用了,所以即使你口碑信用再好,破解被人封了,或者获取 ticket 的来源没有了,也没办法了,按月买,是比较保险的方式。
问:现在能实现这个功能的网站不多吧?
答:多,都是相互借用接口的,研究破解的源头就那么十几家,其他的,相当于代理吧,比如你在我这开了个接口,只限制域名不限制跳转次数,你也可以做一家一样的,所以很多人在我们这开户,去自己建网站赚差价,市面上价格 200-1000 不等就是这么来的。
问:如果真的要用到这个功能,怎么选择靠谱点的合作伙伴?
答:主要是看运气,再有就是不断地去试,第一看稳定性,靠谱点的会多备几个接口,防止哪家不能用了还能及时更换备用接口;你平时跳转的时候看看是不是只有一家还是可能出现好几家,jd,elong 等;第二看价格,这个不一定的,有的是因为倒手太多成本高才价格高的,有的是因为多备用好几个接口服务稳定才提高价格的,只能综合来看吧,高于 300 的价格就不要考虑了。
PS:其实个人也可以去微信申请接口的,只不过只适用于小范围,每天只分配 500 个 ticket,够用吗?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.