话不多说,直接上代码,直接把APPID和APPSECRET改成自己的就能用了

  1. <?php
  2.  
  3. header('content-type:text/html;charset=utf-8');
  4.  
  5. //配置APPID、APPSECRET
  6.  
  7. $APPID = "APPID";
  8.  
  9. $APPSECRET = "APPSECRET";
  10.  
  11. //获取access_token
  12.  
  13. $access_token = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$APPID&secret=$APPSECRET";
  14.  
  15. //缓存access_token
  16.  
  17. session_start();
  18.  
  19. $_SESSION['access_token'] = "";
  20.  
  21. $_SESSION['expires_in'] = 0;
  22.  
  23. $ACCESS_TOKEN = "";
  24.  
  25. if(!isset($_SESSION['access_token']) || (isset($_SESSION['expires_in']) && time() > $_SESSION['expires_in'])) {
  26.  
  27. $json = httpRequest( $access_token );
  28.  
  29. $json = json_decode($json,true);
  30.  
  31. // var_dump($json);
  32.  
  33. $_SESSION['access_token'] = $json['access_token'];
  34.  
  35. $_SESSION['expires_in'] = time()+7200;
  36.  
  37. $ACCESS_TOKEN = $json["access_token"];
  38.  
  39. }else{
  40.  
  41. $ACCESS_TOKEN = $_SESSION["access_token"];
  42.  
  43. }
  44.  
  45. //构建请求二维码参数
  46.  
  47. //path是扫描二维码跳转的小程序路径,可以带参数?id=xxx
  48.  
  49. //width是二维码宽度
  50.  
  51. $qcode ="https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=$ACCESS_TOKEN";
  52.  
  53. $param = json_encode(array("path"=>"pages/index/index?id=123","width"=> 150));
  54.  
  55. //POST参数
  56.  
  57. $result = httpRequest( $qcode, $param,"POST");
  58.  
  59. //生成二维码
  60. file_put_contents("./qrcode.png", $result);
  61.  
  62. //把请求发送到微信服务器换取二维码
  63.  
  64. function httpRequest($url, $data='', $method='GET'){
  65.  
  66. $curl = curl_init();
  67.  
  68. curl_setopt($curl, CURLOPT_URL, $url);
  69.  
  70. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
  71.  
  72. curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
  73.  
  74. curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
  75.  
  76. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
  77.  
  78. curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
  79.  
  80. if($method=='POST')
  81.  
  82. {
  83.  
  84. curl_setopt($curl, CURLOPT_POST, 1);
  85.  
  86. if ($data != '')
  87.  
  88. {
  89.  
  90. curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
  91.  
  92. }
  93.  
  94. }
  95.  
  96. curl_setopt($curl, CURLOPT_TIMEOUT, 30);
  97.  
  98. curl_setopt($curl, CURLOPT_HEADER, 0);
  99.  
  100. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  101.  
  102. $result = curl_exec($curl);
  103.  
  104. curl_close($curl);
  105.  
  106. return $result;
  107.  
  108. }
  109.  
  110. ?>

微信小程序生成二维码并且扫码跳转并且携带参数的更多相关文章

  1. php微信小程序生成二维码,出现乱码,{"errcode":44002,"errmsg":"empty post data"},'{"errcode":41001,"errmsg":"access_token missing hint: [OoC.2a0822e255]"}',以及其他的坑

    微信小程序的坑简直比我的头发还多,今天下午获取微信二维码,遇到的44002,41001,还有图片没法正常显示以及小程序参数获取的问题,接下来一一解决 首先获取微信token然后再获取二维码这个没什么好 ...

  2. 微信小程序生成二维码

    微信小程序客户端生成二维码的方法, 请参考这里: https://github.com/demi520/wxapp-qrcode  代码片段如下: const QR = require(". ...

  3. 微信小程序生成二维码工具

    实现的效果 使用(非自适应) 完整代码请参考网址里https://github.com/tomfriwel/weapp-qrcode 页面wxml中放置绘制二维码的canvas: <canvas ...

  4. 微信小程序参数二维码6问6答

    微信小程序参数二维码[基础知识篇],从6个常见问题了解小程序参数二维码的入门知识. 1.什么是小程序参数码? 微信小程序参数二维码:针对小程序特定页面,设定相应参数值,用户扫描后进入相应的页面. 2. ...

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

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

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

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

  7. 微信小程序使用场景延伸:扫码登录、扫码支付

    微信小程序使用场景延伸:扫码登录.扫码支付 小程序最适合的使用场景有哪些?相比大家能列举出来很多,但这个场景,大家可能多数没想到_^ 笔者团队近期接到了一个PC项目:转转游戏租号PC官网,该项目要求在 ...

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

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

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

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

随机推荐

  1. Prometheus入门教程(三):Grafana 图表配置快速入门

    文章首发于[陈树义]公众号,点击跳转到原文:https://mp.weixin.qq.com/s/sA0nYevO8yz6QLRz03qJSw 前面我们使用 Prometheus + Grafana ...

  2. OpenSpiel 随笔 05.14

    ------------恢复内容开始------------ 这两天年总算把自己的游戏写完了,也通过了所有的测试. 我将自己的代码上传到了我的github上, 地址是 https://github.c ...

  3. CTF-pwn:老板,来几道简单pwn

    wdb_2018_3rd_soEasy 保护全关 在栈上写入shellcode,然后ret2shellcode from pwn import * local = 0pa binary = " ...

  4. SpringBook+Lombok 使用教程

    什么是Lombok? Lombok项目是一个Java库,它会自动插入编辑器和构建工具中,Lombok提供了一组有用的注释,用来消除Java类中的大量样板代码. Lombok也存在一定风险,在一些开发工 ...

  5. 关于transition中嵌套keep-alive的问题解决

    需求:在使用keep-alive的同时使用transition动画效果 最开始是这样写的,但是发现报错,而且动画效果失效 <transition name="container-rig ...

  6. curl 錯誤碼

    CURL状态码列表 状态码 状态原因 解释 0 正常访问 1 错误的协议 未支持的协议.此版cURL 不支持这一协议. 2 初始化代码失败 初始化失败. 3 URL格式不正确 URL 格式错误.语法不 ...

  7. python数据类型互相转换

    类型转换 关注公众号"轻松学编程"了解更多. 主要针对几种存储工具:list.tuple.dict.set 特殊之处:dict是用来存储键值对的. 1.list 转换为set l1 ...

  8. git使用心得体会

    序言:身为软件工程的学生却一直没有接触Git,实在有些羞愧.得益于孟宁老师的课程,让我对Git有了初步的认识.同样借由此次机会正式接触Git这款程序员必备工具. 参考文献:https://mp.wei ...

  9. 双重河内塔I

    双重河内塔问题 又称:双重汉诺塔问题 这是<具体数学:计算机科学基础(第2版)>中的一道课后习题 这道题也是挺有意义的,我打算写三篇随笔来讲这个问题 双重河内塔包含 2n 个圆盘,它们有 ...

  10. python代码实现抢票助手

    一. 代码使用Python+Splinter开发,Splinter是一个使用Python开发的开源Web应用测试工具,它可以帮你实现自动浏览站点和与其进行交互. 二. 安装好Python 3或2都可以 ...