JIKE
    • 注册
    • 登录
    • 搜索
    • 版块
    • 最新
    • 标签
    • 热门
    • 用户

    职教云自动签到

    水区乐园
    3
    4
    386
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 暖
      暖阳 最后由 编辑

      职教云自动签到PHP脚本
      如果有不会搞的,我可以帮忙签到
      账号+密码+要签到的时间
      senye666@foxmail.com

      <?php
      /*
      *------------------------------------------------------
      * Title : 职教云自动签到PHP版 V3.0
      *------------------------------------------------------
      * Author : 青山 (qingshan@88.com)
      *------------------------------------------------------ 
      * Time : 2020-08-23
      *------------------------------------------------------
      * Tips : 本源码不得贩卖
      *------------------------------------------------------
      */
      
      
      header('content-type:text/html;charset=UTF-8');
      date_default_timezone_set("PRC");
      
      
      /*
      **获取GET参数 让用户自定义签到频率 
      */
      $skey=$_GET['skey'];//qq推送
      $userName=$_GET['userName'];//账号
      $userPwd=$_GET['userPwd'];//密码
      
      
      
      /*
      **跟随更新协议头
      */
      $emit=time()."000";
      //echo date('Y-m-d H:i:s');
      $equipmentModel="Xiaomi Redmi K20 Pro";
      $equipmentApiVersion="10";
      $equipmentAppVersion="2.8.29";
      $device=getDevice($equipmentModel,$equipmentApiVersion,$equipmentAppVersion,$emit);
      //header        
      $headers = array('Content-Type:'.'application/x-www-form-urlencoded','emit:'.$emit,'device:'.$device);       
      //print_r($header);
      
      
      
      
      /*
      **自动签到部分
      */
      //login                
      $url="https://zjyapp.icve.com.cn/newMobileAPI/MobileLogin/newSignIn";
      $data=array("clientId"=>"d902c875d5f34c0f93362139f5af0c4c","sourceType"=>"2","userPwd"=>$userPwd,"userName"=>$userName,"appVersion"=>$equipmentAppVersion,"equipmentAppVersion"=>$equipmentAppVersion,"equipmentApiVersion"=>$equipmentApiVersion,"equipmentModel"=>$equipmentModel);
      //print_r($data);
      $output=httppost($url,$headers,$data);
      //print_r($output);;
      
      
      if($output['code'] == "1"){
          $stuId = $output["userId"];
          $newtoken=$output['newToken'];
              $faceDate = date("Y-m-d");
              //echo $stuId;
              
      //get jrkt        
      $url2="https://zjyapp.icve.com.cn/newmobileapi/faceteach/getStuFaceTeachList";
      //$data="stuId={$stuId}&faceDate={$faceDate}&newToken={$newtoken}";
      
      $data=array("stuId"=>$stuId,"faceDate"=>$faceDate,"newToken"=>$newtoken);
      $output=httppost($url2,$headers,$data);
      //print_r($output);
              $todayClassInfo=$output["dataList"];
              
      //        
      $url3="https://zjyapp.icve.com.cn/newmobileapi/faceteach/newGetStuFaceActivityList";
      if(!empty($todayClassInfo)){
                      foreach($todayClassInfo as $i){
                              $data=array("activityId"=>$i['Id'],"stuId"=>$stuId,"classState"=>$i['state'],"openClassId"=>$i['openClassId'],"newToken"=>$newtoken);
              
      $output=httppost($url3,$headers,$data);
      //print_r($output);                
      $inClassInfo=$output["dataList"];
      
      //
      $url4="https://zjyapp.icve.com.cn/newmobileapi/faceteach/isJoinActivities";
              if(count($inClassInfo) != "0"){
                              foreach($inClassInfo as $n){
                                       if ($n["DataType"] == "签到" and $n["State"] !== "3"){
                                       $attendData = array("activityId"=>$i['Id'],"openClassId"=>$i['openClassId'],"stuId"=>$stuId,"typeId"=>$n['Id'],"type"=>"1","newToken"=>$newtoken);
              $output=httppost($url4,$headers,$attendData);
          //print_r($output);
              $attendInfo=$output;
              
              
      $url5="https://zjyapp.icve.com.cn/newmobileapi/faceteach/saveStuSign";
                              if($attendInfo["isAttend"] != "1"){
                              $signInData = array("signId"=>$n['Id'],"stuId"=>$stuId,"openClassId"=>$i['openClassId'],"sourceType"=>"3","checkInCode"=>$n['Gesture'],"activityId"=>$i['Id'],"newToken"=>$newtoken);
                                              $output=httppost($url5,$headers,$signInData);
                                              $time=date("Y-m-d H:i:s");
                                              echo '账号:'.$userName.'的'.$i["courseName"]." ".$time." ".$output["msg"]."\r\n";
                                              $url6="https://push.xuthus.cc/send/{$skey}?c=账号:{$userName}的{$i['courseName']}签到成功\n\n";
                                  $output=file_get_contents($url6);
                                              
                                                      }else{
                                                              echo"账号:".$userName."的".$n['DateCreated'].$i["courseName"]."的签到已经签到!"."<br>";
                                                              
                                                      };
                                              }else{
                                                      if($n["DataType"] == "签到"){
                                                      echo  "状态:".$output['code']."账号:".$userName."的".$n['DateCreated'].$i["courseName"]."的签到已经签到!"."<br>";
                                                          
                                                      };
                                              };
                                      };
                              };
                      };        
              }else{
                      echo "状态:".$output['code']."账号:".$userName."今日没有课唉 要好好休息哦"."<br>";
              };
              }else{
                  echo $output['msg'];
                  
              }
              
              
              
      /*
      **核心函数 请勿更改
      */
      function httppost($url,$headers,$data){
                      $curl=curl_str();
                      curl_setopt($curl, CURLOPT_URL, $url);
                      curl_setopt($curl, CURLOPT_HEADER, 0); 
              curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); 
              curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); 
              curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
              curl_setopt($curl,CURLOPT_HTTPHEADER,$headers);
                      
                      curl_setopt($curl, CURLOPT_POST, 1);
                              
              curl_setopt($curl, CURLOPT_POSTFIELDS,http_build_query($data));
                      
              $output = curl_exec($curl);
                      
              curl_close($curl);
                      $output=json_decode($output,true);
              return $output;
                      //print_r($output);
      } 
      
      function curl_get($url,$headers,$data,$cookie){
                      $curl=curl_init();
                      curl_setopt($curl, CURLOPT_URL, $url);
                      curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
              curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); 
              curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); 
              curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
              curl_setopt($curl,CURLOPT_HTTPHEADER,$headers);
                      curl_setopt($curl,CURLOPT_COOKIE,$cookie);
                      //curl_setopt($curl, CURLOPT_POST, 1);
                      
              //curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
                      
              $output = curl_exec($curl);
                      
              curl_close($curl);
                      $output=json_decode($output,true);
              return $output;
                      //print_r($output);
      }
      
      function curl_post($url,$headers,$data,$cookie){
                      $curl=curl_init();
                      curl_setopt($curl, CURLOPT_URL, $url);
              curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); 
              curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); 
              curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
              curl_setopt($curl,CURLOPT_HTTPHEADER,$headers);
                      curl_setopt($curl,CURLOPT_COOKIE,$cookie);
                      curl_setopt($curl, CURLOPT_POST, 1);
                      
              curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
                      
              $output = curl_exec($curl);
                      
              curl_close($curl);
                      $output=json_decode($output,true);
              return $output;
                      //print_r($output);
      }
      
      
      
      
      
      
      function post_curl($url, $params=[], $headers=[]){   
          $httpInfo = array();   
          $ch = curl_init();      
          curl_setopt($ch, CURLOPT_HEADER, 1);   
          curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
          curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 30 );   
          curl_setopt( $ch, CURLOPT_TIMEOUT , 30);   
          curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true );      
          curl_setopt( $ch , CURLOPT_POST , true );   
          curl_setopt( $ch , CURLOPT_POSTFIELDS , http_build_query($params));   
          curl_setopt( $ch , CURLOPT_URL , $url );        
          $response = curl_exec( $ch );   
          if ($response === FALSE) {      
              return false;   
              
          }        
          curl_close( $ch );    
          return $response;
          
      }
      //
      function object_array($array) {  
          if(is_object($array)) {  
              $array = (array)$array;  
           } if(is_array($array)) {  
               foreach($array as $key=>$value) {  
                   $array[$key] = object_array($value);  
                   }  
           }  
           return $array;  
      }
      
      function getDevice($model,$vsersionAndroid,$versionName,$timeStamp){
          $tmp=md5($model);
          //echo $tmp."<br>";
          $tmp1=$tmp.$vsersionAndroid;
          //echo $tmp."<br>";
          $tmp=md5($tmp1);
          //echo $tmp."<br>";
          $tmp1=$tmp.$versionName;
          //echo $tmp."<br>";
          $tmp=md5($tmp1);
          //echo $tmp."<br>";
          $tmp1=$tmp.$timeStamp;
          //echo $tmp."<br>";
          return md5($tmp1);
      }
      

      脚本仅供学习参考,如有学习以外任何事情,本人概不负责。

      1 条回复 最后回复 回复 引用 1
      • Y
        yyy 🍌 最后由 编辑

        这个云做什么用的

        1 条回复 最后回复 回复 引用 0
        • 暖
          暖阳 最后由 编辑

          职教云不知道吗?

          1 条回复 最后回复 回复 引用 0
          • T
            tammy 最后由 编辑

            干嘛用的呀

            1 条回复 最后回复 回复 引用 0
            • 1 / 1
            • First post
              Last post