效果图

生成小程序码的php代码
public function qrcode(){
$member_id = session('id');
if(empty($member_id)) $this->error('请先登录');
//推广二维码
$member = model('Member')->where('id',$member_id)->find();
if($member['is_share'] && $member['share_qrcode']){
$litpic = $member['share_qrcode'];
}else{
header('content-type:image/jpg');//加载速度快
// 生成小程序码
$wechatObj = new Wechat();//这是个类 这里有小程序appid和密码
$url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=".$wechatObj->getAccessToken();
$page = 'pages/index/index';
$scene = 'share_id='.$member_id;
$path = './upload/qrcode/'.$member_id.'.jpg';
$postData = array();
$postData['page'] = $page;
$postData['scene'] = $scene;
$data = json_encode($postData);
$result = $this->api_notice_increment($url,$data);
$image = 'data:image/jpg;base64,' . base64_encode($result);
$other_result = $result;
$file = fopen($path,"w");//打开文件准备写入
fwrite($file,$other_result);//写入
fclose($file);//关闭
//return $result;
$litpic = $path;
$litpic = ltrim($litpic,'.');
//写入数据库
$member->save(['share_qrcode'=>$litpic,'is_share'=>1]);
}
//推广人数
$path_member = model('Member')->where('path',$member_id)->field('id,name,litpic,add_time')->select();
$path = [];
foreach($path_member as $v){
$v['add_time'] = date('Y-m-d H:i:s',$v['add_time']);
$path[] = $v;
}
$data = [
'litpic' => $litpic,
'path' => $path,
];
return json($data);
}
public function api_notice_increment($url,$data){
//return $data;
$curl = curl_init(); // 启动一个CURL会话
//$header = "Accept-Charset: utf-8";
curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 对认证证书来源的检测
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Expect:')); //解决数据包大不能提交
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循
curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
$tmpInfo = curl_exec($curl); // 执行操作
if (curl_errno($curl)) {
echo 'Errno'.curl_error($curl);
}
curl_close($curl); // 关键CURL会话
return $tmpInfo; // 返回数据
}
function api_notice_increment($url,$data)
{
$curl = curl_init();
$a = strlen($data);
$header = array("Content-Type: application/json; charset=utf-8","Content-Length: $a");
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl,CURLOPT_POST,1);
curl_setopt($curl,CURLOPT_POSTFIELDS,$data);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$res = curl_exec($curl);
curl_close($curl);
return $res;
}







