示例代码:
/*
* 生成小程序二维码
*/
public function getXcxQRcode($appid,$secret,$user_id){
$token_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret;
$access = file_get_contents($token_url);
$access = json_decode($access,true);
$access_token = $access['access_token'];
// 配置参数
$url = "https://api.weixin.qq.com/wxa/getwxacode?access_token=".$access_token;
//下面的存放地址根据你个人的需要进行调整
$save_path = ROOT_PATH.'public'.DS.'upload/qrcode/';
//下面的path对应你小程序的页面路径,如:pages/index/index,切记pages前面没有/
$body = array('path'=>$this->xcx_path.'?user_id='.$user_id);
$method = 'POST';
$headers = array('Content-Type:'.'application/json');
// 创建连接
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_FAILONERROR, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($body));
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);//严格校验
// 发送请求
$response = curl_exec($curl);
curl_close($curl);
$img_url = 'data:image/jpeg;base64,' . base64_encode($response);
$img_name = $this->saveImage($save_path,$img_url);
//下面配置上你的域名
$imgUrl = 'https://www.***.com/upload/qrcode/'.$img_name;
return $imgUrl;
}
function saveImage($save_path,$img_url) {
ob_clean();
ob_start();
readfile($img_url); //读取图片
$img = ob_get_contents(); //得到缓冲区中保存的图片
ob_end_clean(); //清空缓冲区
//图片名称,可根据你的需要进行调整
$img_name = TIME_NOW.rand(0,1000);
$fp = fopen($save_path.$img_name.'.png','w'); //写入图片
if(fwrite($fp,$img)) {
fclose($fp);
return $img_name.'.png';
}
}
如果想要返回base64码:
$info = base64_encode($info);
就这么多 欢迎各位提问,优化