我们在微信小程序后台下载的小程序码只有一个,那么遇到各类的文章页面,还有产品页面,又或者开发的各类应用页面如何生成各自的小程序码呢,今天呢,小编直接上现成的代码,改几个参数就能用。
话不多说,代码先上:
function getCode($page,$scene,$orcname)
{
$appid = 'wx**************42b';
$appsecret = '288d******************d54';
$access_token = accessToken($appid, $appsecret);
$width = 430;//二维码宽度
$page = $page;//小程序路径(pages/index/index)
$scene = $scene;//携带的参数(?id=1&tag=2)
$wx_api = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=".$access_token;
$data = [
'page' => $page,
'scene' => $scene,
'width' => $width,
];
$post_data = json_encode($data);
$result = api_notice_increment($wx_api, $post_data); //获取微信小程序二维码
if(!$result){
return false;
}
$imgUrl = 'data:image/jpg;base64,'.base64_encode($result);
//$img_base64 = base64_encode($result);
//header("Content-type: image/jpg;charset=gb2312");
//echo $output1;
//echo '<img src="' . $imgUrl . '">';
$url = $orcname; // 设定不同的小程序码名称
file_put_contents($url, $result, true); //将生成的小程序码保存到本地
}
function accessToken($APP_ID, $SECRET)
{
$token_access_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" . $APP_ID . "&secret=" . $SECRET;
$res = file_get_contents($token_access_url);
$result = json_decode($res, true);
$access_token = $result['access_token'];
return $access_token;
}
function api_notice_increment($url, $data)
{
$ch = curl_init();
$header = array("Accept-Charset: utf-8");
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$tmpInfo = curl_exec($ch);
if (curl_errno($ch)) {
return false;
}else{
// var_dump($tmpInfo);
return $tmpInfo;
}
}
放完方法代码,可不能少了对如何使用的讲解,下面小编就来讲讲如何调用:
代码如何使用
$page='pagesExt/mingpian/zhiweizhanshi';
$scene='id_'.$row['id'];
$orcname='yonggong'.$row['id'].'.jpg';
getCode($page,$scene,$orcname);
getCode(
p
a
g
e
,
page,
page,scene,$orcname);
要传三个参数:
$page=‘pagesExt/mingpian/zhiweizhanshi’;
$page就是访问的具体小程序页面
KaTeX parse error: Expected group after '_' at position 10: scene='id_̲'.row[‘id’];
$scene为传递的参数,这里根据具体规则,可以是id=什么,小编这边小程序这边接受代码中是以“_”来区分的,这块各位使用的时候要注意,根据自己写的解析函数来定。
o
r
c
n
a
m
e
=
′
y
o
n
g
g
o
n
g
′
.
orcname='yonggong'.
orcname=′yonggong′.row[‘id’].‘.jpg’;
o
r
c
n
a
m
e
这个就是生成图片的名称,如果生成的多,一定要区分出来,一般规则,前面
y
o
n
g
g
o
n
g
是区分不同功能的前缀,后面
orcname这个就是生成图片的名称,如果生成的多,一定要区分出来,一般规则,前面yonggong是区分不同功能的前缀,后面
orcname这个就是生成图片的名称,如果生成的多,一定要区分出来,一般规则,前面yonggong是区分不同功能的前缀,后面row[‘id’]也就是在不同应用中数据库调用的id号,这样就能区分开了
最终效果
最终实现就可以做到每条记录一个自己的小程序码了,特别是放在PC端,或者写公众号中都可以嵌入,方便用户直接到小程序中的具体页面。
好了,今天就说到这里,大家有什么问题可以留言。