微信开发之二维码生成类

互联网 17-3-11
这篇文章主要介绍了PHP微信开发之二维码生成类,本文使用微信接口实现二维码的生成,并直接给出示例代码,需要的朋友可以参考下
<?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");    }    }

以上就是微信开发之二维码生成类的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:微信开发支付功能实例展示

相关资讯