通过分析发现需要应用到微信提供的 URL Scheme。
目前微信提供的 URL Scheme详细参数如下:截至目前为部分已经无法使用。下图来自网络。
微信 微信 weixin:// 发起群聊 weixin://dl/groupchat 通讯录 添加朋友 weixin://dl/add 隐藏入口 上报日志 weixin://dl/log 隐藏入口 故障修复 搜索 :recover 新的朋友 weixin://dl/recommendation 群聊 weixin://dl/groups 标签 weixin://dl/tags 公众号 weixin://dl/officialaccounts 发现 朋友圈 weixin://dl/moments 扫一扫 weixin://dl/scan 或 已停用 weixin://scanqrcode 购物 weixin://dl/shopping 游戏 weixin://dl/games 我 个人信息 weixin://dl/profile 名字 weixin://dl/setname 我的二维码 weixin://dl/myQRcode 我的地址 weixin://dl/myaddress 相册 weixin://dl/posts 收藏 weixin://dl/favorites 已停用 钱包 weixin://dl/wallet 优惠券 weixin://dl/card 表情 weixin://dl/stickers 设置 weixin://dl/settings 已停用 帐号与安全 weixin://dl/security QQ 号 weixin://dl/bindqq 手机号 weixin://dl/bindmobile 邮箱地址 weixin://dl/bindemail 帐号保护 weixin://dl/protection 新消息通知 weixin://dl/notifications 已停用 隐私 weixin://dl/privacy 通讯录黑名单 weixin://dl/blacklist 不让他(她)看我的朋友圈 weixin://dl/hidemoments 不看他(她)的朋友圈 weixin://dl/blockmoments 通用 weixin://dl/general 多语言 weixin://dl/languages 字体大小 weixin://dl/textsize 我的表情 weixin://dl/stickersetting 朋友圈小视频 weixin://dl/sight 功能 weixin://dl/features 通讯录同步助手 weixin://dl/securityassistant 群发助手 weixin://dl/broadcastmessage 聊天记录迁移 weixin://dl/chathistory 清理微信存储空间 weixin://dl/clear 帮助与反馈 已停用 全部问题 weixin://dl/faq 意见反馈 weixin://dl/help 或 weixin://dl/feedback 关于微信 weixin://dl/about 已停用 微信软件许可及服务协议 weixin://dl/terms 其他 隐藏入口 第三方公众号临时会话接口 weixin://dl/business 参数 ticket weixin://dl/business/?ticket= 参阅:http://xyk.cmbchina.com/wx/20150528 使用了 http://xyk.cmbchina.com/getWeiXinURL.do 生成 ticket 参数 隐藏入口 参数不明 第三方 Webview 接口 weixin://dl/businessWebview/link/ 隐藏入口 参数不明 第三方游戏库接口 weixin://dl/businessGame/library/ 隐藏入口 参数不明 第三方游戏详情接口 weixin://dl/businessGame/detail/ 隐藏入口 参数不明 第三方支付接口 weixin://dl/businessPay/ 隐藏入口 参数不明 第三方临时会话接口 weixin://dl/business/tempsession/ 或 weixin://dl/businessTempSession/ 未知 weixin://dl/chat weixin://dl/designeremoji weixin://dl/login/common_view weixin://dl/login/phone_view weixin://dl/personalemoticon weixin://private/ weixin://private/setresult/ weixin://dl/update_newest_version weixin://dl/wechatout weixin://dl/wechatoutcoupon |
这里我主要说一下微信提供的 URL Scheme其中的weixin://dl/business/.经过测试发现weixin://dl/business/这个URL需要传递一个ticket参数.完整URL为: weixin://dl/business/?ticket=tf605d2c9008df47681d9ee3c026d3700.注意ticket后面跟了一个参数。现在问题来了。这个参数是如果生成滴。我们要怎么实现。
目前weixin://这个协议只能打开微信应用。但无法在微信内部打开页面内容。那么京东是如何做到滴。下面我们通过Fiddler4抓包分析。
首先我们需要打开京东登陆页面URL: https://plogin.m.jd.com/user/login.action?appid=100&kpkey=&returnurl=http://home.m.jd.com/myJd/home.action


当点击红色标注处打开微信登陆时。通过分析代码发现跳转到这个URL: https://plogin.m.jd.com/cgi-bin/m/wxlogin 然后又跳转到这个URL: https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx2f5d8f9715c59d10&redirect_uri=https%3A%2F%2Fplogin.m.jd.com%2Fcgi-bin%2Fm%2Fwxcallback%3Flsid%3D879kn265b3p85ib1poa0bkkk4ov3y5i7&response_type=code&scope=snsapi_userinfo&state=1cq98810 接着又跳转到URL: https://open.weixin.qq.com/sns/explorer_broker?appid=wx2f5d8f9715c59d10&redirect_uri=https%3A%2F%2Fplogin.m.jd.com%2Fcgi-bin%2Fm%2Fwxcallback%3Flsid%3D879kn265b3p85ib1poa0bkkk4ov3y5i7&response_type=code&scope=snsapi_userinfo&state=1cq98810&connect_redirect=1 最终通过分析发现跳转到了这个URL: weixin://dl/business/?ticket=tb256d79b7c6531d5620f0eed6c7f6175 |

通过上面几个URL。大家发现了和我们之前做过的微信开发或JSSDK里面获取CODE。获取token的URL是不是很像。
看到红色标注处的代码可以发现最终是通过weixin://dl/business/?ticket=跳转到微信内部。
可以看到整个过程中发现微信官方给了京东内部实现接口来生成ticket,这个接口很难从外部获取。一般人也拿不到ticket,这也是为什么手机外部浏览器不允许直接调到微信内部打开页面的原因。
到这里很清楚的是微信对外屏蔽了相应的接口协议。但对内部实现了一套接口供合作伙伴调用。仅限合作伙伴使用。所以说没有关系的朋友很难实现这个应用也是可以理解的。
微信基于技术保护,它希望大家能多使用微信。到微信内部去做应用。而不是其他浏览器。
本文调试环境:win10+QQ浏览器手机模拟
工具:Fiddler v4.6
注:本文内容均系原创。如需转载分享请标明出处。