php微信生成微信公众号二维码扫描进入公众号带参数
https://blog.csdn.net/qq_22823581/article/details/80248555
- <?php
- namespace app\api\model;
- set_time_limit(30);
- class WxQrcode{
- //构造方法
- static $qrcode_url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?";
- static $token_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&";
- static $qrcode_get_url = "https://mp.weixin.qq.com/cgi-bin/showqrcode?";
- //生成二维码
- public function getEwm($fqid,$type = 1){
- $appid = '你的appid';
- $secret = '你的secret';
- $ACCESS_TOKEN = $this->getToken($appid,$secret);
- $url = $this->getQrcodeurl($ACCESS_TOKEN,$fqid,$type);
- save_log('测试保存的路径'.$url.'fid'.$fqid);
- return $this->DownLoadQr($url,time());
- }
- protected function getQrcodeurl($ACCESS_TOKEN,$fqid,$type = 1){
- $url = self::$qrcode_url.'access_token='.$ACCESS_TOKEN;
- if($type == 1){
- //生成永久二维码
- $qrcode= '{"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_str": '.$fqid.'}}}';
- }else{
- //生成临时二维码
- $qrcode = '{"expire_seconds": 604800, "action_name": "QR_STR_SCENE", "action_info": {"scene": {"scene_str": '.$fqid.'}}}';
- }
- $result = $this->http_post_data($url,$qrcode);
- $oo = json_decode($result[1]);
- if (empty($oo->ticket)){
- return false;
- }
- if(!$oo->ticket){
- $this->ErrorLogger('getQrcodeurl falied. Error Info: getQrcodeurl get failed');
- exit();
- }
- $url = self::$qrcode_get_url.'ticket='.$oo->ticket.'';
- return $url;
- }
- protected function getToken($appid,$secret){
- $ACCESS_TOKEN = file_get_contents(self::$token_url."appid=$appid&secret=$secret");
- $ACCESS_TOKEN = json_decode($ACCESS_TOKEN);
- $ACCESS_TOKEN = $ACCESS_TOKEN->access_token;
- return $ACCESS_TOKEN;
- }
- protected function http_post_data($url, $data_string) {
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
- curl_setopt($ch, CURLOPT_HTTPHEADER, array(
- 'Content-Type: application/json; charset=utf-8',
- 'Content-Length: ' . strlen($data_string))
- );
- ob_start();
- curl_exec($ch);
- if (curl_errno($ch)) {
- $this->ErrorLogger('curl falied. Error Info: '.curl_error($ch));
- }
- $return_content = ob_get_contents();
- ob_end_clean();
- $return_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
- return array($return_code, $return_content);
- }
- //下载二维码到服务器
- protected function DownLoadQr($url,$filestring){
- if($url == ""){
- return false;
- }
- $filename = $filestring.rand(0,99999999999).'.jpg';
- ob_start();
- readfile($url);
- $img=ob_get_contents();
- ob_end_clean();
- $size=strlen($img);
- $fp2=fopen('static/qrcode/'.$filename,"a");
- if(fwrite($fp2,$img) === false){
- $this->ErrorLogger('dolwload image falied. Error Info: 无法写入图片');
- exit();
- }
- fclose($fp2);
- return 'static/qrcode/'.$filename;
- }
- //错误日志
- private function ErrorLogger($errMsg){
- $logger = fopen('log.txt', 'a+');
- fwrite($logger, date('Y-m-d H:i:s')." Error Info : ".$errMsg."\r\n");
- fclose($logger);
- }
- }
php微信生成微信公众号二维码扫描进入公众号带参数的更多相关文章
- Ios二维码扫描(系统自带的二维码扫描)
Ios二维码扫描 这里给大家介绍的时如何使用系统自带的二维码扫描方法和一些简单的动画! 操作步骤: 1).首先你需要搭建UI界面如图:下图我用了俩个imageview和一个label 2).你需要在你 ...
- 官网app下载更换成微信公众号二维码 测试
微信现在很火啊.公司官网原先提供的ios和andriod的app下载链接要求切换成微信公众号二维码.简单的替换,大家都说不需要测试直接上线.还是测了下. 1 验证所有与下载相关的信息都已去除. 包括下 ...
- 在next主题添加微信公众号二维码
在侧边栏添加微信公众号二维码 首先,当然是准备一张微信公众号二维码.有两种添加方式,添加到侧边栏或者添加到推文的结尾处.我的next主题是7.x版本的,使用的主题是Gemini,设置的侧栏显示方式是一 ...
- 微信小程序条码、二维码生成模块
代码地址如下:http://www.demodashi.com/demo/13994.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.co ...
- 实现手机扫描二维码页面登录,类似web微信-第二篇,关于二维码的自动生成
转自:http://www.cnblogs.com/fengyun99/p/3541251.html 接上一章,我们已经基本把业务逻辑分析清楚了 下面我们第一步,实现二维码的web动态生成. 页面的二 ...
- (用微信扫的静态链接二维码)微信native支付模式官方提供的demo文件中的几个bug修正
native支付模式一demo(用微信扫的静态链接二维码)BUG修复,一共4个BUG 1.native_call_qrcode.php这个文件中的代码无法生存native支付的短地址2.WxPayPu ...
- 微信二维码扫描下载APK
前几天给客户制作的app需要上线,生成二维码扫描进行下载,把生成好的apk挂在服务器端,将地址复制下来,通过草料二维码(http://cli.im/)生成一个二维码 也许你会看到有个app的选项,为什 ...
- Weixin 之 微信二维码扫描下载 Apk
制作的手机 app 需要上线,生成二维码扫描进行下载,把生成好的apk挂在服务器端,将地址复制下来,通过草料二维码(http://cli.im/)生成一个二维码. 在更多中,你会看到有个app的选项, ...
- Android仿微信二维码扫描
转载:http://blog.csdn.net/xiaanming/article/details/10163203 了解二维码这个东西还是从微信中,当时微信推出二维码扫描功能,自己感觉挺新颖的,从一 ...
随机推荐
- react-conponent-secondesElapsed
<!DOCTYPE html> <html> <head> <script src="../../build/react.js">& ...
- 2018-05-09 5分钟入门CTS-尝鲜中文版TypeScript
知乎原链 本文为中文代码示例之5分钟入门TypeScript的CTS版本. CTS作者是@htwx(github). 它实现了关键词和标准库的所有命名汉化. 本文并未使用附带的vscode相关插件(包 ...
- iphone屏幕镜像怎么用 手机投屏电脑
手机看视频有的时候总会感觉到累,屏幕太小看的不够爽又或者用手一直拿着手机看累得慌.我就就喜欢看电视因为电视屏幕大看的爽,而且现在很多手机视频都可以往电视上投影视频,那么iphone屏幕镜像怎么用? 使 ...
- Nginx 图片服务器
文件服务器:后台如果是集群,每次请求都会到不同的服务器,所以每台服务器的图片文件等都要做同步处理,才能保证每次用户不管访问到哪台服务器都能获取一样的资源.这种做法开销会很大,专门使用 nginx 作为 ...
- Python_json数据检索与定位之jsonPath类库
json数据检索与定位之jsonPath类库 by:授客 QQ:1033553122 实践环境 win7 64 Python 3.4.0 jsonpath_ng-1.4.3-py2.py3-non ...
- 30分钟彻底弄懂flex布局
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由elson发表于云+社区专栏 目前在不考虑IE以及低端安卓机(4.3-)的兼容下,已经可以放心使用flex进行布局了.什么是flex布 ...
- 你不可不知的Java引用类型之——ReferenceQueue源码详解
定义 ReferenceQueue是引用队列,用于存放待回收的引用对象. 说明 对于软引用.弱引用和虚引用,如果我们希望当一个对象被垃圾回收器回收时能得到通知,进行额外的处理,这时候就需要使用到引用队 ...
- 自动化测试基础篇--Selenium中数据参数化之TXT
摘自https://www.cnblogs.com/sanzangTst/p/7722594.html 一.搜索参数化 在TXT文件中保存需要搜索的内容: 测试代码: 1 #!/usr/bin/env ...
- td 元素属性 noWrap 防止折行、撑开及文字换行
最近调试程序,遇到如下问题: 也就是这个表格里面的文字被换行了,究其原因,主要是td中的width之和超过了100%导致的.谷歌了好久,终于发现,可以用noWrap="noWrap" ...
- ShellExecuteEX打开iqy文件导致excel hang的原因分析
1. 问题 当在console中调用API ShellExecuteEx打开"test.iqy"文件时,发现excel会hang住,console退出后excel才会响应,但直接双 ...