乐趣区

关于php:H5实现生成urlscheme并从H5跳转到小程序

在 2022 年之前,想要在 H5 关上小程序只须要在平台上设置 urlscheme 即可,然而自 2022 年 4 月 11 日起,URL Scheme 有效期最长 30 天,不再反对永恒无效的 URL Scheme、不再辨别短期无效 URL Scheme 与长期有效 URL Scheme。若在微信外关上,用户能够在浏览器页面点击进入小程序。每个独立的 URL Scheme 被用户拜访后,仅此用户能够再次拜访并关上对应小程序,其余用户无奈再次通过雷同 URL Scheme 关上该小程序。在本次规定调整失效前曾经生成的 URL Scheme,如果有效期超过 30 天或长期会被降级为 30 天无效,只能被 1 个用户拜访,开始工夫从调整日期开始计算。【官网文档】

然而官网提供了动静获取 urlscheme 办法

步骤如下:

  • 1:获取 access_token
  • 2:依据 access_token 获取 urlscheme
  • 3:依据 urlscheme 实现 H5 跳转小程序

    具体实现

    1. 通用的调用接口办法
/**
 * curl
 */
public function httpRequest($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);
        if ($data) {$data  = json_encode($data);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        }
    }
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    if ($headerArray) {curl_setopt($curl,CURLOPT_HTTPHEADER,$headerArray);
    }
    $data=json_decode(curl_exec($curl), true);
    curl_close($curl);
    // 返回接口返回数据
    return $data;
}
2. 获取 access_token 文档:【获取 access_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 跳转小程序
<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>
<script>
window.location.href = openlink;
</script>
退出移动版