背景:前段时间,公司有个需求,需要从手机浏览器唤醒微信,并打开指定的网页,经过测试发现,微信没有直接提供这块的功能。
经过我们一帮人没日没夜的加班测试,终于搞定了生成生成跳转微信跳转链接的方法。
有些做技术的,总藏着掖着,一点分享精神都没有,下面将把我研究出来的解决方案。分享给大家,希望对大家有所帮助。
跳转原理分析:
从手机浏览器等非微信环境,跳转到微信,都是利用 weixin://dl/business/?ticket=ta42491d55a5fae0e143599655f2efe6e 这种形式的微信 scheme。微信为了让京东,美团大的合作商家能直接跳转到微信,都给了他们 生成跳转微信接口。跳转的原理,就是利用微信提供给这些商家的接口,把我们的链接转换成对应的 ticket 链接。
在哪儿可以找到微信跳转的接口呢?我们分析跳转链接后,发现了接口的出处。
接口地址: http://uxuuu.cn
到网站上可以申请到微信跳转接口,然后直接调用他们提供的接口,就可以把我们的链接转换成对应的微信跳转链接了。
微信跳转这块有什么问题,可以加我 QQ:179126172,一起沟通交流微信跳转技术。
1
jieke 2018-09-27 17:53:57 +08:00
这个很简单的啦,我这边都分享源码给很多需要这个功能的朋友了。
|
2
jieke 2018-09-27 17:56:51 +08:00
<?php
include("data/config.php"); $id = $_GET['id']; $sql = "select * from wx_list where id='".$id."'"; $rs = mysql_fetch_array(mysql_query($sql)); $s_time = strtotime (date('Y-m-d')); $e_time = strtotime ($rs['e_time']); $r_time = ceil(($e_time - $s_time)); if($r_time <= 0){ echo ' <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=0"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> <meta name="format-detection" content="telephone=no"> <title>跳转失败</title> </head> <body> <div style="text-align: center;font-size: 18px;margin: 100px 0 30px 0;"></div> </body> </html> '; exit; } $count = $rs['count'] + 1; mysql_query($sql = "update wx_list set count='".$count."' where id='".$id."'"); function get_ticket($code){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); $contents = curl_exec($ch); preg_match('/ticket=(.*?)\"/',$contents,$result); $content = $result[1]; return $content; } if(time() - $rs['uptime'] >= 1800) { $www_url = get_ticket($rs['www_url']); mysql_query($sql = "update wx_list set ticket='".$www_url."',uptime='".time()."' where id='".$id."'"); } else { $www_url = $rs['ticket']; } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=0"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> <meta name="format-detection" content="telephone=no"> <title>正在跳转中</title> </head> <body> <div style="text-align: center;font-size: 18px;margin: 100px 0 30px 0;"></div> <a href="weixin://dl/business/?ticket=<?php echo $www_url ?>" style="width: 90%;background: #1AAD19;text-align: center;color: #fff;margin: 0 auto;box-sizing: border-box;font-size: 18px;line-height: 2.55555556;border-radius: 5px;display: block;text-decoration: none;">再次跳转</a> <script>window.location.href="weixin://dl/business/?ticket=<?php echo $www_url ?>";</script> <!--一起交流了学习,需要整套源码的再联系扣扣:三二二零一久二一八三--> </body> </html> |
3
jieke 2018-09-27 17:57:56 +08:00
这个的话,数据库自己可以用 mysql 写一个,然后用这个去访问数据库就可以了
|
4
jieke 2018-09-27 17:59:23 +08:00
玩过公众号的也可以去尝试,我之前用公众号实现过相同的功能,现在没用公众号弄了,对我不实用,有兴趣的朋友可以去看下呗。
|