wqy
2020-03-24 11:26:40
3353

wxacode.getUnlimited

获取小程序码,适用于需要的码数量极多的业务场景。通过该接口生成的小程序码,永久有效,数量暂无限制

 

HTTPS 调用

请求地址

POST https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN

请求参数

属性 类型 默认值 必填 说明
access_token string   接口调用凭证
scene string   最大32个可见字符,只支持数字,大小写英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~,其它字符请自行编码为合法字符(因不支持%,中文无法使用 urlencode 处理,请使用其他编码方式)
page string 主页 必须是已经发布的小程序存在的页面(否则报错),例如 pages/index/index, 根路径前不要填加 /,不能携带参数(参数请放在scene字段里),如果不填写这个字段,默认跳主页面
width number 430 二维码的宽度,单位 px,最小 280px,最大 1280px
auto_color boolean false 自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调,默认 false
line_color Object {"r":0,"g":0,"b":0} auto_color 为 false 时生效,使用 rgb 设置颜色 例如 {"r":"xxx","g":"xxx","b":"xxx"} 十进制表示
is_hyaline boolean false 是否需要透明底色,为 true 时,生成透明底色的小程序

返回值

Buffer

返回的图片 Buffer

 

拿到buffer后 使用php的文件创建和写入 生成图片文件

 

  public function getwxacodeunlimit(){
        //生成小程序码

        $qrcode_url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=%s";
        $qrcode_url = sprintf($qrcode_url,$this->access_token);

        $data = [
            'scene' => $this->scene,
            'page' => $this->page,
//        'is_hyaline'=>true
        ];

        $result = \org\Curl::post($qrcode_url,json_encode($data));//图片二进制流返回的结果

        $res = json_decode($result, true);

        if(isset($res['errcode'])){
          ServerResponse::error($res['errcode'].':'.$res['errmsg']);
        }

        $filePath = $this->dir."/".date('Ymd').'/'.md5($this->page.$this->scene.$this->appid).".jpg";



        $path = dirname('../upload/'.$filePath);


        !is_dir($path) && mkdir($path, 0755, true);
        $filename = "../upload/".$filePath;

        $file = fopen($filename, "w");//打开文件准备写入
        fwrite($file, $result);//写入
        fclose($file);//关闭

        return $filePath;

    }

 

 

其中接口调用凭证的获取

$token_url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s';
            $token_url = sprintf($token_url,$this->appid,$this->appsercret);

            $resultJson =\org\Curl::get($token_url);

            $result = json_decode($resultJson, true);