php 抓取网页生成图片(PC端的网站放一个微信小程序的二维码,跳到房源详情页)
优采云 发布时间: 2021-10-17 14:27php 抓取网页生成图片(PC端的网站放一个微信小程序的二维码,跳到房源详情页)
老板最近有点闲。他想在PC端放一个微信小程序的二维码网站,扫描这个二维码后,会跳转到小程序对应的listing详情页。
这是微信官方给出的文档,连接地址:/miniprogram/dev/framework/open-ability/qr-code.html
方法一:为小程序生成带参数的二维码
【方码】如图:官方文档说很简单,页面上没有demo。可能是给大佬的,对我这种一般程序员来说好像有点难度。
【系统环境】
*敏*感*词*姐这边的系统环境是Linux系统,nginx服务器,thinkPHP5.6框架。
实现代码如下:
按照官方微信步骤;
第一步:首先获取调用API接口的accesstoken;
public function getAccessToken(){
$appid = '公司的小程序appid';
$secret = '公司的小程序sercret';
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret;
$res = json_decode($this->httpGet($url));
$access_token = @$res->access_token;
return $access_token;
}
第二步:请求微信接口获取二维码:
官方文档如图:
*敏*感*词*姐代码:
public function getXcxCode(){
//获取access token
$ACCESS_TOKEN = $this->getAccessToken();
//创建二维码
$qcode ="https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=".$ACCESS_TOKEN;
$param = json_encode(array("path"=>"pages/detail/detail?id=5084","width"=> 150));
$result = $this->httpRequest( $qcode, $param,"POST");
$path = 'uploads/qrcode/h.jpg';
file_put_contents($path, $result);
$return['status_code'] = 2000;
$return['msg'] = 'ok';
$return['img'] = 'https://公司域名.com/' . $path;
echo ''.$return['img'].'';exit;
echo json_encode($return);exit;
$base64_image ="data:image/jpeg;base64,".base64_encode( $result );
return '';
}
别慌,百度查了资料。这是因为文件读写权限。我们文件夹的权限一般是755,然后把文件夹的权限改成777。
说老板有点飘飘然,但实在是拦不住。方形二维码难看,只好做一个圆形漂亮的小程序码。. . . . 由于列表数量较多,选择了 wxacode.getUnlimited 接口。
第一步是先获取访问令牌;
同上,我就不多说了;
官方微信文档:
虽然可以通过场景传递很多参数,但是在实际传递参数的过程中,页面出现了很多问题。他不能接受我之前传递的参数。虽然生成了二维码,但他也跳转到了详情页。它是一个空页面,没有传递相应的列表id。. .
请求参数场景也只简单说明
看得出*敏*感*词*姐一头雾水,场景参数有很多问题。网上找了很久的技术帖子,或者找到了合适的demo。这就是为什么我必须下定决心写这篇博客。要知道更多人的原因。
*敏*感*词*姐的密码在这里
public function xcxCode() {
$id = trim($this->request->param('id','5084','intval'));
$access_token = $this->getAccessToken();
$url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" . $access_token;
$data['scene'] = 'h' . $id;
//小程序的详情页路径
$data['path'] = 'pages/detail/detail';
//二维码大小
$data['width'] = '430';
$res = $this->http($url, json_encode($data),1);
$path = 'uploads/qrcode/h' . $id . '.jpg';
file_put_contents($path, $res);
$return['status_code'] = 2000;
$return['msg'] = 'ok';
$return['img'] = 'https://公司域名.com/' . $path;
echo ''.$return['img'].'';exit;
echo json_encode($return);exit;
}
历经千辛万苦,小程序代码终于出现在了我的面前。
小程序生成带参数的二维码【小程序循环码】,保存为jpg图片上传到服务器
如果还是不明白,可以联系*敏*感*词*姐技术问题或者索取源码。
不知道能不能给后面看到的程序员一些指导。可以考虑贡献一点余热。哈哈哈哈