Home
avatar

xwteam

2022-07-01利用Appid和AppSecret生成URL Scheme并跳转

最近几天被这个公众号和小程序的跳转弄得好烦,由于公众号用的是插件,没有办法直接跳转小程序。

一开始想着用第三方平台做公众号菜单,但是插件的功能又被替换了无法使用。

思前想后,实在没有办法弄了,只能选择通过H5页面跳转。

但是跳转需要通过AccessToken生成URL Scheme,但是AccessToken又需要Appid和AppSecret。

所以就需要分两步走:

1、通过Appid和AppSecret获取AccessToken

请求地址(GET方式):

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

2022-07-01利用Appid和AppSecret生成URL Scheme并跳转 乱七八糟 第1张

  • $appid = ‘Appid’;
  • //登陆mp.weixin.qq.com获取.
  • $app_secret = ‘AppSecret’;
  • //登陆mp.weixin.qq.com获取.
  • url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' .appid. ‘&secret=’ .$app_secret;
  • //开发文档中auth.getAccessToken的请求地址
  • token = filegetcontents(token = file_get_contents(url);
  • //利用file_get_contents函数获取Token,当然也可以自己修改用Curl方式获取
  • decode = jsondecode(decode = json_decode(token);
  • //返回的是json,需要先decode
  • accesstoken = access_token = decode->access_token;
  • //取出AccessToken的值
  • echo echo access_token;
  • //输出AccessToken的值

2、通过AccessToken获取Openlink

请求地址(POST方式):

https://api.weixin.qq.com/wxa/generatescheme?access_token=ACCESS_TOKEN

2022-07-01利用Appid和AppSecret生成URL Scheme并跳转 乱七八糟 第2张

2022-07-01利用Appid和AppSecret生成URL Scheme并跳转 乱七八糟 第3张

  • linkurl = https://api.weixin.qq.com/wxa/generatescheme?accesstoken=.link_url = 'https://api.weixin.qq.com/wxa/generatescheme?access_token='.access_token;
  •   //urlscheme.generate请求地址
  •      $link_data = ’{
  •           “jump_wxa”:
  •               {
  •                   “path”: “/pages/publishHomework/publishHomework”,
  •                   “query”: "",
  •               },
  •               “expire_time”
  •               }’;
  •   //path为小程序页面路径,expire_time为scheme码的失效时间
  •       $ch = curl_init();
  •       curl_setopt(ch, CURLOPTURL, ch, CURLOPT_URL, link_url);
  •       curl_setopt($ch, CURLOPT_POST, true);
  •       curl_setopt(ch, CURLOPTPOSTFIELDS, ch, CURLOPT_POSTFIELDS, link_data);
  •       curl_setopt(ch, CURLOPTREFERER, ch, CURLOPT_REFERER, link_url);
  •       curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  •       curl_setopt($ch, CURLOPT_TIMEOUT, 20);
  •       curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  •       curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  •       resdata = curlexec(resdata = curl_exec(ch);
  •       curl_close($ch);
  •       databack = jsondecode(data_back = json_decode(resdata);
  •       openlink = open_link = data_back->openlink;
  •       echo $open_link;
  •       //使用Curl提交Post数据,返回数据需要先json decode,然后获取Openlink并输出

3、自动跳转到小程序

2022-07-01利用Appid和AppSecret生成URL Scheme并跳转 乱七八糟 第4张

为什么先放这个截图,是因为H5跳转小程序肯定会弹出这个提示的,而且这个提示是官方的限制,是没有办法取消的。

至少我是没办法

  • header(“Location: $open_link”);

文章到这里就已经结束了,自己新建一个PHP文件,修改好保存并上传到服务器即可。

页面电脑端是无法访问的,只能通过微信打开并跳转。

当然如果你能通过Universal Links校验就当我没说。

4、不想动手?那就直接用下面这个吧。

或者直接到下方下载地址下载源码,然后修改即可使用。

AccessToken Appid AppSecret H5 Openlink PHP URL Scheme 小程序 源码