关于点击链接打开微信再跳转到微信内部浏览器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xuehuayous/article/details/81745447

最近一朋友的客户有这么一需求,引导用户去关注公众号。想这么干,通过网页跳转到微信并打开带有二维码的网页,用户长按识别二维码就可以关注了。

想法很好,对于这种方式我是怀疑的,于是去查资料。微信有个协议可以实现跳转,如下:

weixin://dl/business/?ticket=

关键就是ticket对应的参数是什么,这里的ticket和我们要跳转的url有什么关系呢?

  • ticket对应的参数就是我们要跳转网页的标记;
  • ticket需要动态获取,有效期大约10分钟;
  • tieket不是谁都可以获取,微信只授权给了一些合作商;

《点击链接打开微信再跳转到微信内部浏览器的解决方案》中,发现了微信动态获取ticket的接口:

http://wq.jd.com/mjgj/link/GetOpenLink?callback=getOpenLink&rurl=urlencode(要跳转的链接)

但是京东只能跳转到jd.com域名的地址,我们用淘宝的地址试试:

https://www.taobao.com UrlEncode之后 https%3a%2f%2fwww.taobao.com,然后拼到接口里。

http://wq.jd.com/mjgj/link/GetOpenLink?callback=getOpenLink&rurl=https%3a%2f%2fwww.taobao.com

得到如下:

try{getOpenLink({"errcode":0,"openlink":"weixin://dl/business/?ticket=t93f088d67f8e629a854e878a19f31cbd"});}catch(e){}

把openlink放到html中:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
    <title>打开微信</title>
  </head>
  <body>
    <a href="weixin://dl/business/?ticket=t93f088d67f8e629a854e878a19f31cbd" class="dl-btn" id="download">打开微信</a> 
  </body>
</html>

通过adb把上面的html push到手机内,用浏览器打开,点击跳转,发现跳转到了微信中,并打开了微信京东首页。

为什么会这样呢?我们写的是淘宝首页,结果跳转到了京东。应该是京东的接口做了校验,非京东域名下的都跳转到自家的首页。

当然微信不仅给了京东跳转的方式、页授权了艺龙、携程等合作商。网上很多号称给他钱可以给你实现跳转的大多都是找合作商的漏洞,借鸡生蛋,用别人的服务生成ticket实现跳转。当然也有那微信跳转服务骗人的,钱给了,人跑了。所以如果玩玩可以找找别人的漏洞,如果商业用还是醒醒吧,不靠谱。

猜你喜欢

转载自blog.csdn.net/xuehuayous/article/details/81745447
今日推荐