微信小程序如何生成参数二维码
摘要:微信小程序如何生成参数二维码?通过thinkphp后台接口可以实现。
参数二维码,顾名思义,就是带参数的二维码。因为参数不是固定不变的,所以带参二维码需要根据参数进行变动,根据不同的参数生成不同的二维码。
参数二维码在很多小程序中都会用到。比方说,如果是一款简历制作的小程序,很可能需要给用户提供这样的功能:上传自己的简历,生成属于自己的二维码。又比如说,一款在线相册制作的小程序,在用户结束制作之后需要提供二维码给用户,这样任何人都可以扫码查看相册内容。这些就是参数二维码的真实应用场景。在今天的小程序开发教程中,我们就来讲解一下微信小程序如何生成参数二维码。
https://api.weixin.qq.com/cgi-bin/wxapp/createwxaqrcode?access_token=ACCESS_TOKEN
由于小程序参数二维码API提供的帮助有限,以下是我的操作方法。我主要通过thinkphp的后台接口来实现。具体代码如下:
步骤一,先获取ACCESS_TOKEN
$tokenUrl=https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=.$this->appid.&secret=.$this->secret;
$getArr=array();
$tokenArr=json_decode($this->send_post($tokenUrl,$getArr,GET));
$access_token=$tokenArr->access_token;
send_post:
function send_post($url, $post_data,$method='POST') {
$postdata = http_build_query($post_data);
$options = array(
'http' => array(
'method' => $method, //or GET
'header' => 'Content-type:application/x-www-form-urlencoded',
'content' => $postdata,
'timeout' => 15 * 60 // 超时时间(单位:s)
)
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
return $result;
}
步骤二,生成二维码:
$path=pages/index?query=1;
$width=430;
$post_data='{path:'.$path.',width:'.$width.'}';
$url=https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=.$access_token;
$result=$this->api_notice_increment($url,$post_data);
api_notice_increment:
function api_notice_increment($url, $data){
$ch = curl_init();
$header = Accept-Charset: utf-8;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, POST);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$tmpInfo = curl_exec($ch);
// var_dump($tmpInfo);
// exit;
if (curl_errno($ch)) {
return false;
}else{
// var_dump($tmpInfo);
return $tmpInfo;
}
}
步骤三,根据返回的二进制数据生成图片并上传到自己的服务器
参数二维码在很多小程序中都会用到。比方说,如果是一款简历制作的小程序,很可能需要给用户提供这样的功能:上传自己的简历,生成属于自己的二维码。又比如说,一款在线相册制作的小程序,在用户结束制作之后需要提供二维码给用户,这样任何人都可以扫码查看相册内容。这些就是参数二维码的真实应用场景。在今天的小程序开发教程中,我们就来讲解一下微信小程序如何生成参数二维码。
https://api.weixin.qq.com/cgi-bin/wxapp/createwxaqrcode?access_token=ACCESS_TOKEN
由于小程序参数二维码API提供的帮助有限,以下是我的操作方法。我主要通过thinkphp的后台接口来实现。具体代码如下:
步骤一,先获取ACCESS_TOKEN
$tokenUrl=https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=.$this->appid.&secret=.$this->secret;
$getArr=array();
$tokenArr=json_decode($this->send_post($tokenUrl,$getArr,GET));
$access_token=$tokenArr->access_token;
send_post:
function send_post($url, $post_data,$method='POST') {
$postdata = http_build_query($post_data);
$options = array(
'http' => array(
'method' => $method, //or GET
'header' => 'Content-type:application/x-www-form-urlencoded',
'content' => $postdata,
'timeout' => 15 * 60 // 超时时间(单位:s)
)
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
return $result;
}
步骤二,生成二维码:
$path=pages/index?query=1;
$width=430;
$post_data='{path:'.$path.',width:'.$width.'}';
$url=https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=.$access_token;
$result=$this->api_notice_increment($url,$post_data);
api_notice_increment:
function api_notice_increment($url, $data){
$ch = curl_init();
$header = Accept-Charset: utf-8;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, POST);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$tmpInfo = curl_exec($ch);
// var_dump($tmpInfo);
// exit;
if (curl_errno($ch)) {
return false;
}else{
// var_dump($tmpInfo);
return $tmpInfo;
}
}
步骤三,根据返回的二进制数据生成图片并上传到自己的服务器
file_put_contents($filepath, $result)
不同的人使用的服务器不一样,这个涉及到隐私,上传部分的代码就不贴了。
推荐阅读:小程序前端开发者工具怎么使用
声明:
文章内容及图片部分全部摘自网络,在此分享供读者参考和借鉴,不代表酷雷的观点。文章、图片等内容如涉嫌侵权,请联系我们删除,谢谢!带有原创标签的属于酷雷原创文章,未经允许不得转载!
标签: