0

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

    2023.05.07 | admin | 146次围观

    在2022年之前,想要在H5打开小程序只需要在平台上设置urlscheme即可h5是否可跳转到小程序,但是自 2022 年 4 月 11 日起,URL Scheme有效期最长 30 天,不再支持永久有效的URL Scheme、不再区分短期有效URL Scheme与长期有效URL Scheme。若在微信外打开h5是否可跳转到小程序,用户可以在浏览器页面点击进入小程序。每个独立的URL Scheme被用户访问后,仅此用户可以再次访问并打开对应小程序,其他用户无法再次通过相同URL Scheme打开该小程序。在本次规则调整生效前已经生成的URL Scheme,如果有效期超过30天或长期会被降级为30天有效,只能被1个用户访问,开始时间从调整日期开始计算。【官方文档】

    但是官方提供了动态获取urlscheme方法

    步骤如下:

    /**
     * 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跳转小程序

    
    

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论