生成微信小程序分享二维码

微信小程序官方开放的二维码的接口,其中有一个是生成小程序二维码的,还有一个是圆形的小程序码,我这里就用php生成二维码。

完整代码:

  public function share($product_id, $user_id) {//首先要获取Access_token 。注意:access_token只有2小时有效期,所以要缓存最好,避免重复请求$access_token = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" . config('appid') . "&secret=" . config('secret');$json = $this->httpRequest($access_token);$json = json_decode($json, true);//width是二维码宽度$qcode = "https://api.weixin.qq.com/wxa/getwxacode?access_token=" . $json['access_token'];$param = json_encode(array("path" => "/pages/public/product/product?id=" . $product_id . "&parent_id=" . $user_id . "&product_id=" . $product_id, "width" => 150));  //path 是小程序的落地页(小程序分享页面)后面可以带参数 //POST参数$result = $this->httpRequest($qcode, $param, "POST");//生成二维码$file_name = '/home/resource/' . time() . rand(1000, 9999) . '.jpg';file_put_contents($file_name, $result);// $base64_image = base64_encode('data:image/png;base64'.$result);$qiniuConfig = config('qiniu');$auth = new Auth($qiniuConfig['accessKey'], $qiniuConfig['secretKey']);$key = time() . rand(1000, 9999) . '.jpg';$upToken = $auth->uploadToken($qiniuConfig['merchantBucket'], $key, 3600); //获取上传所需的toke$uploadMgr = new UploadManager();list($ret, $err) = $uploadMgr->putFile($upToken, $key, $file_name);if (empty($err)) {unlink($file_name); //删除本地图片} else {return DataReturnService::returnError(-1, '获取分享商品二维码失败', ['']);}$ret['key'] = $qiniuConfig['merchantDomain'] . $ret['key'];return DataReturnService::returnOk($ret, '获取分享商品二维码成功');}
public function httpRequest($url, $data = '', $method = 'GET') {$curl = curl_init();curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);curl_setopt($curl, CURLOPT_AUTOREFERER, 1);if ($method == 'POST') {curl_setopt($curl, CURLOPT_POST, 1);if ($data != '') {curl_setopt($curl, CURLOPT_POSTFIELDS, $data);}}curl_setopt($curl, CURLOPT_TIMEOUT, 30);curl_setopt($curl, CURLOPT_HEADER, 0);curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);$result = curl_exec($curl);curl_close($curl);return $result;}

微信小程序分享二维码生成相关推荐

  1. 微信小程序转二维码方法分享

    微信小程序转二维码方法分享 需要转码的可以看看 这个东西是看个人需求的,618就要来了,各种活动也将来袭 有些小伙伴不知道怎么生成 为了方便小程序邀请活动没法外发,这里分享下将小程序转二维码的方法 首 ...

  2. 【微信小程序】二维码跳转规则的前缀匹配是什么意思?

    前言 基础库 2.12.0 开发者工具 1.03.2008270 微信小程序的二维码跳转规则 为了方便小程序开发者更便捷地推广小程序,兼容线下已有的二维码,微信公众平台开放扫描普通链接二维码跳转小程序 ...

  3. 微信小程序获取二维码中URL中带的参数

    解析微信小程序获取二维码中的url参数 onLoad: function (options) { console.log(options) let qrUrl = decodeURIComponent ...

  4. 小程序推广二维码生成

    小程序推广二维码生成 <?php$appid = '***************';$secret ='********************************';$url = &qu ...

  5. 微信小程序普通二维码解析

    1.区别于微信小程序官方二维码是直接从onLoad的 options 解构出来就行,它是一个对象,这个大家都知道. 2.普通二维码 也是从onLoad的 options 里解构出来,此时options ...

  6. 微信小程序扫描二维码或者条码

    程序是需要扫描条形码然后跳转到对应的产品信息页,其实微信小程序就有一个扫码识别的API,下面一起来看看: wx.scanCode(Object object) 调起客户端扫码界面进行扫码. 示例代码: ...

  7. 微信小程序获取二维码接口整理,.Net Core后台获取小程序二维码

    2019独角兽企业重金招聘Python工程师标准>>> 一.关于二维码接口说明 参考:https://my.oschina.net/tianma3798/blog/1811307 获 ...

  8. C#生成微信小程序文章二维码

    /// <summary>/// 获取access_token/// </summary>/// <returns></returns>[HttpGet ...

  9. 小程序海报二维码生成插件

    分享一个小程序海报二维码插件 建议使用方式: 测试环境先改造封装成自己需要的类文件,再引入框架使用,生成图片参考截图 金装 下载地址 海报生成源码下载

最新文章

  1. 解压版mysql安装服务失败怎么办_mysql-8.0.17解压版安装步骤及MySQL服务无法启动问题的解决办法...
  2. AI = “Automated Inspiration(灵感自动化)”
  3. Racktables(一)的资产管理软件安装配置
  4. Kettle使用_3变量替换之获取系统信息与命名参数
  5. 服务器在行例维护中,8月14日服务器例行维护公告
  6. C语言——二分法查找一个数_数组
  7. BitCome比特彗星v1.82豪华版(bt下载)
  8. while循环random结合_Java 经典算法:二分法查找(循环和递归两种方式实现)
  9. Git学习总结(1)——Git使用详细教程
  10. spring案列——annotation配置
  11. java内存模型及GC原理
  12. node.js 谷歌翻译api
  13. python - 搜狗词库 (.scel 文件转 txt)
  14. 【裴礼文数学分析】例1.1.5
  15. switch删除用户显示正在维护服务器,Switch即将迎来6.0更新 账号与用户无法再正常解绑...
  16. 【pyTranscriber】开源免费语音转字幕软件及替代方案
  17. 威富通 全付通 中信 支付 PHP 一些问题总结(签名机制,sign:This field is required,no start line ,回调机制,漏单)
  18. Gradle基础教程
  19. 连接网络计算机提示没有访问权限,无网络访问权限,教您无网络访问权限怎么办...
  20. 【深度学习之美】山重水复疑无路,最快下降问梯度(入门系列之七)

热门文章

  1. IDEA如何配置Tomcat?
  2. KT1025A蓝牙芯片模块关于录音功能的一些常见问题_以及解答
  3. 路由与交换系列之企业级ipv6和AAA通讯实验(上)
  4. 解决Word2010中插入图片时变成空白框问题
  5. RRDTOOL 学习
  6. 日历 fullCalendar 整合农历
  7. TLC5916IDR
  8. centos7配置squid代理(透明代理)
  9. 网页显示服务器拒绝了链接,网页出现服务器拒绝链接
  10. 怎么用c语言编写画图软件,大佬们,小菜鸟想问一问用vc编译器做简易画图软件...