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