当前位置: 首页 > 后端技术 > PHP

H5实现生成urlscheme并从H5跳转到小程序

时间:2023-03-29 14:12:38 PHP

2022年之前,如果想在H5中打开小程序,只需要在平台设置urlscheme即可,但是从2022年4月11日起,URLScheme有效期为30天后,不再支持永久有效的URLSchemes,不再区分短期有效的URLSchemes和长期有效的URLSchemes。如果在微信外打开,用户可以点击浏览器页面进入小程序。每个独立的URLScheme被一个用户访问后,只有该用户可以再次访问打开对应的小程序,其他用户不能通过同一个URLScheme再次打开小程序。本次规则调整生效前已经生成的URLSchemes,如果有效期超过30天或将长期降级为30天,则只能由一个用户访问,开始时间从调整开始计算日期。【官方文档】不过官方提供了动态获取urlscheme的方法如下:1:获取access_token2:根据access_token获取urlscheme3:根据urlscheme实现H5跳转小程序具体实现1.通用调用接口方法/***curl*/publicfunctionhttpRequest($url,$format='get',$data=null,$headerArray=[]){//设置头部信息$curl=curl_init();curl_setopt($curl,CURLOPT_URL,$url);curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);if($format=='post'){//post值设置post参数curl_setopt($curl,CURLOPT_POST,1);如果($data){$data=json_encode($data);curl_setopt($curl,CURLOPT_POSTFIELDS,$data);}}curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);如果($headerArray){curl_setopt($curl,CURLOPT_HTTPHEADER,$headerArray);}$data=json_decode(curl_exec($curl),true);curl_close($curl);//返回接口返回数据return$data;}2.获取access_token文件:[acquireaccess_token]$appId='XXX';$appsecret='XXX';$data=$this->httpRequest('https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appId.'&secret='.$appsecret,'get',null,array("Content-type:application/json;","Accept:application/json"));$accessToken=isset($data['access_token'])?$data['access_token']:'';3:根据access_token获取urlscheme【获取urlscheme】$data=$this->httpRequest('https://api.weixin.qq.com/wxa/generatescheme?access_token='.$accessToken,'post',['jump_wxa'=>['path'=>"/pages/index/index",//跳转小程序地址'query'=>""//跳转小程序附加参数],'expire_type'=>0]);$openlink=isset($data['openlink'])?$data['openlink']:'';4:根据urlscheme跳转到小程序