1. 程式人生 > >如何利用m.jr.jd.com喚起微信ticket規則生成方法跳轉任意連結網址

如何利用m.jr.jd.com喚起微信ticket規則生成方法跳轉任意連結網址

 

分析
連線是個短鏈:m.jr.jd.com。放瀏覽器裡訪問,解析出完整的地址:
http://www.wxticket.com/wb/0e7d51958ac79557b5ecafc582ab62d0.html。開啟偵錯程式看了下,頁面中除了百度統計程式碼外,核心程式碼如下:


if(!/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent) && / baiduboxapp/i.test(navigator.userAgent)){
window.location.replace('bdbox://utils?action=sendIntent&minver=7.4&params=%7B%22intent%22%3A%22weixin%3A%2F%2Fdl%2Fbusiness%2F%3Fticket%3Dt59a2235a3662135bfb0e8f7edccc22c5%23wechat_redirect%23wechat_redirect%23Intent%3Bend%22%7D');
}else{
window.location.replace('weixin://dl/business/?ticket=t59a2235a3662135bfb0e8f7edccc22c5#wechat_redirect#wechat_redirect');
}
setTimeout(function(){document.getElementById("loading").style.display="none";},3000);

程式碼的邏輯是,判斷不是蘋果的裝置,並且訪問 UA 中包含 baiduboxapp 字元,修改頁面連線為
bdbox://utils?action=sendIntent&minver=7.4&params=%7B%22intent%22%3A%22weixin%3A%2F%2Fdl%2Fbusiness%2F%3Fticket%3Dt59a2235a3662135bfb0e8f7edccc22c5%23wechat_redirect%23wechat_redirect%23Intent%3Bend%22%7D,
否則修改頁面連線為
weixin://dl/business/?ticket=t59a2235a3662135bfb0e8f7edccc22c5#wechat_redirect#wechat_redirect。

因為研究微信喚起,先不看 baiduboxapp,直接看微信喚起短鏈 weixin://dl/business,谷歌搜尋下發現是微信第三方公眾號臨時會話介面。這是一個內部的隱藏介面。連結中看到短鏈有個 ticket 引數,多重新整理幾次頁面,ticket 引數會發生變化,但是喚起頁面的連線沒有變。現在關鍵點成了怎麼根據自己的頁面生成合法的 ticket 引數。

在想怎麼生成 ticket 的時候,自然會想到微信是如何解析這個引數的,看看能不能從解析的邏輯中反推出生成的邏輯。