微信开发之--生成二维码

  微信的二维码分为两种:临时的和长期的

1、临时二维码,是有过期时间的,最长可以设置为在二维码生成后的30天(即2592000秒)后过期,但能够生成较多数量。临时二维码主要用于帐号绑定等不要求二维码永久保存的业务场景
2、永久二维码,是无过期时间的,但数量较少(目前为最多10万个)。永久二维码主要用于适用于帐号绑定、用户来源统计等场景。

  你可以根据自己的需要获取适当的二维码,下面代码演示临时二维码的获取,永久二维码步骤一样只是参数上不同而已。

  获取二维码分两步,1、先获取ticket票据 2、根据ticket票据去获取二维码。

 1 /**
 2      * 获取二维码
 3      */
 4     public function getQrCode()
 5     {
 6         $token = getToken( config('TOKENURL') );
 7         if( 1 != $token['code'] ){
 8             return $token;
 9         }
10 
11         $url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=" . $token['token'];
12         //{"expire_seconds": 604800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": 123}}}
13         $data = [
14             'expire_seconds' => 604800,
15             'action_name' => 'QR_SCENE',
16             'action_info' => [
17                 'scene' => [
18                     'scene_id' => 121
19                 ]
20             ]
21         ];
22 
23         $result = json_decode( curl( $url, json_encode( $data ), "POST"), true );
24 
25         //根据ticket获取二维码图片
26         $imgUrl = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=" . urlencode( $result['ticket'] );
27         echo "<img src='" . $imgUrl . "'>";
28     }

  我这里演示的是通过tp5框架,不过看一下思路就行了。

  此时通过浏览器访问,就会获取二维码:

  

  记住代码中的 场景id 即scene_id,实际的应用中我们可以将这个值设置成我们的用户id,这样用户通过这个二维码推广,我们就可以记录每个人推广了多少个用户,方便统计。

  下面用过手机扫描这个二维码,就会向公众账号推送事件,如果已经关注了这个公众账号,那么他就会推送这些信息

  

  如果扫码的用户并没有关注这个账号,则推送关注事件,并且会传入以qrscene_为前缀,后面接scene_id。

  

posted @ 2016-10-09 11:21  NickBai  阅读(1489)  评论(0编辑  收藏  举报