easywechat 扫码事件_基于thinkphp5.1和easyWeChat实现第三方平台扫码授权

本文介绍了如何在ThinkPHP5.1框架中结合EasyWeChat库实现第三方平台的扫码授权功能。通过`getPreAuthorizationUrl`获取授权链接,用户扫码后,处理授权回调,获取授权码并转换为access_token和refresh_token,更新到数据库。
摘要由CSDN通过智能技术生成

1 <?php2

3 namespace app\wechat\controller;4

5 useEasyWeChat\Factory;6 useEasyWeChat\Kernel\Messages\News;7 useEasyWeChat\Kernel\Messages\NewsItem;8 useEasyWeChat\OpenPlatform\Server\Guard;9 useEasyWeChat\OpenPlatform\Auth;10 usethink\Controller;11 usethink\Db;12 usethink\facade\Cookie;13 usethink\facade\Cache;14

15 class Wxnotify extendsAction16 {17

18 public functionnotify(){19

20 $config = $this->getOpenConfig();21 $openPlatform = Factory::openPlatform($config);22

23 $server = $openPlatform->server;24

25 return $server->serve();26 }27

28 public functionauth(){29

30 $config = $this->getOpenConfig();31 $openPlatform = Factory::openPlatform($config);32 $response = $openPlatform->getPreAuthorizationUrl('http://t.lznews.cn/wxcallback');33

34 header("Location: $response");35 }36

37 public functionwxcallback(){38 $config = $this->getOpenConfig();39 $openPlatform = Factory::openPlatform($config);40 $server = $openPlatform->server;41 $server->push(function ($message) {42

43 }, Guard::EVENT_AUTHORIZED);44

45 $aa = request()->param();46

47 /*array(2) {48 ["auth_code"] => string(102) "queryauthcode@@@wZUEjJoHPKu-tQhOIsMDA-soRJGxfIp6frb42Geeoqj4F7-qoNV1TgooEsA2GnkaA9kAXa3Ee8udYgsSop1rUQ"49 ["expires_in"] => string(4) "3600"50 }*/

51

52 $code = $openPlatform->handleAuthorize($aa['auth_code']);53

54 /*array(1) {55 ["authorization_info"] => array(5) {56 ["authorizer_appid"] => string(18) "wx99ed51ac55c8b9c1"57 ["authorizer_access_token"] => string(157) "17_IoCi_gV1D_o3xaU1Ifsh8RR5DNKEUldVQoR975StqVHRs5pDpvIPYu8NNGwUjc9NezrQiATPiyMweLSo0OQg3wc6OQDYSdbVorUQGVk403sCNm-DrT5ZksWLw2J8exZI-1caib3gJguiED8YZPNeAMDMCA"58 ["expires_in"] => int(7200)59 ["authorizer_refresh_token"] => string(58) "refreshtoken@@@G-xqVs6CF_cPNX2z24m74GoCse9kCvzMJlUqd9Xrrn8"60 ["func_info"] => array(21) {61 [0] => array(1) {62 ["funcscope_category"] => array(1) {63 ["id"] => int(1)64 }65 }66 [1] => array(1) {67 ["funcscope_category"] => array(1) {68 ["id"] => int(15)69 }70 }71 [2] => array(1) {72 ["funcscope_category"] => array(1) {73 ["id"] => int(4)74 }75 }76 [3] => array(1) {77 ["funcscope_category"] => array(1) {78 ["id"] => int(7)79 }80 }81 [4] => array(1) {82 ["funcscope_category"] => array(1) {83 ["id"] => int(2)84 }85 }86 [5] => array(1) {87 ["funcscope_category"] => array(1) {88 ["id"] => int(3)89 }90 }91 [6] => array(1) {92 ["funcscope_category"] => array(1) {93 ["id"] => int(11)94 }95 }96 [7] => array(1) {97 ["funcscope_category"] => array(1) {98 ["id"] => int(6)99 }100 }101 [8] => array(1) {102 ["funcscope_category"] => array(1) {103 ["id"] => int(5)104 }105 }106 [9] => array(1) {107 ["funcscope_category"] => array(1) {108 ["id"] => int(8)109 }110 }111 [10] => array(1) {112 ["funcscope_category"] => array(1) {113 ["id"] => int(13)114 }115 }116 [11] => array(1) {117 ["funcscope_category"] => array(1) {118 ["id"] => int(9)119 }120 }121 [12] => array(1) {122 ["funcscope_category"] => array(1) {123 ["id"] => int(10)124 }125 }126 [13] => array(1) {127 ["funcscope_category"] => array(1) {128 ["id"] => int(12)129 }130 }131 [14] => array(1) {132 ["funcscope_category"] => array(1) {133 ["id"] => int(22)134 }135 }136 [15] => array(1) {137 ["funcscope_category"] => array(1) {138 ["id"] => int(23)139 }140 }141 [16] => array(1) {142 ["funcscope_category"] => array(1) {143 ["id"] => int(26)144 }145 }146 [17] => array(2) {147 ["funcscope_category"] => array(1) {148 ["id"] => int(27)149 }150 ["confirm_info"] => array(3) {151 ["need_confirm"] => int(0)152 ["already_confirm"] => int(0)153 ["can_confirm"] => int(0)154 }155 }156 [18] => array(2) {157 ["funcscope_category"] => array(1) {158 ["id"] => int(33)159 }160 ["confirm_info"] => array(3) {161 ["need_confirm"] => int(0)162 ["already_confirm"] => int(0)163 ["can_confirm"] => int(0)164 }165 }166 [19] => array(1) {167 ["funcscope_category"] => array(1) {168 ["id"] => int(35)169 }170 }171 [20] => array(2) {172 ["funcscope_category"] => array(1) {173 ["id"] => int(44)174 }175 ["confirm_info"] => array(3) {176 ["need_confirm"] => int(0)177 ["already_confirm"] => int(0)178 ["can_confirm"] => int(0)179 }180 }181 }182 }183 }*/

184

185 $sq = Db::name('wechat_account')->where([['appid','=',$code['authorization_info']['authorizer_appid']], ['shouquan','=','1']])->find();186

187 if(!$sq) {188 return '请先注册公众号或小程序信息,并勾选为扫码授权';189 }190

191 $name = $openPlatform->getAuthorizer($code['authorization_info']['authorizer_appid']);192 /*array(2) {193 ["authorizer_info"] => array(11) {194 ["nick_name"] => string(9) "小鲁哥"195 ["head_img"] => string(128) "http://wx.qlogo.cn/mmopen/2h8qNVmIGxDBibx0LzLo7zbibVxvzwVWkVeNwWpLoiaw8HFtDf9TvhBkTkIfU6KJMJgibH7ulKI2MafvudBP4moEb98tz3N8n72O/0"196 ["service_type_info"] => array(1) {197 ["id"] => int(2)198 }199 ["verify_type_info"] => array(1) {200 ["id"] => int(0)201 }202 ["user_name"] => string(15) "gh_f2ee5d98dbd4"203 ["alias"] => string(9) "lznewsxlg"204 ["qrcode_url"] => string(122) "http://mmbiz.qpic.cn/mmbiz_jpg/9qH8V6o0A0J2joL7hbYgGCt5m0icdMXTh52C2EBEBh3Hzuiah6E9eYqHgYGGBs1Z6M9aiayho0Zl8w7sP4MI6zFmA/0"205 ["business_info"] => array(5) {206 ["open_pay"] => int(1)207 ["open_shake"] => int(0)208 ["open_scan"] => int(0)209 ["open_card"] => int(1)210 ["open_store"] => int(1)211 }212 ["idc"] => int(1)213 ["principal_name"] => string(30) "山东大鲁网络有限公司"214 ["signature"] => string(108) "线索提供、闲聊扯皮、互动交流、同城活动。小鲁哥,一个逼格很高的公众平台。"215 }216 ["authorization_info"] => array(3) {217 ["authorizer_appid"] => string(18) "wx99ed51ac55c8b9c1"218 ["authorizer_refresh_token"] => string(58) "refreshtoken@@@G-xqVs6CF_cPNX2z24m74GoCse9kCvzMJlUqd9Xrrn8"219 ["func_info"] => array(21) {220 [0] => array(1) {221 ["funcscope_category"] => array(1) {222 ["id"] => int(1)223 }224 }225 [1] => array(1) {226 ["funcscope_category"] => array(1) {227 ["id"] => int(15)228 }229 }230 [2] => array(1) {231 ["funcscope_category"] => array(1) {232 ["id"] => int(4)233 }234 }235 [3] => array(1) {236 ["funcscope_category"] => array(1) {237 ["id"] => int(7)238 }239 }240 [4] => array(1) {241 ["funcscope_category"] => array(1) {242 ["id"] => int(2)243 }244 }245 [5] => array(1) {246 ["funcscope_category"] => array(1) {247 ["id"] => int(3)248 }249 }250 [6] => array(1) {251 ["funcscope_category"] => array(1) {252 ["id"] => int(11)253 }254 }255 [7] => array(1) {256 ["funcscope_category"] => array(1) {257 ["id"] => int(6)258 }259 }260 [8] => array(1) {261 ["funcscope_category"] => array(1) {262 ["id"] => int(5)263 }264 }265 [9] => array(1) {266 ["funcscope_category"] => array(1) {267 ["id"] => int(8)268 }269 }270 [10] => array(1) {271 ["funcscope_category"] => array(1) {272 ["id"] => int(13)273 }274 }275 [11] => array(1) {276 ["funcscope_category"] => array(1) {277 ["id"] => int(9)278 }279 }280 [12] => array(1) {281 ["funcscope_category"] => array(1) {282 ["id"] => int(10)283 }284 }285 [13] => array(1) {286 ["funcscope_category"] => array(1) {287 ["id"] => int(12)288 }289 }290 [14] => array(1) {291 ["funcscope_category"] => array(1) {292 ["id"] => int(22)293 }294 }295 [15] => array(1) {296 ["funcscope_category"] => array(1) {297 ["id"] => int(23)298 }299 }300 [16] => array(1) {301 ["funcscope_category"] => array(1) {302 ["id"] => int(26)303 }304 }305 [17] => array(2) {306 ["funcscope_category"] => array(1) {307 ["id"] => int(27)308 }309 ["confirm_info"] => array(3) {310 ["need_confirm"] => int(0)311 ["already_confirm"] => int(0)312 ["can_confirm"] => int(0)313 }314 }315 [18] => array(2) {316 ["funcscope_category"] => array(1) {317 ["id"] => int(33)318 }319 ["confirm_info"] => array(3) {320 ["need_confirm"] => int(0)321 ["already_confirm"] => int(0)322 ["can_confirm"] => int(0)323 }324 }325 [19] => array(1) {326 ["funcscope_category"] => array(1) {327 ["id"] => int(35)328 }329 }330 [20] => array(2) {331 ["funcscope_category"] => array(1) {332 ["id"] => int(44)333 }334 ["confirm_info"] => array(3) {335 ["need_confirm"] => int(0)336 ["already_confirm"] => int(0)337 ["can_confirm"] => int(0)338 }339 }340 }341 }342 }*/

343

344 Db::name('wechat_account')->where('id', $sq['id'])->update(['token' => $code['authorization_info']['authorizer_refresh_token']]);345

346 return $server->serve();347 }348 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值