2021-09-06 17:26:44 星期一
今天我有个需求就是网页打开小程序而且需要带参数,我去找了很多地方的文档发现都是一些说明的文档,并没有代码的实例,于是我写一个吧。

根据微信小程序官方文档来看需要先获取access_token,也就是调用凭证。
这个比较简单获取APPID和AppSecret去Get去请求就可以了,这个教程比较多,而且很简单我就不多说了
参官方考文档: 参官方考文档

获取完成就可以去POST获取获取小程序的scheme码了
官方参考文档: 微信开发文档
正常的返回情况

{"errcode":0,"errmsg":"ok","openlink":" scheme码"}

也不多说了,看代码吧

code here...
function  getUrlScheme(){
    $id =  input('payid');
    $access_token = $this -> wx_xcx_code("wx9e5dd65897394046", "0f1570acb9bd690a4d7f2667c6f05844");
    $access_token = $access_token['access_token']; // 加个判断,是否获取成功
    $url = "https://api.weixin.qq.com/wxa/generatescheme?access_token=" . $access_token;
    $path = '';
    $scene = '';
    $post_data = [
        'jump_wxa' => [
            'path' => $path,
            'query' => $scene
        ],
        'is_expire' => true,
        'expire_time' => time() + 600 
    ];
    $post_data = json_encode($post_data);
    $result = $this ->api_notice_increment($url, $post_data);
    $data =json_decode($result,true);
    $wxurl =  $data['openlink'];
    echo "<a href=".$data['openlink'].">点击打开小程序</a>";
    // print_r(json_decode($result));
}
 function wx_xcx_code($appid, $appsecret){
    $access_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret;
    $access_info = json_decode(file_get_contents($access_url),true);
    return $access_info;
}
/**
 * 发起 POST 请求微信接口
 * https://api.weixin.qq.com/wxa/generatescheme?access_token=ACCESS_TOKEN
 *
 * 返回结果
 */
function api_notice_increment($url, $data){
    $ch = curl_init();
    $header = ["Accept-Charset" => "utf-8"];
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $tmpInfo = curl_exec($ch);
    if (curl_errno($ch)) {
        return false;
    } else {
        return $tmpInfo;
    }
}
    
    //小程序链接生成结束
如果觉得我的文章对你有用,可以赞助本站,使本站更好的发展