• Author: qingshan
  • Tips: 感谢@童话的python脚本提供参考

5月30日更新

数据库形式的自动签到,多帐号的自己创建个conn.php然后连接数据库就行了;不想弄的就把foreach删掉。

<?php
//数据库
include('conn.php');
header('content-type:text/html;charset=UTF-8');
date_default_timezone_set("PRC");
$headers = array(
            "Content-Type"=>"application/x-www-form-urlencoded","Host"=>"zjyapp.icve.com.cn","Connection"=>"Keep-Alive","Accept-Encoding"=>"gzip","User-Agent"=>"okhttp/3.10.0"
        );
foreach ($rows as $row){
$mail=$row['mail'];//邮箱地址
$userName=$row['userName'];//账号
$userPwd=$row['userPwd'];//密码
//get newtoken

$urls="https://zjyapp.icve.com.cn/newmobileapi/mobilelogin/getNewToken";
$data = array("userName"=>$userName,"userPwd"=>$userPwd,"sourceType"=>"3","clientId"=>"04fbaf3b874041b68db529f24b5aa86b");
$output=curl_post($urls,$headers,$data);
//print_r($output);
$newtoken=$output['newToken'];


//login        
$url="https://zjyapp.icve.com.cn/newMobileAPI/MobileLogin/newLogin";
$data=array("appVersion"=>"2.8.23","clientId"=>"04fbaf3b874041b68db529f24b5aa86b","sourceType"=>"3","userName"=>$userName,"userPwd"=>$userPwd);
$output=curl_post($url,$headers,$data);
//print_r($output);
if($output['code'] !== "1"){
    $stuId = $output["userId"];
    $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=curl_post($url2,$headers,$data);
//print_r($output);
    $todayClassInfo=$output["dataList"];
    
//    
$url_api3="https://zjyapp.icve.com.cn/newmobileapi/faceteach/newGetStuFaceActivityList";
if(!empty($todayClassInfo)){
        foreach($todayClassInfo as $i){
            $data="activityId={$i["Id"]}&stuId={$stuId}&classState={$i['state']}&openClassId={$i['openClassId']}&newToken={$newtoken}";
    
$output=curl_post($url_api3,$headers,$data);
//print_r($output);        
$inClassInfo=$output["dataList"];

//
$url_api4="https://zjyapp.icve.com.cn/newmobileapi/faceteach/isJoinActivities";
    if(count($inClassInfo) != "0"){
            foreach($inClassInfo as $n){
                 if ($n["DataType"] == "签到" and $n["State"] !== "3"){
                 $attendData = "activityId={$i['Id']}&openClassId={$i['openClassId']}&stuId={$stuId}&typeId={$n['Id']}&type=1&newToken={$newtoken}";
    $output=curl_post($url_api4,$headers,$attendData);
    //print_r($output);
    $attendInfo=$output;
    
    
$url_api5="https://zjyapp.icve.com.cn/newmobileapi/faceteach/saveStuSign";
            if($attendInfo["isAttend"] != "1"){
            $signInData = "signId={$n['Id']}&stuId={$stuId}&openClassId={$i['openClassId']}&sourceType=3&checkInCode={$n['Gesture']}&activityId={$i['Id']}&newToken={$newtoken}";
                    $output=curl_post($url_api5,$headers,$signInData);
                    $time=date("Y-m-d H:i:s");
                    echo '账号:'.$row['userName'].'的'.$i["courseName"]." ".$time." ".$output["msg"]."\r\n";
                    $url_api6="http://api.muxiaoguo.cn/api/mail?address={$mail}&name=职教云助手签到通知&certno={$i['courseName']}";
                    $output6=file_get_contents($url_api6.$time.$output["msg"]);
                             $counter = intval(file_get_contents("qdcounter.dat"));  
                             $_SESSION['#'] = true;  
                             $counter++;  
                             $fp = fopen("qdcounter.dat","w");  
                             fwrite($fp, $counter);  
                             fclose($fp); 
                        
                        }else{
                            echo"账号:".$row['userName']."的".$n['DateCreated'].$i["courseName"]."的签到已经签到!"."<br>";
                            
                        };
                    }else{
                        if($n["DataType"] == "签到"){
                        echo  "状态:".$output['code']."账号:".$row['userName']."的".$n['DateCreated'].$i["courseName"]."的签到已经签到!"."<br>";
                            
                        };
                    };
                };
            };
        };    
    }else{
        echo "状态:".$output['code']."账号:".$row['userName']."今日没有课唉 要好好休息哦"."<br>";

    };
        }else{
            echo $output['msg'];
            
        }
    };
    
    
    
    function curl_post($url,$headers,$data){
        $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_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);
}