生成小程序码并携带参数我们平时在微信那边的生成
发表时间:2023-09-02 13:47:44
文章来源:炫佑科技
浏览次数:210
菏泽炫佑科技 菏泽炫佑小程序开发 菏泽炫佑app制作 炫佑科技
生成小程序代码并携带参数
我们平时开发微信小程序时,会遇到以下场景。 我们需要制作一个推广链接,然后我们需要生成专属小程序代码。 当扫描该专属二维码时二维码制作小程序,我们将获取促销链接携带的参数并跳转至指定界面。 这看起来可能很难,但实际上非常简单。 看微信官方界面就很容易理解了。 获取小程序的appid和小程序 ,然后生成token生成小程序码并携带参数我们平时在微信那边的生成,然后用这个token去请求微信上的接口,生成小程序代码。 , 结束!
**步:检查redis中是否存在token并且是否未过期。 如果全部满足,则进行下一步,否则,通过接口获取token,并将token存储到redis中。 第二步:调用token,设置生成小程序代码的页面、参数、版本(开发版、试用版、正式版),生成小程序代码。 生成的小程序代码是二进制内容,可以转换为代码存储在redis中方便调用,也可以直接显示或保存为图片。
connect('127.0.0.1', 6379);
$getToken = $redis->exists("Token");
if ($getToken==0){
$appid = '小程序appid';
$secret = '小程序secret';
$urlss = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appid.'&secret='.$secret;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $urlss);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
$redis->set("Token", $output);
$redis->expire("Token","7000");
}
$tk = json_decode($redis->get("Token"))->access_token;
$urlss = 'https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token='.$tk;
$ch = curl_init();
$datass = json_encode(array("page"=>"pages/login/login","env_version"=>"develop", "scene"=>"aa&bb&cc"));
curl_setopt($ch, CURLOPT_URL, $urlss);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $datass);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, false);
$output1 = curl_exec($ch);
curl_close($ch);
转换为编码
$imgUrl = 'data:image/jpg;base64,'.base64_encode($output1);
直接以图像形式显示在页面上
header("Content-type: image/jpg;charset=gb2312");
echo $output1;
另存为图片
$url = "test.jpg";
file_put_contents($url, $output1, true);