1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > php能开发小程序吗

php能开发小程序吗

时间:2023-07-26 00:32:36

相关推荐

php能开发小程序吗

后端开发|PHP问题

php

后端开发-PHP问题

百度网盘源码,vscode blog,ubuntu默认分区,jfox tomcat,sqlite分析函数,主机也叫服务器吗,淘宝交易插件,前端框架vm原理,搜索引擎的爬虫,php二维数组求和,针对seo,网站首页翻转效果什么模块,下雪堆积网页的特效代码,微视 模板,帝国cms调用自定义页面,用excel服务器实现库存管理系统,基于mfc的聊天程序lzw

首先,看一下微信的登录流程图 (推荐学习:PHP视频教学)

餐饮网站免费源码,vscode如何启动前端,arm ubuntu双拼,tomcat 目录说明,sqlite字符串连接函数,速卖通爬虫指定国家价格,php 定时邮件,蜘蛛屯seo怎么优化,网站footer代码,易订货网页客户版,微擎微网站模板下载lzw

步骤:在客户端获取当前登录微信用户的登录凭证(code)。使用该凭证向微信服务器换取该微信用户的唯一标识(openid)和会话密钥(session_key)。引用微信加解密,获取用户信息。

rfm分析 源码,vscode为什么摸鱼,ubuntu内核21.04,tomcat下发布项目,网络爬虫无崖子,php 获取http请求,襄阳seo网络营销推广,网站模板 简单代码下载,dede 内容页模板lzw

注意:

1.未进行登录验证。

2.引用加解密是,路径要正确。

//未授权用户,请求微信接口,进行授权,获取用户信息 public function saveUser() { $appid = "自己的appid" ; $code = $this->input->post(code); if (empty($code)){ return $this->fail(\,code不能为空); } $encryptedData = $this->input->post(encryptedData); if (empty($encryptedData)){ return $this->fail(\,encryptedData不能为空); } $iv = $this->input->post(iv); if (empty($iv)){ return $this->fail(\,iv不能为空); }$apiData = $this->getApiData($code); if(!isset($apiData[errcode])){ $sessionKey = $apiData[session_key]; //获取sessionKey 进行解密 $userifo = new WXBizDataCrypt($appid, $sessionKey); $errCode = $userifo->decryptData($encryptedData, $iv, $data ); //保存 if ($errCode == 0) {$data = json_decode($data,true);$userData = [ ickname =>$data[ ickName], headimg =>$data[avatarUrl], unionid =>$data[unionId], openid =>$data[openId], c_time =>time(),];$result = $this->AppUserModel->get([openid=>$data[openId]]); if ($result){ $this->AppUserModel->update($userData,[openid=>$data[openId]]); $returnData[uid]=$result[id]; return $this->success($returnData,已授权);}else{ $userDataId = $this->AppUserModel->add($userData); if ($userDataId){ $returnData[uid]=$userDataId; return $this->success($returnData,已授权); }else{ return $this->fail(\,授权失败); }} } }else{ return $this->fail($apiData,获取用户信息失败); } }

//获取openid public function getApiData($code) { $appid = "自己的appid" ; $secret = "自己的secret"; $URL = "https://api./sns/jscode2session?appid=$appid&secret=$secret&js_code=$code&grant_type=authorization_code"; $apiData=file_get_contents($URL); return json_decode($apiData,true); }

未避免多次获取。在登录之前先进行验证。

//获取用户是否已经授权 public function userId() {$code = $this->input->get(code); if (empty($code)){ return $this->fail(\,code不能为空); } $apiData = $this->getApiData($code); if (!isset($apiData[errcode])){ $openID= $apiData[openid]; $userData = $this->AppUserModel->get([openid=>$openID]); if (empty($userData)) {return $this->fail(\,未授权); }else{ //这边保存sessionKey ,方便后面手机号码授权$sessionKey = $apiData[session_key];$mc = &load_cache( edis);$mc->save(session_key, $sessionKey, 3600);$returnData = [ uid=>$userData[id], ype=>$userData[ ype]];return $this->success($returnData,已授权); } }else { return $this->fail(\,获取openid失败); }}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。