php 生成小程序码

先附上官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/qr-code.html

php 生成小程序码_第1张图片

 

本文调用的是接口B,生成小程序码。

这边需要注意的是,调用微信官方生成的小程序码,小程序必须要先发布,才能调用官方接口,不然会调用失败!!

 

一、先get请求,获取access_token

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=appId&secret=secret

 

二、post请求,调用接口B

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

这里注意的是,body传递的是 raw类型的json格式,如:{"scene":"123456789","page":"pages/index/index","width":"280"}

其他请求方式无法成功。

scene就是给小程序传递的参数值,page是小程序存在的页面,width是生成小程序码的宽度。

 

附上 raw格式的post请求方法:

public static function raw_post($url, $data_string) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'X-AjaxPro-Method:ShowList',
        'User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36')
    );
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}

 

如果调用成功,会直接返回图片二进制内容,如果请求失败,会返回 JSON 格式的数据。

 

三、存储小程序码到本地

$wx_code = raw_post($url,$data_string);

$url是请求地址,$data_string就是body传递的json数据。

 

直接调用php的方法,把返回的二进制图片存到本地

file_put_contents($save_dir.$save_name,$wx_code);

$save_dir:定义的存储目录

$save_name:定义的文件名,记得带上格式,如 .png

$wx_code:返回的二进制图片内容

 

四、最后把生成文件的路径,写到数据库就行了

你可能感兴趣的:(微信,web后端)