本文仅用于技术研究
(商用联系我,全网最低价格……)
因为某些因素,需要研究一下手机网页直接打开微信应用,并在微信中进入指定页面;我简单思考了一下。对于手机而言,除了传统的http等一系列的网络请求外,还有很多自定义协议,这些协议多服务于应用程序与应用程序之间的通信。利用一些电商app跳转到支付环节可以看到会打开支付宝或者微信的app。直接进入到他们的支付界面,又跳转回来,这些都是应用间通信的范畴。当然如果把网页浏览器换成应用程序,这里也是成立的。
如果微信开放的有指定的协议,就可以通过scheme进行通信。经过研究后,觉得思路是简单的。但是如果要自我实现还是绕了很多弯路。下面是研究的过程:
1.现有市场技术
先在官网上找了一些资料,官方开的一些weixin://XXX…… 大多是不能用的。
目标最终锁定到这个协议中:
weixin://dl/business/?ticket=XXX
ticket后面跟着一个密钥
找到一个示例是JD遗留的接口。见前者这个密钥获取是通过
https://wq.jd.com/mjgj/link/GetOpenLink?callback=getOpenLink&rurl=wq.jd.com/15646.gif
通过链接的表面字段来看,这个地址是一个获取跳转链接的接口;传递参数是:落地地址
测试该接口#返回参数
try{getOpenLink({"errcode":0,"openlink":"weixin://dl/business/?ticket=tb3b7fe85149528da38cdcf70b8e8f1a8"});}catch(e){}
在这个回调数据里发现里面已经包含了这个协议。不过不要高兴太早, 测试发现,这个请求地址是有检验的,如果是非法落地页,可以返回数据,但是跳转到微信后落在了京东的首页;)
但是我们可以从这个接口中分析出很多信息比如
- 网页调起微信,并跳转是需要授权的,授权具有一定时间限制。
- 这个ticket至少有两重作用:①身份识别,是合作方;②可以映射出合作的落地页信息
- 由上一条可知,微信要达到合作方的指定页面,要么提前存储这个落地映射关系,在微信内部进行重定向;或者合作方提供的单独的接口,在通过这个ticket获取到对应到地址,由合作方进行重定向。这两种都有可能,第一种,微信自身的安全系数会提高,不会被恶意篡改;第二种方案,微信的交互环节就可以精简化,制定一套规则就好
2. 17u(同程)渠道探索
正如上面提到的,jd这个接口做了检验,无法完美实现我们的需求。所以只能另辟蹊径。后来见到有人用同程的链接做过,我也就准备拿同程做测试
一个同程的活动的测试例子,完成游戏,看到右上角的瞬移,就会发现可以直接调起微信
https://mp.weixin.qq.com/s/isGhYmJHCPyntdqVkYDb2A
https://tchyl.wx.h5work.com/?s=1
通过抓接口可以发现,这里面藏的也是这个协议
同程活动跳转scheme
跳转链接地址 猜测 可能是内部的一个跳转链接
https://wx.17u.cn/marketactivity/platact/5d419dc393a1c34f24676e6fe33a359e
11.27跳转ticket
weixin://dl/business/?ticket=t3c4c73af83aee3d2ec4e9826817a526d
综上
一般都是合作商家和微信指定的写,把自己的内容放到合法的域名下面,通过检验,就可以实现自动跳转。
基本已经实现该效果(后面就是去调试各种接口),如果感兴趣,私信。
网友评论