YII框架获取unionid

/**
    *获取unionid
    */
    public function actionGetUnionid(){  
        $sign = Yii::$app->request->get('sign');     
        $encryptedData = Yii::$app->request->get('encryptedData'); 
        $iv = Yii::$app->request->get('iv');
        $uid = $this->getUidBySign($sign);
        if (!$uid) {
            return ['status' => 0, 'msg' => '登录会话失效'];
        }
        $User = User::findOne($uid);
        $appid='wxbdc7dd8cc5d15a8e';
        $data='';
        $errCode = $this->decryptData($appid,$User->session_key,$encryptedData, $iv, $data );    //解释数据
        if ($errCode == 0 ) {
            $obj =  json_decode($data);
            $unionid = $obj->unionId;    //得到unionId
            $User = User::findOne($uid);
            $User->unionid=$unionid;
            $User->save();
          return '获取uunionid成功';
        }else{
          return '获取uunionid失败';
        }
    }
protected function decryptData( $appid, $sessionKey, $encryptedData, $iv, &$data )
    {
      if (strlen($sessionKey) != 24) {
        return 41001;
      }
      $aesKey=base64_decode($sessionKey);

          
      if (strlen($iv) != 24) {
        return 41001;
      }
      $aesIV=base64_decode($iv);

      $aesCipher=base64_decode($encryptedData);

      $result=openssl_decrypt( $aesCipher, "AES-128-CBC", $aesKey, 1, $aesIV);

      $dataObj=json_decode( $result );
      if( $dataObj  == NULL )
      {
        return 41001;
      }
      if( $dataObj->watermark->appid != $appid )
      {
        return 41001;
      }
      $data = $result;
      return 0;
  }

猜你喜欢

转载自blog.csdn.net/wbj16116/article/details/83313251
今日推荐