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

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

言归正传,所有可以唤起微信的地址最终都会被转化为:“ 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. MySQL中varchar最大长度是多少?

    一. varchar存储规则: 4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) 5.0版本以上,varchar(20),指的是20字符,无 ...

  2. C++中的内存区域及其性能特征

    首先须要指出的是.我们通经常使用"堆"和"自由存储"这两个术语来区分两种不同类型的动态分配内存. 1.常量数据:常量数据区域主要用于存储字符串以及其它在编译期就 ...

  3. MySQL之——崩溃-修复损坏的innodb:innodb_force_recovery

    转: https://blog.csdn.net/l1028386804/article/details/77199194 一.问题描述 今天在线运行的一个mysql崩溃了. 查看错误日志,如下: - ...

  4. 同一局域网运行两套LVS

    两套LVS的ID必须不一致 ,原文:  http://blog.chinaunix.net/uid-29578485-id-5671910.html 在LVS服务器中修改配置文件 vi /etc/ke ...

  5. push到Git时常见的失败

           之前学用git的时候,不想记命令,总是gui和bash交互的用,但是发现总出现push失败的问题,用gui来fetch的时候,显示下拉成功,但事实上并没有,这时候得在bash上用命令来下 ...

  6. (转)Docker镜像构建上下文(Context)

    镜像构建上下文(Context) Docker在构建镜像时,如果注意,会看到 docker build 命令最后有一个 ... 表示当前目录,而 Dockerfile 就在当前目录,因此不少初学者以为 ...

  7. solr创建业务域以及指定中文分析器IK

    第一步:把中文分析器添加到工程中. 1.把IKAnalyzer2012FF_u1.jar添加到solr工程的lib目录下 2.把扩展词典.配置文件放到solr工程的WEB-INF/classes目录下 ...

  8. Py中axis理解【转载】

    转载:https://blog.csdn.net/yaoqi_isee/article/details/77714570 1.理解 numpy当中axis的值表示的是这个多维数组维度的下标,比如有一个 ...

  9. Git Your branch is ahead of 'origin/master' by X commits解决方法

    (1)方法1:git fetch origin (2)方法2(代码还需要):git push origin (3)方法3 (代码不需要):git reset --hard origin/$branch ...

  10. Dotfuscator代码混淆工具的使用

    关于Dotfuscator,VS自带了一个社区版的源代码保护工具,不过它只有基本的混淆命名的功能.专业版功能很多,可以混淆流程,密字符串,加入水印,程序签名等. 工具/原料   Dotfuscator ...