PHP⽣成⼩程序参数的⼆维码,可⽣成带参数⼆维码本⽂档从服务端讲起,开发语⾔为php
获取⼩程序码,适⽤于需要的码数量极多的业务场景。通过该接⼝⽣成的⼩程序码,永久有效,数量暂⽆限制。 更多⽤法详见 。HTTPS 调⽤
请求地址
POST api.weixin.qq/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN
请求参数
属性类型默认值必
access_token /
cloudbase_access_token
string是
scene string是最⼤32个可见字符,只⽀持数字,⼤⼩写英⽂以及部分特殊字符:!#$&'()*+,/:;=?@-
._~,其它字符请⾃⾏编码为合法字符(因不⽀持%,中⽂⽆法使⽤ urlencode 处理,请使⽤其他编码⽅式)
page string主页否页⾯ page,例如 pages/index/index,根路径前不要填加 /,不能携带参数(参数请放在scene字段⾥),如果不填写这个字段,默认跳主页⾯
check_path boolean true否检查 page 是否存在,为 true 时 page 必须是已经发布的⼩程序存在的页⾯(否则报错);为 false 时允许⼩程序未发布或者 page 不存在, 但 page 有数量上限(60000个)请勿滥⽤
env_version string"release"否要打开的⼩程序版本。正式版为 release,体验版为 trial,开发版为 develop width number430否⼆维码的宽度,单位 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
异常返回
Object
JSON
属性类型说明
errcode number错误码
errmsg string错误信息
注意这⾥--返回值说明张国荣谭咏麟
如果调⽤成功,会直接返回图⽚⼆进制内容,如果请求失败,会返回 JSON 格式的数据。如果你没有获取到⼆进制的base64⼆维码图⽚信息,说明接⼝出错了,请从access_token 或者 参数⽅⾯检查。
下⾯列举具体代码
//配置APPID、APPSECRET
$APPID = $res['key'];
$APPSECRET =  $res['secret'];
$userId    =  $_GET['userId'];
//获取access_token
$access_token = "api.weixin.qq/cgi-bin/token?grant_type=client_credential&appid={$APPID}&secret= {$APPSECRET}";
//缓存access_token
session_start();
$_SESSION['access_token'] = "";
$_SESSION['expires_in'] = 0;柿子的营养价值及功效与作用
$ACCESS_TOKEN = "";
if(!isset($_SESSION['access_token']) || (isset($_SESSION['expires_in']) && time() > $_SESSION['expires_in']))
智能电视推荐{
$json = httpRequest( $access_token );
$json = json_decode($json,true);
$_SESSION['access_token'] = $json['access_token'];
$_SESSION['expires_in'] = time()+7200;
$ACCESS_TOKEN = $json["access_token"];
蹲便器的安装
}
else{
$ACCESS_TOKEN =  $_SESSION["access_token"];
}
//构建请求⼆维码参数
//path是扫描⼆维码跳转的⼩程序路径,可以带参数?id=xxx
//width是⼆维码宽度酸的化学性质
$qcode ="api.weixin.qq/wxa/getwxacodeunlimit?access_token={$ACCESS_TOKEN}";
$param = json_encode(array("scene"=>"user_id=
{$userId}","page"=>"pages/home_index/index","check_path"=>false,"env_version"=>"release","width"=>
150,"is_hyaline"=>true));
//POST参数
$result = httpRequest( $qcode, $param,"POST");
//⽣成⼆维码
/
/ file_put_contents("qrcode.png", $result);
$base64_image ="data:image/jpeg;base64,".base64_encode( $result );
$this->result(0, '成功', ['qrcode'=>$base64_image,'wxName'=>$SystemSet['wxName']]);
//把请求发送到服务器换取⼆维码
function httpRequest($url, $data='', $method='GET'){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
if($method=='POST')
{
curl_setopt($curl, CURLOPT_POST, 1);
if ($data != '')
{
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
九大员}
}
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
curl_close($curl);
return $result;
}
扫码看下效果你就知道了,也可⾃定义⼩程序跳转地址,⼩程序内提供获取到参数后如何解析获取⼆维码中的参数