小程序二维码生成代码带参数的 。后端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为隐藏 })