最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

php能开发小程序吗

来源:懂视网 责编:小采 时间:2020-11-27 14:19:20
文档

php能开发小程序吗

php能开发小程序吗:首先,看一下微信的登录流程图 (推荐学习:PHP视频教程)步骤:在客户端获取当前登录微信用户的登录凭证(code)。使用该凭证向微信服务器换取该微信用户的唯一标识(openid)和会话密钥(session_key)。引用微信加解密,获取用户信息。注意:1.未进行登录验证
推荐度:
导读php能开发小程序吗:首先,看一下微信的登录流程图 (推荐学习:PHP视频教程)步骤:在客户端获取当前登录微信用户的登录凭证(code)。使用该凭证向微信服务器换取该微信用户的唯一标识(openid)和会话密钥(session_key)。引用微信加解密,获取用户信息。注意:1.未进行登录验证

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

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

注意:

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 = [
 'nickname' =>$data['nickName'],
 '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.weixin.qq.com/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('redis');
 $mc->save('session_key', $sessionKey, 3600);
 $returnData = [
 'uid'=>$userData['id'],
 'type'=>$userData['type']
 ];
 return $this->success($returnData,'已授权');
 }
 }else {
 return $this->fail('','获取openid失败');
 }
 
 }

文档

php能开发小程序吗

php能开发小程序吗:首先,看一下微信的登录流程图 (推荐学习:PHP视频教程)步骤:在客户端获取当前登录微信用户的登录凭证(code)。使用该凭证向微信服务器换取该微信用户的唯一标识(openid)和会话密钥(session_key)。引用微信加解密,获取用户信息。注意:1.未进行登录验证
推荐度:
标签: 小程序 php 开发
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top