微信开发之--生成二维码
微信的二维码分为两种:临时的和长期的
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。
声明:本文内容仅是本人学习的记录,不保证在项目中可用,若引用此代码导致了严重后果,本人不承担任何法律责任。