PHP实现生成小程序二维码带参数进入指定页面、小程序URL scheme实现携带数据跳转小程序
图片二维码生成
<?php
//二进制转图片image/pngfunction burryToBase64($contents, $mime){$base64 = base64_encode($contents);return ('data:' . $mime . ';base64,' . $base64);}function getAccessToken(){$grant_type = 'client_credential';$appid = 'wx56dde2c282ad225b';$secret = 'ff76cf2da3af30fb6fcb421016ffd67e';$url='https://api.weixin.qq.com/cgi-bin/token?grant_type='.$grant_type.'&appid='.$appid.'&secret='.$secret;$accessToken = curlGet($url);return $accessToken['access_token'];}function curlGet($url){$ch = curl_init();curl_setopt($ch, CURLOPT_URL,$url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_HEADER, false);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);$output = curl_exec($ch);curl_close($ch);return json_decode($output,true);}header("Content-Type: text/html; charset=utf-8");function index($code){ //code为参数// echo $url;$access_token = getAccessToken();if(!empty($access_token)){$url = 'https://api.weixin.qq.com/wxa/getwxacode?access_token='.$access_token;$data['path'] = "/pages/index/index?url=https://dl.99tv.top/".$code;$data['scene'] = 'type=qrcode';//(string类型,必须是数字)$data['width'] = 430;$result = curlPost($url,$data,'POST');$image = burryToBase64($result,'image/png');$filename = md5($code); //文件名$ret = file_put_contents('./uploads/'.$filename.'.png', $result, true);$path='./uploads/'.$filename.'.png';return $image;}else{echo '获取asstoken失败';}}function getJson($url,$data=array(),$method='GET'){$ch = curl_init();//1.初始化 curl_setopt($ch, CURLOPT_URL, $url);//2.请求地址 curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);//3.请求方式 //4.参数如下 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); if($method=="POST"){//5.post方式的时候添加数据 $data = json_encode($data);curl_setopt($ch, CURLOPT_POSTFIELDS, $data); } curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$output = curl_exec($ch);curl_close($ch);return json_decode($output, true);}function curlPost($url,$data,$method){$ch = curl_init(); //1.初始化 curl_setopt($ch, CURLOPT_URL, $url); //2.请求地址 curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);//3.请求方式 //4.参数如下 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);//https curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 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_HTTPHEADER,array('Accept-Encoding: gzip, deflate'));//gzip解压内容 curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate'); if($method=="POST"){//5.post方式的时候添加数据 $data = json_encode($data);curl_setopt($ch, CURLOPT_POSTFIELDS, $data); } curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $tmpInfo = curl_exec($ch);//6.执行 if (curl_errno($ch)) {//7.如果出错 return curl_error($ch); } curl_close($ch);//8.关闭 return $tmpInfo; } $result=index('zt');echo "<img src='$result'>"
?>
链接跳转
前端
<a href="<?php echo jump($value['tinyurl']);?>" style="color:white;font-size:20px;">打开小程序</a>
调用代码
<?php
header('Content-type: text/html; charset=utf-8');
//引用加密文件
//入口文件
//jump($id);/*** 跳转小程序*/function curlGet($url){$ch = curl_init();curl_setopt($ch, CURLOPT_URL,$url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_HEADER, false);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);$output = curl_exec($ch);curl_close($ch);return json_decode($output,true);}function getAccessToken(){$grant_type = 'client_credential';$appid = 'wx56dde2c282ad225b';$secret = 'ff76cf2da3af30fb6fcb421016ffd67e';$url='https://api.weixin.qq.com/cgi-bin/token?grant_type='.$grant_type.'&appid='.$appid.'&secret='.$secret;$accessToken = curlGet($url);return $accessToken['access_token'];}
function jump($id)
{$access_token = getAccessToken();$url = 'https://api.weixin.qq.com/wxa/generatescheme?access_token=' . $access_token . '';$jump_wxa = ['path' => '/pages/index/index','query' => "url=https://dl.99tv.top/$id",'env_version' => 'trial'];$params = ['jump_wxa' => (object)$jump_wxa,'expire_type' => 0,'expire_time' => time() + 1000];$res = curl_post($url, $params);$res = json_decode($res);// var_dump($res);if ($res->errcode == 0) {return $res->openlink;// echo json_encode(['url' => $res->openlink, 'code' => 1]);}
}function curl_get($url){$header = array('Accept: application/json','isOpenSecret: 1');$curl = curl_init();//设置抓取的urlcurl_setopt($curl, CURLOPT_URL, $url);//设置头文件的信息作为数据流输出curl_setopt($curl, CURLOPT_HEADER, 0);// 超时设置,以秒为单位curl_setopt($curl, CURLOPT_TIMEOUT, 1);// 超时设置,以毫秒为单位// curl_setopt($curl, CURLOPT_TIMEOUT_MS, 500);// 设置请求头curl_setopt($curl, CURLOPT_HTTPHEADER, $header);//设置获取的信息以文件流的形式返回,而不是直接输出。curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);//执行命令$data = curl_exec($curl);// 显示错误信息if (curl_error($curl)) {print "Error: " . curl_error($curl);} else {// 打印返回的内容// print_r($data);return $data;curl_close($curl);}
}
/*** 获取accessToken*//*** @param string $url post请求地址* @param array $params* @return mixed*/
function curl_post($url, array $params = array())
{$data_string = json_encode($params);$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);curl_setopt($ch,CURLOPT_HTTPHEADER,array('Content-Type: application/json'));$data = curl_exec($ch);curl_close($ch);return ($data);
}
PHP实现生成小程序二维码带参数进入指定页面、小程序URL scheme实现携带数据跳转小程序相关推荐
- 微信小程序生成二维码带参海报
微信小程序生成二维码带参海报 没错,就是用 canvas 来实现 文章目录 微信小程序生成二维码带参海报 获取屏幕分辨率比 生成二维码 获取网络图片并转为本地临时文件 绘制背景图片以及二维码 代码片段 ...
- 微信小程序扫二维码带参数问题
1.在微信公众号平台上面配置扫描二维码之后所跳转的前端路径 2.在配置好的前端路径里面的onload会获取到q的参数,并且对获取到的参数进行转码,然后通过split分割"="号后面 ...
- (JAVA)获取支付宝二维码 带参数
正文: 前端文档 后台文档 public Vo aliSmall() throws AdminException,AlipayApiException {SysUser user = shiroSe ...
- 微信小程序 扫描微信二维码 传递参数授权
首先 先用微信小程序扫一扫 看二维码的参数是什么 然后 扫描二维码的参数是 scene=u_127 这个就是小程序二维码的参数 能够在 页面里拿到 扫描微信小程序授权的结果 可以进行编译 能够在on ...
- 【干货#007】标签机打印小程序参数二维码的方法
缘起 微信小程序参数二维码是针对小程序特定页面,设定相应参数,用户扫描后可以进入相应页面的方法,具有多种用途. 目前,有多种方式可以生成小程序二维码图片,然后直接打印出来.但在使用标签机打印二维码时, ...
- 微信小程序生成二维码scene过长解决方法
小程序二维码scene参数限定长度为32位字符,但是实际开发中可能有很多的参数需要传递,怎么办呢? 对于目前32位长度的限制,解决方案: 方案一.中间页 + 短参数新建一个中间空白跳转页面,每次生成的 ...
- Django 生成验证码或二维码 pillow模块
一.安装PIL PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了.PIL功能非常强大,API也非常简单易用. PIL模块只支持到Python 2 ...
- QRCode 生成和下载二维码
使用注意事项: 1.url必须带通信协议 2.生成二维码前必须先清空二维码,不然会重复生成二维码(文章最后) 1.引入插件QRCode QRCode.js 是一个用于生成二维码的 JavaScript ...
- 小程序之 保存canvas生成商品图片附加小程序二维码 分享到朋友圈
小程序之 保存canvas生成商品图片附加小程序二维码 分享到朋友圈 一.概述 需要用到的生成二维码组件(可自行下载添加到小程序根目录utils里):https://github.com/demi52 ...
最新文章
- linux日志怎么进行转储,Linux logrotate命令用法详解:进行日志转储(轮替)
- java jdbc 链接pg_Java零基础教程
- 什么是 JSON ?
- 如何看创建媒体日期_每天约4万个网约车投诉,看AI如何接招_媒体_澎湃新闻
- ASP.NET Core 2.2 项目升级至 3.0 备忘录
- 云原生数据湖解决方案打破数据孤岛,大数据驱动互娱行业发展
- mysql集群_MySQL集群
- 服务器硬盘raid5扩容,超实用,物理服务器RAID扩容详解
- 相似基因(洛谷-P1140)
- STM8学习笔记---定时器 TIM4功能实现
- 《数学建模与数学实验》第5版 统计分析 习题9.7
- FreeImage使用
- chrome插件开发——option(选项页)的通信
- 算法课讨论 深究哈密顿图
- 将瀚高数据库表内数据导出Excel格式
- java存根_Java方法存根
- SDL —— SDL_ttf
- Mint20系统安装微信
- 如何重新设置苹果id密码_苹果手机ID密码忘了?别着急,这二种方法轻松帮你搞定!...
- padding的用途