关于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>

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理