微信开发只 二维码生成类库

最近weiphp 二次开真的有点累,漏洞百出。代码维护代价有点高。

<?php
/**
 * Created by PhpStorm.
 * User: bin
 * Date: 15-1-16
 * Time: 上午9:48
 */
namespace Home\Common;

// 微信处理类
set_time_limit(30);
class Weixin{
    //构造方法
    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($wechatid,$fqid,$type = 1){
        $wechat = M(‘Member_public‘)->where(array(‘id‘=> $wechatid))->find();
        $appid = $wechat[‘appid‘];
        $secret = $wechat[‘secret‘];
        $ACCESS_TOKEN = $this->getToken($appid,$secret);
        $url = $this->getQrcodeurl($ACCESS_TOKEN,$fqid,1);
        return 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_id": ‘.$fqid.‘}}}‘;
        }else{
            //生成临时二维码
            $qrcode = ‘{"expire_seconds": 1800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": ‘.$fqid.‘}}}‘;
        }
        $result = $this->http_post_data($url,$qrcode);
        $oo = json_decode($result[1]);
        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.‘.jpg‘;
        ob_start();
        readfile($url);
        $img=ob_get_contents();
        ob_end_clean();
        $size=strlen($img);
        $fp2=fopen(‘./Uploads/qrcode/‘.$filename,"a");
        if(fwrite($fp2,$img) === false){
            $this->ErrorLogger(‘dolwload image falied. Error Info: 无法写入图片‘);
            exit();
        }
        fclose($fp2);
        return ‘./Uploads/qrcode/‘.$filename;
    }

    private function ErrorLogger($errMsg){
        $logger = fopen(‘./ErrorLog.txt‘, ‘a+‘);
        fwrite($logger, date(‘Y-m-d H:i:s‘)." Error Info : ".$errMsg."\r\n");
    }

}
时间: 2024-12-22 08:26:51

微信开发只 二维码生成类库的相关文章

jquery-qrcode客户端二维码生成类库扩展--融入自定义Logo图片

年后换了部门,现在主要的职责就是在网上卖精油,似乎这个就是传说中的网络营销. 跟着公司的MM们也了解不了少关于网络营销的知识,间接的了解到马云和刘强东都是些怎样龌龊的人,尽管之前也这样认为. 淘宝就不多说了,全球最大的中文假货销售平台(尽管淘宝没有打出全球中文等字样,可是其必须当之无愧).百度,当当等厚颜无耻之徒的明智之举就在于此,老外做的再大也很少会有直接支持中文的,因此他们都会在其名称前增加:“全球最大的中文”等字样,为自己镶金. 之前还一直比较力挺京东的,认为其根本自营根本不会销售假货,所

HP QR Code (php二维码生成类库)

HP QR Code是一个PHP二维码生成类库,利用它可以轻松生成二维码,官网提供了下载和多个演示demo,查看地址: http://phpqrcode.sourceforge.net/ 下载官网提供的类库后,只需要使用phpqrcode.php就可以生成二维码了,当然您的PHP环境必须开启支持GD2. phpqrcode.php提供了一个关键的png()方法,其中参数$text表示生成二位的的信息文本:参数$outfile表示是否输出二维码图片 文件,默认否:参数$level表示容错率,也就是

利用phpqrcode二维码生成类库和imagecopymerge函数制拼接图片的经验

前期准备 引入phpqrcode类库(下载地址:https://sourceforge.net/projects/phpqrcode/) PHP开启GD扩展库支持 1.利用phpqrcode生成二维码: 原理分析: 下载下来的类文件是一个压缩包,包含很多文件和演示程序,我们只需要里边的phpqrcode.php 这一个文件就可以生成二维码了,它是一个多个类的集合文件,我们需要用到里边的QRcode类的png()方法: public static function png($text, $outf

利用phpqrcode二维码生成类库合成带logo的二维码并且用合成的二维码生成海报(二)

前期准备 引入phpqrcode类库(下载地址:https://download.csdn.net/download/weixin_37557729/11891240:支持彩色二维码的下载地址:https://download.csdn.net/download/weixin_37557729/11891244) PHP开启GD扩展库支持 1.利用phpqrcode生成二维码: 原理分析: 下载下来的类文件是一个压缩包,包含很多文件和演示程序,我们只需要里边的phpqrcode.php 这一个文

java微信小程序参数二维码生成带背景图加字体(无限生成)

需求 :  1,因为项目需求 ,生成数以万计的二维码    2 ,每个二维码带不同的参数  3,二维码有固定背景图 4 , 往生成图片上写入 字体和编号(动态 ) 设计技术 :    1,微信接口token ,nginx 缓存  2,二维码 图片定义 写字 maven <dependency> <groupId>com.twelvemonkeys.imageio</groupId> <artifactId>imageio-jpeg</artifactI

java基于谷歌开发的zxing包开发的二维码生成工具

不得不说,二维码的应用越来越广泛了.废话不多说了.. 此处采用的jar不多,只用zxing包里面的core.jar包即可,大家自行下载, 如果是百度云盘,地址为:http://pan.baidu.com/s/1eQeWFaq 以后很多的博客资源将会更新到这个地址中,大家尽量把资源转移自己的盘,防止链接某天突然挂了. 实例: genQRCode(String content,String url),其中url绝对路径,就是这个类的调用方法,返回值二维码文件名,生成png格式(如需其他,自行更改),

微信公众平台开发,模板消息,网页授权,微信JS-SDK,二维码生成(4)

微信公众平台开发,模板消息,什么是模板消息,模板消息接口指的是向用户发送重要的服务通知,只能用于符合场景的要求中去,如信用卡刷卡通知,购物成功通知等等.不支持广告营销,打扰用户的消息,模板消息类有固定的模板,每个账号可以使用25个模板,模板消息上线每日10万次,粉丝数上涨到10w/100w/1000w/模板消息的上线次数会自动上调.模板接口调用主要注意事项:模板ID和模板赋值这两点.模板参数内容必须以.DATA结尾,模板保留符号"{{}}".使用步骤如下: 1.设置所属行业,这个可以在

微信公众号二维码怎么生成

微信公众号二维码生成 import qrcode qr = qrcode.QRCode( version=1, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=10, border=2, ) #支持文字 qr.add_data('二维码生成') #支持链接 #qr.add_data('http://www.weihaobang.com') qr.make(fit=True) img = qr.make_image() #保存

超实用python小项目--基于python的手机通讯录二维码生成网站--1、项目介绍和开发环境

这个项目是我做完整的第一个python web项目,对于新手来说,这个项目绝对是一个特别好的练手项目. 起名还是困难,但是自己确实比较烦输入这么长的名字(手机通讯录二维码生成网站)去定义这个网站,所以还是给这个项目起个名字吧,叫什么呢?就叫 "鹅日通讯录"吧(Earth address list). --------------------------------------------------------------------------------------------我是