小程序二维码生成代码 。后端tp5框架 前端一个链接就好

小程序二维码生成代码带参数的 。后端tp5框架 前端一个链接就好

		// 获取小程序码,适用于需要的码数量极多的业务场景。通过该接口生成的小程序码,永久有效,数量暂无限制。
	   public function getXcxCode(){

    //获取参数值
 
    $qid=request()->get('qid'); // 活动id
    $yuid=request()->get('yuid'); // 活动id

    // var_dump($qid);exit;
    $appid="appid";
	$secret="secret";
	// 获取access_token
	$URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$secret";
    $apiData=file_get_contents($URL);
    $arr =json_decode($apiData,true);
    $access_token=$arr['access_token'];
    // echo $arr['access_token'];exit;

    $url="https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=".$access_token;
    //这里是参数的拼接
   	$scene = $qid.'&'.$yuid.'&1'; 
   	// var_dump($scene);exit;
   	
   	// $scene = "qid=19&yuid=19&souy=1"; 
    $data=[
                 
      'width'=>400,
      'auto_color'=>false,
      'scene'=>$scene,
      'page'=>'pages/Club/Club'
    ];
    
    $data=json_encode($data);
    $result = $this->_requestPost($url,$data);
    // var_dump($result);exit;
    if (!$result) {
        return false;
    } 
    // file_put_contents("static/xcxcode.jpeg", $result);
      return $result;exit;   
    // $fileName=$moduleid."-".$itemid;       
    // if ($fileName) {
    //     //判断file文件中是否存在数据库当中
    //     $isfile=Db::name('xcxcode')->where('fileName=:fileName',['fileName'=>$fileName])->select();
    //     if(!$isfile){
    //        file_put_contents("static/xcxcode/".$fileName.".jpeg", $result);
    //        $datafile=['fileName'=>$fileName];
    //        Db::name('xcxcode')->insert($datafile);
    //     }

    //     return "static/xcxcode/".$fileName.".jpeg";       
    // }

}

/*
* 发送GET请求的方法

 */
 
protected function _requestGet($url, $ssl=true) {
    // curl完成
    $curl = curl_init();

    //设置curl选项
    curl_setopt($curl, CURLOPT_URL, $url);//URL
    $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '
	Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0 FirePHP/0.7.4';
    curl_setopt($curl, CURLOPT_USERAGENT, $user_agent);//user_agent,请求代理信息
    curl_setopt($curl, CURLOPT_AUTOREFERER, true);//referer头,请求来源
    curl_setopt($curl, CURLOPT_TIMEOUT, 30);//设置超时时间

    //SSL相关
    if ($ssl) {
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);//禁用后cURL将终止从服务端进行验证
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);//检查服务器SSL证书中是否存在一个公用名(common name)。
    }
    curl_setopt($curl, CURLOPT_HEADER, false);//是否处理响应头
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);//curl_exec()是否返回响应结果

    // 发出请求
    $response = curl_exec($curl);
    if (false === $response) {
        echo '<br>', curl_error($curl), '<br>';
        return false;
    }
    curl_close($curl);
    return $response;
}
/**
 * 发送GET请求的方法
 * @param string $url URL
 * @param bool $ssl 是否为https协议
 * @return string 响应主体Content
 */
 protected function _requestPost($url, $data, $ssl=true) {
        //curl完成
        $curl = curl_init();
        //设置curl选项
        curl_setopt($curl, CURLOPT_URL, $url);//URL
        $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0 FirePHP/0.7.4';
        curl_setopt($curl, CURLOPT_USERAGENT, $user_agent);//user_agent,请求代理信息
        curl_setopt($curl, CURLOPT_AUTOREFERER, true);//referer头,请求来源
        curl_setopt($curl, CURLOPT_TIMEOUT, 30);//设置超时时间
        //SSL相关
        if ($ssl) {
            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);//禁用后cURL将终止从服务端进行验证
            curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);//检查服务器SSL证书中是否存在一个公用名(common name)。
        }
        // 处理post相关选项
        curl_setopt($curl, CURLOPT_POST, true);// 是否为POST请求
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);// 处理请求数据
        // 处理响应结果
        curl_setopt($curl, CURLOPT_HEADER, false);//是否处理响应头
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);//curl_exec()是否返回响应结果

        // 发出请求
        $response = curl_exec($curl);
        if (false === $response) {
            echo '<br>', curl_error($curl), '<br>';
            return false;
        }
        curl_close($curl);
        return $response;
}

前端只有一句就好

wxml页面

  <!-- 二维码获得的地址 -->
 <image class='eimg' src="https://waphp.cn/public/index/code/getXcxCode?qid={{qid}}&yuid={{uuid}}" mode="widthFix" /> 

js页面


   // 这里是小程序扫描进入到的接收方式
           // 这里是小程序扫描进入到的接收方式
                          var scene = decodeURIComponent(e.scene)
                          console.log(scene);
                     if (scene!== 'undefined'){
                           //&是我们定义的参数链接方式
                           let qid = scene.split("&")[0];
                           let yuid = scene.split('&')[1];
                           let souy = scene.split('&')[2];
                           console.log("qid=" + qid)
                           console.log("yuid=" + yuid)
                           console.log("souy=" + souy)
                       that.setData({
                         qid: qid,  //群ID
                         yuid: yuid, //发送邀请人的用户id
                         souy: souy, //分享返回主页按钮 1为显示 0为隐藏
                       })

猜你喜欢

转载自blog.csdn.net/weixin_42021688/article/details/86598549
今日推荐