到目前为止我们做的微信小程序都是纯粹线上的,在一些文章介绍或者QQ群里面发内容带的二维码是整个小程序的二维码,例如:《一把刀新华字典》目前还没有必要让每个字都带有自己的二维码。
不过考虑到以后可能做与线下实体结合的微信小程序,所以也尝试了批量生成带参数的二维码,我不是在小程序里面生成,而是在后台用一个PHP程序来批量生成的。
官方网站上的说明是:获取小程序页面二维码
我写的主要程序如下:
//第一步获取token function get_access_token($appid,$secret) { $get_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$secret"; $content = file_get_contents($get_url); $content_json = json_decode($content); $access_token = $content_json->access_token; $expires_in = $content_json->expires_in; return $access_token; } //第二步获取二维码并保存 function save_erweima($access_token,$xiaochengxu_path,$save_path) { $post_url = "https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=$access_token"; $width = '258'; $post_data='{"path":"'.$xiaochengxu_path.'","width":'.$width.'}'; $opts = array('http' => array( 'method' => 'POST', 'header' => 'Content-type: application/json', 'content' => $post_data ) ); $context = stream_context_create($opts); $result = file_get_contents($post_url, false, $context); $file_path = $save_path; $bytes = file_put_contents($file_path, $result); return $bytes; }
遇到好些报错:
- post的data格式错误,需要json格式;
- 权限错误,可以在小程序后台获取appid、重置secret,来生成正确的access_token;{"errcode":41001,"errmsg":"access_token missing hint: [gioNIA0856vr31!]"}
- 超过当日生成二维码数量限制;{"errcode":45009,"errmsg":"reach max api daily quota limit hint: [u1F_80062vr46!]"}
实际运行中发现到1000条就报了超过每日限制的错误,那只好分很多天来进行了。
下面是页面例子“丁”的链接和这个字的微信小程序二维码:
https://xinhuazidian.18dao.cn/zidian/丁
再下面是“一把刀新华字典”这个网站的链接和微信小程序二维码:
https://xinhuazidian.18dao.cn/
另外,摩拜单车可以通过微信小程序扫描二维码使用,而无需生成专门小程序新的二维码,这是腾讯专门对他们开放的二维码跳转接口,免得需要所有单车上的二维码都需要更换,而且容量受限。据说不久以后,腾讯也会把这种功能开放给其它微信小程序开发者,那就方便多了。
评论