Maison >développement back-end >Problème PHP >PHP peut-il développer de petits programmes ?
Tout d'abord, jetez un œil à l'organigramme de connexion WeChat (Apprentissage recommandé : Tutoriel vidéo PHP)
Étapes : obtenez les informations de connexion (code) de l'utilisateur WeChat actuellement connecté sur le client. Utilisez ces informations d'identification pour échanger le serveur WeChat contre l'identifiant unique (openid) et la clé de session (session_key) de l'utilisateur WeChat. Citez le cryptage et le décryptage WeChat pour obtenir des informations sur les utilisateurs.
Remarque :
1. Aucune vérification de connexion.
2. Pour le cryptage et le déchiffrement de référence, le chemin doit être correct.
//未授权用户,请求微信接口,进行授权,获取用户信息 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,'获取用户信息失败'); } }rrree
Récupérations multiples non évitées. Vérifiez avant de vous connecter.
//获取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); }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!