Chinaunix首页 | 论坛 | 博客
  • 博客访问: 71768
  • 博文数量: 159
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 894
  • 用 户 组: 普通用户
  • 注册时间: 2016-10-10 11:17
文章分类

全部博文(159)

文章存档

2018年(74)

2017年(85)

我的朋友

分类: 其他平台

2017-11-23 14:42:42

【摘要】

进行微信公众号开发时,微信带参数的二维码处理是比较重要的一块内容,但是微信接**互的数据结构比较多变。本文介绍使用微信公众号接口,申请带参数的二维码。

【正文】

1、封装微信二维码的信息:

    微信接口地址: https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKEN

    $post_url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKEN";

    其中TOKEN为每个微信公众号调取微信接口的凭证,获取详情见微信公众号开发手册。

    整理数据:

    $data = array(

                    $expire_seconds => 604800,

                    $action_name => "QRSCENE",

                    $action_info => array(

                                scene => array(

                                        scene_id => 123,

                                            );        

                                );

                    );

    微信接收的数据模式为JSON,所以对数据做处理:

    $data = json_encode($data);

    得到的JSON数据如下:

    {"expire_seconds": 604800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": 123}}}

     参数说明

参数 说明
expire_seconds 二维码有效时间,以秒为单位。 最大不超过2592000(即30天),此字段如果不填,则默认有效期为30秒。
action_name 二维码类型,QR_SCENE为临时的整型参数值,QR_STR_SCENE为临时的字符串参数值,QR_LIMIT_SCENE为永久的整型参数值,QR_LIMIT_STR_SCENE为永久的字符串参数值
action_info 二维码详细信息
scene_id 场景值ID,临时二维码时为32位非0整型,永久二维码时最大值为100000(目前参数只支持1--100000)
scene_str 场景值ID(字符串形式的ID),字符串类型,长度限制为1到64  


2、定义HTTP请求方法,发送数据到微信。

     CURL方法:

     public function posts( $post_data ,$post_url ){ 

         curl_setopt( $this->ch, CURLOPT_URL, $post_url); 

         curl_setopt( $this->ch, CURLOPT_RETURNTRANSFER, 1 ); 

         curl_setopt( $this->ch, CURLOPT_HEADER, 0 ); 

         curl_setopt($this->ch, CURLOPT_POST, 1); 

         curl_setopt($this->ch, CURLOPT_POSTFIELDS, $post_data); 

         $result = curl_exec( $this->ch ); 

         return $result; 

         }

3、发送请求到微信接口,获取到二维码领取凭证。  


       $result = posts($data, $post_url);

       $result = (array)$result;

       $ticket  = $result['ticket'];

       最后获取到的微信二维码:https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKET

        例:https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=gQH47joAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL2taZ2Z3TVRtNzJXV1Brb3ZhYmJJAAIEZ23sUwMEmm3sUw==

        生成了这个二维码之后,当扫码时,在微信推送给公众号服务器的事件中,就会包含之前申请二维码时上传的参数了。

阅读(112) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册