当前位置

微信小程序批量生成带参数二维码

James Qi 在 2017年2月23日 - 15:40 提交

  到目前为止我们做的微信小程序都是纯粹线上的,在一些文章介绍或者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/

  另外,摩拜单车可以通过微信小程序扫描二维码使用,而无需生成专门小程序新的二维码,这是腾讯专门对他们开放的二维码跳转接口,免得需要所有单车上的二维码都需要更换,而且容量受限。据说不久以后,腾讯也会把这种功能开放给其它微信小程序开发者,那就方便多了。

添加新评论

Plain text

  • 不允许使用HTML标签。
  • 自动将网址与电子邮件地址转变为链接。
  • 自动断行和分段。