词条信息

admin
admin
超级管理员
词条创建者 发短消息   

相关词条

热门词条

更多>>
什么是端口?到底是做什么的呢?
端口一般指两种,一种是硬件比如路由器或者交换机的插网线的端口,一种是软件的逻辑的概念,比如http的80端口!...
7种进阶方法让你快速测试端口连通性
Ping是Windows、Linux和Unix系统下的一个检查网络连通性的命令工具,对于大部分互联网用户来说很...
电脑开机,总需要按F1,是什么原因造成的?
一.主板掉电这个说法是行业内的叫法了,一般是主板的CMOS电池没电了导致的。也是最常见的一种提示你按F1的提示...
社保降费对个人有什么影响?
下调城镇职工基本养老保险单位缴费比例是政府给企业发的一个大红包,特别是对于企业来说是一个利好,但是对个人来说有...
车辆“出险”对下年保费的影响,到底有多大?
【出险对交强险的影响】【出险对商业险的影响】车辆“出险”对下年保费的影响,到底有多大?这里有必要先提下车险第三...
解决网 >>所属分类 >> 程序开发    小程序   

微信小程序之二维码获取

标签: 微信 小程序 二维码

顶[0] 发表评论(0) 编辑词条

综述:微信提供三中接口来请求二维码,即 A B C 三中接口,其区别不多说,直接看微信官方手册,网址https://developers.weixin.qq.com/miniprogram/dev/api/qrcode.html 经过仔细查看手册后,发现需要请求二维码,必须先请求access token,请求网址 https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential 所传参数为,appid和appsecret,然后拿accesstoken去


目录

方法一:在微信小程序js中请求编辑本段回目录


用真实的appid和appsecret替换下面的appid和appsecret直接congsole就可看见二维码的二进制形式,这时候二维码就请求出来了,


注意:在这块如果是开发工具填写了appid,则将打开开发工具右上角详情----->不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书 (勾选)但是微信小程序请求的二维码是二进制形式所以建议在后端去请求,因为请求的二维码是二进制形式,请求后,将请求二进制二维码直接保存成图片,详见方法二 我用的是php语言所以就做一个案例了


wx.request({

 // 获取token

 url: 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential',

 data: {

 appid: '*****',

 secret: '*******'

 },

 success(res) {

 wx.request({

 // 调用接口C

 url: 'https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=' + res.data.access_token,

 method: 'POST',

 data: {

 "path": "pages/meiTuan/meiTuan",

 "width": 430

 },

 success(res) {

 console.log(res)

 // res是二进制流,后台获取后,直接保存为图片,然后将图片返回给前台

 }

 })

 }

 })

 },



方法二:用php远程请求accesstoken编辑本段回目录


1.用php远程请求accesstoken,这里说点题外话进行点扩展


 php远程请求有多种方式:如 


            (1)用file_get_contents 以get方式获取内容   


            (2)用fopen打开url,用get方式获取


            (3)用file_get_contents 以post方式获取内容 


            (4)用fsockopen函数打开url,以get方式获取完整的数据,包括header和body,fsockopen需要 PHP.ini 中  allow_url_fopen 选项开启 


            (5)用fsockopen函数打开url,以POST方式获取完整的数据,包括header和body


             (6)使用curl库,使用curl库之前,可能需要查看一下php.ini是否已经打开了curl扩展


            这里我写一下第6中,通过curl方式请求微信小程序accesstoken,代码如下(可复制直接用)


 $appid='***';

    $appsecret='****';

//请求accesstoken接口

 $url='https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appid.'&secret='.$appsecret;

 $https=true;

 $method='get';

 $data=null;

 //1.初始化url

 $ch = curl_init($url);

 //2.设置相关的参数

 //字符串不直接输出,进行一个变量的存储

 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

 //判断是否为https请求

 if($https === true){

     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

 }

 //判断是否为post请求

 if($method == 'post'){

     curl_setopt($ch, CURLOPT_POST, true);

     curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

 }

 //3.发送请求获取数据

 $str = curl_exec($ch);

 //4.关闭连接
 

 curl_close($ch);   



 2.通过以上请求到的accesstoken来获取小程序二维码并保存,这里需要注意的是,以上的curl请求可以封装成函数在上面和这个时候调用,由于我是写给没有基础的伙伴们的,所以我就不封装了,你们在实际工作中去封装吧 。


  //获取请求到的结果讲上面获取的accresstoken进行解码成数组,然后获取accesstoken值

         $arr = json_decode($str,true);

         $access_token=$arr['access_token'];

         //获取二维码,但是切记这里accesstoken不能用通过post传值,只能用get传值

         $url='https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token='.$access_token;

         $data['scene']="uid=".$user_id;

         $data['path']=$path;

         $data['width']=$width;

         $post_data=json_encode($data);

         $https=true;

         $method='post';

         //1.初始化url

         $ch = curl_init($url);

         //2.设置相关的参数

         //字符串不直接输出,进行一个变量的存储

         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

         //判断是否为https请求

         if($https === true){

             curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

             curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

         }

         //判断是否为post请求

         if($method == 'post'){

             curl_setopt($ch, CURLOPT_POST, true);

             curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);

         }

         //3.发送请求

         $str = curl_exec($ch);

         //4.关闭连接 至此二维码的二进制值为$str

         curl_close($ch);


3将二维码的二进制值保存为图片编辑本段回目录


 //获取当前时间措  

 $time=time();

 //指定文件保存路径

         $file = "static/smallwechat$time.jpg";

 //进行保存

         $res=file_put_contents($file, $str);

 //如果保存成功返回路径

         if($res!=0){

             return json_encode($file,JSON_UNESCAPED_UNICODE);

 

 

附件列表


按字母顺序浏览:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

→我们致力于为广大网民解决所遇到的各种电脑技术问题
 如果您认为本词条还有待完善,请 编辑词条

上一篇帝国ECMS二维码插件
下一篇支付宝集五福来了,有什么新套路?

0
1. 本站部分内容来自互联网,如有任何版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
2. 本站内容仅供参考,如果您需要解决具体问题,建议您咨询相关领域专业人士。
3. 如果您没有找到需要的百科词条,您可以到百科问答提问或创建词条,等待高手解答。

关于本词条的提问

查看全部/我要提问>>