网页授权——扫二维码获取openid

1. 生成二维码:

生成二维码比较简单的方法是直接使用phpqrcode程序包(可在网上下载得到)。

若想获得ThinkPHP支持,需将程序包放在ThinkPHP/Extend/Vendor目录下,让后在程序中引用,代码如下:

vendor("phpqrcode.phpqrcode");

//要生成二维码的数据

$text="扫码后要跳转的页面的url";

//纠错级别, 纠错级别越高,生成图片会越大 //L水平 7%的字码可被修正 //M水平 15%的字码可被修正 //Q水平 25%的字码可被修正 //H水平 30%的字码可被修正

$level = "L";

//图片每个黑点的像素。 $size = "10"; //生成图片 第二个参数:是否保存成文件 如需要保存文件,第二个参数改为文件名即可,如:qrcode.png QRcode::png($text,false,$level,$size);

2. 网页授权:

要获取用户的openid,需要进行网页授权。

首先要到公众平台官网的开发者中心页配置授权回调域名。

将二维码url设置为:

  appid=公众appid&

  redirect_uri=扫码后要跳转的页面url&   response_type=code&   scope=snsapi_base&   state=1#wechat_redirect";

注意:有时候$text内部换行会导致一个错误,就是用户扫码的时候会出现“AppID参数错误”,还有一个问题就是安卓手机扫描页面跳转正常,但是用苹果手机扫描的时候还是会出现“AppID参数错误”,所以应该将$text表示如下:

这样就不会出错了,而且支持安卓手机和苹果手机正常扫码。

这样用户扫二维码后就会跳转到指定的url,并且传递了参数过来。然后就可以在跳转的页面中获取code,换取access_token,由于获取access_token的同时也获取到了openid,所以如果只需获取用户id,到这一步就已经实现了,代码如下:

$res=file_get_contents($get_token_url); $json_obj = json_decode($res,true); $openid = $json_obj[openid];

$openid即为扫码用户的openid。

1. 生成二维码: 生成二维码比较简单的方法是直接使用phpqrcode程序包(可在网上下载得到)。 若想获得ThinkPHP支持,需将程序包放在ThinkPHP/Extend/Vendor目录下,让后在程序中引用,代码如下: vendor("phpqrcode.phpqrcode"); //要生成二维码的数据 $text="扫码后要跳转的页面的url"; //纠错级别, 纠错级别越高,生成图片会越大 //L水平 7%的字码可被修正 //M水平 15%的字码可被修正 //Q水平 25%的字码可被修正 //H水平 30%的字码可被修正 $level = "L"; //图片每个黑点的像素。 $size = "10"; //生成图片 第二个参数:是否保存成文件 如需要保存文件,第二个参数改为文件名即可,如:qrcode.png QRcode::png($text,false,$level,$size); 2. 网页授权: 要获取用户的openid,需要进行网页授权。 首先要到公众平台官网的开发者中心页配置授权回调域名。 将二维码url设置为:   appid=公众appid&   redirect_uri=扫码后要跳转的页面url&   response_type=code&   scope=snsapi_base&   state=1#wechat_redirect"; 注意:有时候$text内部换行会导致一个错误,就是用户扫码的时候会出现“AppID参数错误”,还有一个问题就是安卓手机扫描页面跳转正常,但是用苹果手机扫描的时候还是会出现“AppID参数错误”,所以应该将$text表示如下: 这样就不会出错了,而且支持安卓手机和苹果手机正常扫码。 这样用户扫二维码后就会跳转到指定的url,并且传递了参数过来。然后就可以在跳转的页面中获取code,换取access_token,由于获取access_token的同时也获取到了openid,所以如果只需获取用户id,到这一步就已经实现了,代码如下: $res=file_get_contents($get_token_url); $json_obj = json_decode($res,true); $openid = $json_obj[openid]; $openid即为扫码用户的openid。
经验分享 程序员 微信小程序 职场和发展