相信很多朋友遇到过有些网站,可以直接通过一个连接就能让你的手机打开微信且跳转到某个指定的页面,许多程序员很好奇到底是怎么实现的,到处求这种方法的源码,在文本中我会介绍及剖析这种跳转实现的原理。

微信是个比较封闭的环境,至于为什么封闭,相信大家都了解,在一些应用场景中,我们要用到外部浏览器跳转到微信内部打开,比如添加好友、微信支付等,在微信内部环境直接长按二维码就能实现,确实方便很多。

言归正传,所有可以唤起微信的地址最终都会被转化为:“ 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,够用吗?

转自:https://www.jianshu.com/p/8f07946d7d6a


最近研究这个ticket,加了几个卖源码的QQ,有一个要500,一个要2000,还有一个要2W,呵呵,算 了,这个东西对我来说也没什么用

从手机浏览器或者 APP 中跳转到微信并跳转到指定页原理及行业内幕详解的更多相关文章

  1. 通过手机浏览器打开APP或者跳转到下载页面.md

    目录 通过手机浏览器打开APP或者跳转到下载页面 添加 schemes 网页设置 参考链接 通过手机浏览器打开APP或者跳转到下载页面 以下仅展示最简单的例子及关键代码 由于硬件条件有限,仅测试了 A ...

  2. 微信内嵌浏览器打开手机浏览器下载APP(APK)的方法

    想必大家会经常碰到网页链接在微信内无法打开和微信内无法打开app下载页的情况.通常这种情况微信会给个提示 “已停止访问该网址” ,那么导致这个情况的因素有哪些呢,主要有以下四点 1.网页链接被举报次数 ...

  3. Java中对象、对象引用、堆、栈、值传递以及引用传递的详解

    Java中对象.对象引用.堆.栈.值传递以及引用传递的详解 1.对象和对象引用的差别: (1).对象: 万物皆对象.对象是类的实例. 在Java中new是用来在堆上创建对象用的. 一个对象能够被多个引 ...

  4. 利用浏览器调试APP中的H5页面

    安卓手机的情况下,可以用chrome浏览器来调试. 打开地址: chrome://inspect/#devices 手机用USB数据线连接电脑,并启动USB调试模式. 只要在APP中打开H5页面,界面 ...

  5. 手机浏览器下IScroll中click事件

    产品的h5页面几乎都使用了iscroll插件,如果a标签在iscroll里,在部分手机浏览器中会出现无法点击的情况,不管是绑定click事件还是使用a标签的href属性.href属性偶尔还会能点击,c ...

  6. 手机页面或是APP中减少使用setTimeout和setInterval,因为他们会导致页面卡顿

    1.setTimeout致使页面的卡顿或是不流畅,打乱模块的生命周期 ,还有setTimeout其实是很难调试的. 当一个页面有众多js代码的时候,setTimeout就是导致页面的卡顿. var s ...

  7. Android中滑屏实现----手把手教你如何实现触摸滑屏以及Scroller类详解

    前言:  虽然本文标题的有点标题党的感觉,但无论如何,通过这篇文章的学习以及你自己的实践认知,写个简单的滑屏小 Demo还是just so so的. 友情提示: 在继续往下面读之前,希望您对以下知识点 ...

  8. weixin://connectToFreeWifi/协议如何跳转到微信客户端打开在wifi指定任意网页?

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  9. weixin://connectToFreeWifi/?apKey=协议如何跳转到微信客户端打开在wifi指定任意网页?

    微信门店wifi接口,任意站跳转,跳转二维码长按识别加粉,接口支持动态传参数,支持微信支付等特殊接口对接. 代码如下使用 <head> <meta charset="utf ...

随机推荐

  1. int(1)和int(11)是否有区别?

    MySQL类型关键字后面的括号内指定整数值的显示宽度(例如,INT(11)).该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度.显示宽度并不限制可以在列内保存的值的范围,也不限制超过 ...

  2. Linux dmidecode 命令

    当我们需要获取机器硬件信息时,可使用linux系统自带的dmidecode工具进行查询. dmidecode 用于获取服务器的硬件信息,通常是在不打开计算机机箱的情况下使用该命令来查找硬件详细信息 这 ...

  3. 什么是url?

    什么是URL? URL是统一资源定位器(Uniform Resource Locator)的缩写,也被称为网页地址,是因特网上标准的资源的地址. URL举例 http://www.sohu.com/s ...

  4. vs2015智能提示英文改为中文

    vs2015智能提示英文改为中文 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework 进入 \v ...

  5. 运维自动化工具ansible

    企业级自动化运维工具应用实战ansible 公司计划在年底做一次大型市场促销活动,全面冲刺下交易额,为明年的上市做准备.公司要求各业务组对年底大促做准备,运维部要求所有业务容量进行三倍的扩容,并搭建出 ...

  6. 下载以及安装VMware Player Pro 64位

    1.下载地址:https://download3.vmware.com/software/wkst/file/VMware-workstation-full-14.0.0-6661328.exe 2. ...

  7. internal table operation

    1: the basic operation *&---------------------------------------------------------------------* ...

  8. Java获取环境变量

    Java 获取环境变量Java 获取环境变量的方式很简单: System.getEnv()  得到所有的环境变量System.getEnv(key) 得到某个环境变量的值 Map map = Syst ...

  9. synchronized的简单用法

    synchronized 锁定要操作的对象: emp: synchronized(要锁定的对象){ //要做的动作 }

  10. ODBC是什么

    ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一 ...