1. /**
  2. * [生成小程序二维码]
  3. * @return [type] [description]
  4. */
  5. public function makeMiniQrcode_do() {
  6.  
  7. begin:
  8.  
  9. $id = input('id');// 获取token
  10. $ACCESS_TOKEN = $this->getAccesstoken();
  11. // 准备进入小程序的参数
  12. $param = json_encode(array("path" => "pages/shop/shop?mac=123", "width" => 150));
  13. // 请求微信生成二维码接口
  14. $request_url = "https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=$ACCESS_TOKEN";
  15. $result = httpRequest($request_url, $param, "POST");
  16. // 准备文件名
  17. $filename = date('YmdHis') . md5(time() . mt_rand(10, 99)) . '.png';
  18. $filepath = "/public/img/miniqrcode/" . $filename;
  19. // 将二进制图片写入文件
  20. if (@$fp = fopen(ROOT_PATH . $filepath, 'w+')) {
  21. fwrite($fp, $result);
  22. fclose($fp);
  23. }
  24. // 判断写入图片是否正常 如果不正常 则再次请求
  25. $info = getimagesize(ROOT_PATH . $filepath);
  26. if (!$info) {
  27. unlink(ROOT_PATH . $filepath);
  28. goto begin;
  29. }
  30. // 二维码路径写入数据库
  31. if (file_exists(ROOT_PATH . $filepath)) {
  32. pdo_update(array('id' => $id), 'equipment', array('miniqrcode' => $filepath));
  33. // header('Content-type:image/png');
  34. // echo file_get_contents(ROOT_PATH . $filepath);
  35. }
  36. }
  37.  
  38. /**
  39. * [获取AccessToken]
  40. * @return [type] [description]
  41. */
  42. private function getAccesstoken() {
  43. header('content-type:text/html;charset=utf-8');
  44. //配置APPID、APPSECRET
  45. $config = config('mini_program');
  46. $APPID = $config['APPID'];
  47. $APPSECRET = $config['APPSECRET'];
  48. // 请求地址
  49. $getTokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$APPID&secret=$APPSECRET";
  50.  
  51. $ACCESS_TOKEN = "";
  52. // session中没有token
  53. if (!isset($_SESSION['access_token']) || (isset($_SESSION['expires_in']) && time() > $_SESSION['expires_in'])) {
  54. $jsonResult = httpRequest($getTokenUrl);
  55. $jsonResult = json_decode($jsonResult, true);
  56. // var_dump($json);
  57. $_SESSION['access_token'] = $jsonResult['access_token'];
  58. $_SESSION['expires_in'] = time() + 7200;
  59. $ACCESS_TOKEN = $jsonResult["access_token"];
  60. } else {
  61. // session中有token 直接使用
  62. $ACCESS_TOKEN = $_SESSION["access_token"];
  63. }
  64. return $ACCESS_TOKEN;
  65. }
  1. /**
  2. * curl 请求
  3. * @param [type] $url [请求地址]
  4. * @param string $data [参数]
  5. * @param string $method [请求方式]
  6. * @return [type] [description]
  7. */
  8. function httpRequest($url, $data = '', $method = 'GET') {
  9. $curl = curl_init();
  10. curl_setopt($curl, CURLOPT_URL, $url);
  11. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
  12. curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
  13. curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
  14. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
  15. curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
  16. if ($method == 'POST') {
  17. curl_setopt($curl, CURLOPT_POST, 1);
  18. if ($data != '') {
  19. curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
  20. }
  21. }
  22.  
  23. curl_setopt($curl, CURLOPT_TIMEOUT, 30);
  24. curl_setopt($curl, CURLOPT_HEADER, 0);
  25. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  26. $result = curl_exec($curl);
  27. curl_close($curl);
  28. return $result;
  29. }

1

PHP生成小程序二维码的更多相关文章

  1. node 无脑生成小程序二维码图

    RT 新建createwxaqrcode.js: const request = require('request') const fs = require('fs') // eg:生成购物车列表圆形 ...

  2. PHP生成小程序二维码合成图片生成文字

    这部分代码是写在项目上的代码,THINKPHP3.1如果迁移到其他的地方应该要稍稍改动一下以适合自己的项目 function get_bbox($text,$fsize,$ffile){ return ...

  3. Java 获取微信小程序二维码(可以指定小程序页面 与 动态参数)

    一.准备工作 微信公众平台接口调试工具 小程序的唯一标识(appid) 小程序的密钥(secret) 二.获取access_token 打开微信公众平台接口调试工具,在参数列表中输入小程序的appid ...

  4. 小程序二维码生成接口API

    获取小程序码 我们推荐生成并使用小程序码,它具有更好的辨识度.目前有两个接口可以生成小程序码,开发者可以根据自己的需要选择合适的接口. 接口A: 适用于需要的码数量较少的业务场景 接口地址: http ...

  5. php生成微信小程序二维码源码

    目前有3个接口可以生成小程序码,开发者可以根据自己的需要选择合适的接口.第一步:获取   access_token public function getWxAccessToken(){ $appid ...

  6. .NET生成小程序码,并合自定义背景图生成推广小程序二维码

    前言: 对于小程序大家可能都非常熟悉了,随着小程序的不断普及越来越多的公司都开始推广使用起来了.今天接到一个需求就是生成小程序码,并且于运营给的推广图片合并在一起做成一张漂亮美观的推广二维码,扫码这种 ...

  7. 微信小程序二维码推广统计

    微信小程序可以通过生成带参数的二维码,那么这个参数是可以通过APP的页面进行监控的 这样就可以统计每个二维码的推广效果. 今天由好推二维码推出的小程序统计工具HotApp小程序统计也推出了带参数二维码 ...

  8. 微信小程序-二维码汇总

    小程序二维码在生活中的应用场景很多,比如营销类一物一码,扫码开门,扫码付款等...小程序二维码分两种? 1.普通链接二维码 即跟普通的网站链接生成的二维码是一个意思,这种二维码的局限性如下: 对于普通 ...

  9. 图片的URL上传至阿里云OSS操作(微信小程序二维码返回的二进制上传到OSS)

    当我们从网络中获取一个URL的图片我们要存储到本地或者是私有的云时,我们可以这样操作  把url中的图片文件下载到本地(或者上传到私有云中)  public String uploadUrlToOss ...

随机推荐

  1. 014-交互式Shell和shell脚本获取进程 pid

    Linux 的交互式 Shell 与 Shell 脚本存在一定的差异,主要是由于后者存在一个独立的运行进程 1.交互式 Bash Shell 获取进程 pid 在已知进程名(name)的前提下,交互式 ...

  2. 类加载器ClassLoader源码解析

    1.ClassLoader作用 类加载流程的"加载"阶段是由类加载器完成的. 2.类加载器结构 结构:BootstrapClassLoader(祖父)-->ExtClassL ...

  3. getBrandWCPayRequest 和 chooseWXPay 的区别

    getBrandWCPayRequest 和 chooseWXPay 都是发起微信支付请求,chooseWXPay 依赖 http://res.wx.qq.com/open/js/jweixin-1. ...

  4. Superset配置impala数据源

    1.安装impyla pip install impyla 2.在superset页面配置如下,此时impala是有kerberos认证的 impala://xxxx:xx/default?auth_ ...

  5. EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器解决方案之Grunt的使用简介

    什么是Grunt? Grunt,简而言之,就是运行在Node.js上面的任务管理器(task runner),其可以在任何语言和项目中自动化指定的任务.我们可通过npm来安装Grunt和Grunt插件 ...

  6. ODAC Developer Downloads - Oracle Universal Installer

    https://www.baidu.com/link?url=BL2vRNMWap6AFJcmsFCEKi3KxZ2SgmtVJoihVKhF-SPgzvJHNkbk_j7nz1HdtAAWZ22NM ...

  7. 【loj6538】烷基计数 加强版 加强版 Burnside引理+多项式牛顿迭代

    别问我为啥突然刷了道OI题,也别问我为啥花括号不换行了... 题目描述 求含 $n$ 个碳原子的本质不同的烷基数目模 $998244353$ 的结果.$1\le n\le 10^5$ . 题解 Bur ...

  8. Intellij IDEA设置类注释和方法注释

    背景:工欲善其事必先利其器,如果不能把工具用熟练了, 感觉很是别扭. 参考:IntelliJ IDEA设置类注释和方法注释 IntelliJ IDEA 中创建类的时候,可以直接自动给类加注释的设置,以 ...

  9. Ubuntu下局域网快速分享文件

    本地主机名:zhang 本地环境:Ubuntu 18.04.3 工作中经常需要在多个机器上互传文件,本文分享一种便捷的方法,仅供应急使用. 利用了mdns和python3内置的httpServer.( ...

  10. linux查看openssh和openssl版本

    查看 openssh 版本命令 ssh -V 查看 openssl 版本命令 openssl version