欢迎光临
我们一直在努力

职教云签到最新修复API版本

的自动签到站点
地址:http://ykt.imz.xyz/
由于职教云貌似开始Ban IP
自动签到程序准备搞后台接口自定义轮询
本次更新可能是最后一次更新了
由于作者即将进入实习生活
目前在青岛旅游也抽时间给大家更新啊
不得不说这个青岛站的网鱼网咖不太行

不废话了 冲冲冲

  1. <?php
  2. /*
  3. *——————————————————
  4. * Title : 职教云自动签到PHP版 V3.2
  5. *——————————————————
  6. * Author : 青山 (qingshan@88.com)
  7. *——————————————————
  8. * Time : 2021-03-01
  9. *——————————————————
  10. * Tips : 更新请求header 本源码不得贩卖
  11. *——————————————————
  12. */
  13. header(‘content-type:text/html;charset=UTF-8’);
  14. date_default_timezone_set(“PRC”);
  15. /*
  16. **获取GET参数
  17. */
  18. $wxkey=$_GET[‘wxkey’];
  19. //wx推送
  20. $skey=$_GET[‘skey’];
  21. //qq推送
  22. $mail=$_GET[‘mail’];
  23. //邮箱推送
  24. $userName=$_GET[‘userName’];
  25. //账号
  26. $userPwd=$_GET[‘userPwd’];
  27. //密码
  28. /*
  29. **跟随更新协议头
  30. */
  31. $emit=time().”000″;
  32. //echo date(‘Y-m-d H:i:s’);
  33. $equipmentModel=”Xiaomi Redmi K20 Pro”;
  34. $equipmentApiVersion=”11″;
  35. $equipmentAppVersion=getver();
  36. $device=getDevice($equipmentModel,$equipmentApiVersion,$equipmentAppVersion,$emit);
  37. //header
  38. $headers = array(‘Content-Type:’.’application/x-www-form-urlencoded’,’emit:’.$emit,’device:’.$device);
  39. //print_r($header);
  40. /*
  41. **自动签到部分
  42. */
  43. //login
  44. $url=”https://zjyapp.icve.com.cn/newMobileAPI/MobileLogin/newSignIn”;
  45. $data=array(“clientId”=>”d902c875d5f34c0f93362139f5af0c4c”,”sourceType”=>”2″,”userPwd”=>$userPwd,”userName”=>$userName,”appVersion”=>$equipmentAppVersion,”equipmentAppVersion”=>$equipmentAppVersion,”equipmentApiVersion”=>$equipmentApiVersion,”equipmentModel”=>$equipmentModel);
  46. //print_r($data);
  47. $output=httppost($url,$headers,$data);
  48. //print_r($output);
  49. if($output[‘code’] == “1”) {
  50.         $stuId = $output[“userId”];
  51.         $newtoken=$output[‘newToken’];
  52.         $faceDate = date(“Y-m-d”);
  53.         //echo $stuId;
  54.         //get jrkt
  55.         $url2=”https://zjyapp.icve.com.cn/newmobileapi/faceteach/getStuFaceTeachList”;
  56.         //$data=”stuId={$stuId}&faceDate={$faceDate}&newToken={$newtoken}”;
  57.         $data=array(“stuId”=>$stuId,”faceDate”=>$faceDate,”newToken”=>$newtoken);
  58.         $output=httppost($url2,$headers,$data);
  59.         //print_r($output);
  60.         $todayClassInfo=$output[“dataList”];
  61.         //
  62.         $url3=”https://zjyapp.icve.com.cn/newmobileapi/faceteach/newGetStuFaceActivityList”;
  63.         if(!empty($todayClassInfo)) {
  64.                 foreach($todayClassInfo as $i) {
  65.                         $data=array(“activityId”=>$i[‘Id’],”stuId”=>$stuId,”classState”=>$i[‘state’],”openClassId”=>$i[‘openClassId’],”newToken”=>$newtoken);
  66.                         $output=httppost($url3,$headers,$data);
  67.                         //print_r($output);
  68.                         $inClassInfo=$output[“dataList”];
  69.                         //print_r($inClassInfo);
  70.                         //
  71.                         $url4=”https://zjyapp.icve.com.cn/newmobileapi/faceteach/isJoinActivities”;
  72.                         if(count($inClassInfo) != “0”) {
  73.                                 foreach($inClassInfo as $n) {
  74.                                         if ($n[“DataType”] == “签到” and $n[“State”] !== “3”) {
  75.                                                 $attendData = array(“activityId”=>$i[‘Id’],”openClassId”=>$i[‘openClassId’],”stuId”=>$stuId,”typeId”=>$n[‘Id’],”type”=>”1”,”newToken”=>$newtoken);
  76.                                                 $output=httppost($url4,$headers,$attendData);
  77.                                                 //print_r($output);
  78.                                                 $attendInfo=$output;
  79.                                                 $url5=”https://zjyapp.icve.com.cn/newmobileapi/faceTeach/saveStuSignNew”;
  80.                                                 if($attendInfo[“isAttend”] != “1”) {
  81.                                                         $signInData = array(“signId”=>$n[‘Id’],”stuId”=>$stuId,”openClassId”=>$i[‘openClassId’],”sourceType”=>”3”,”checkInCode”=>$n[‘Gesture’],”activityId”=>$i[‘Id’],”newToken”=>$newtoken);
  82.                                                         $output=httppost($url5,$headers,$signInData);
  83.                                                         //print_r($output);
  84.                                                         $time=date(“Y-m-d H:i:s”);
  85.                                                         echo ‘{“code”:”200″,”msg”:”sign success”,”time:”‘.$time.'”}’;
  86.                                                         if($output[‘code’] != ‘1’) {
  87.                                                                 echo ‘{“code”:”200″,”msg”:”sign end”}’;
  88.                                                         } else {
  89.                                                                 if(isset($wxkey)) {
  90.                                                                         if(strlen($wxkey) >= 21) {
  91.                                                                                 //server 酱
  92.                                                                                 $url7=”https://sc.ftqq.com/{$wxkey}.send”;
  93.                                                                                 $data = array(“text”=>”职教云签到结果”,”desp”=>”
  94. ##{$i[‘courseName’]}签到成功
  95. ##获取答案:sign.imz.xyz
  96. ##网课联系wx:Not-Missing
  97. ##赞助二维码:
  98. ![hqyx2 icon](https://s2.ax1x.com/2020/02/12/1bfYS1.jpg)
  99. ![hqyx2 icon](https://s2.ax1x.com/2020/02/12/1H4uTg.jpg)”);
  100.                                                                                 $output=httppost($url7,$headers,$data);
  101.                                                                         }
  102.                                                                         ;
  103.                                                                 }
  104.                                                         }
  105.                                                         ;
  106.                                                 } else {
  107.                                                         echo ‘{“code”:”200″,”msg”:”already sign”}’;
  108.                                                 }
  109.                                                 ;
  110.                                         } else {
  111.                                                 if($n[“DataType”] == “签到”) {
  112.                                                         echo ‘{“code”:”200″,”msg”:”already sign”}’;
  113.                                                 } else {
  114.                                                         echo ‘{“code”:”200″,”msg”:”no sign”}’;
  115.                                                 }
  116.                                         }
  117.                                         ;
  118.                                 }
  119.                                 ;
  120.                         }
  121.                         ;
  122.                 }
  123.         } else {
  124.                 echo ‘{“code”:”200″,”msg”:”no lessons”}’;
  125.         }
  126.         ;
  127. } else {
  128.         echo “{‘code’:’206′,’msg’:'{$output[“msg”]}’}”;
  129. }
  130. /*
  131. **核心函数 请勿更改
  132. */
  133. function httppost($url,$headers,$data) {
  134.         $curl=curl_init();
  135.         curl_setopt($curl, CURLOPT_URL, $url);
  136.         curl_setopt($curl, CURLOPT_HEADER, 0);
  137.         curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
  138.         curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
  139.         curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  140.         curl_setopt($curl,CURLOPT_HTTPHEADER,$headers);
  141.         curl_setopt($curl, CURLOPT_POST, 1);
  142.         curl_setopt($curl, CURLOPT_POSTFIELDS,http_build_query($data));
  143.         $output = curl_exec($curl);
  144.         curl_close($curl);
  145.         $output=json_decode($output,true);
  146.         return $output;
  147.         //print_r($output);
  148. }
  149. function curl_get($url,$headers,$cookie) {
  150.         $curl=curl_init();
  151.         curl_setopt($curl, CURLOPT_URL, $url);
  152.         curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
  153.         curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
  154.         curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
  155.         curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  156.         curl_setopt($curl,CURLOPT_HTTPHEADER,$headers);
  157.         curl_setopt($curl,CURLOPT_COOKIE,$cookie);
  158.         //curl_setopt($curl, CURLOPT_POST, 1);
  159.         //curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
  160.         $output = curl_exec($curl);
  161.         curl_close($curl);
  162.         $output=json_decode($output,true);
  163.         return $output;
  164.         //print_r($output);
  165. }
  166. function curl_post($url,$headers,$data,$cookie) {
  167.         $curl=curl_init();
  168.         curl_setopt($curl, CURLOPT_URL, $url);
  169.         curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
  170.         curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
  171.         curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  172.         curl_setopt($curl,CURLOPT_HTTPHEADER,$headers);
  173.         curl_setopt($curl,CURLOPT_COOKIE,$cookie);
  174.         curl_setopt($curl, CURLOPT_POST, 1);
  175.         curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
  176.         $output = curl_exec($curl);
  177.         curl_close($curl);
  178.         $output=json_decode($output,true);
  179.         return $output;
  180.         //print_r($output);
  181. }
  182. function post_curl($url, $params=[], $headers=[]) {
  183.         $httpInfo = array();
  184.         $ch = curl_init();
  185.         curl_setopt($ch, CURLOPT_HEADER, 1);
  186.         curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
  187.         curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 30 );
  188.         curl_setopt( $ch, CURLOPT_TIMEOUT , 30);
  189.         curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true );
  190.         curl_setopt( $ch , CURLOPT_POST , true );
  191.         curl_setopt( $ch , CURLOPT_POSTFIELDS , http_build_query($params));
  192.         curl_setopt( $ch , CURLOPT_URL , $url );
  193.         $response = curl_exec( $ch );
  194.         if ($response === FALSE) {
  195.                 return false;
  196.         }
  197.         curl_close( $ch );
  198.         return $response;
  199. }
  200. //
  201. function object_array($array) {
  202.         if(is_object($array)) {
  203.                 $array = (array)$array;
  204.         }
  205.         if(is_array($array)) {
  206.                 foreach($array as $key=>$value) {
  207.                         $array[$key] = object_array($value);
  208.                 }
  209.         }
  210.         return $array;
  211. }
  212. function getDevice($model,$vsersionAndroid,$versionName,$timeStamp) {
  213.         $tmp=md5($model);
  214.         //echo $tmp.”<br>”;
  215.         $tmp1=$tmp.$vsersionAndroid;
  216.         //echo $tmp.”<br>”;
  217.         $tmp=md5($tmp1);
  218.         //echo $tmp.”<br>”;
  219.         $tmp1=$tmp.$versionName;
  220.         //echo $tmp.”<br>”;
  221.         $tmp=md5($tmp1);
  222.         //echo $tmp.”<br>”;
  223.         $tmp1=$tmp.$timeStamp;
  224.         //echo $tmp.”<br>”;
  225.         return md5($tmp1);
  226. }
  227. function getver() {
  228.         $url=”https://zjy2.icve.com.cn/portal/AppVersion/getLatestVersionInfo”;
  229.         $headers = array(‘Content-Type:’.’application/x-www-form-urlencoded’,’Host:’.’zjy2.icve.com.cn’,’X-Requested-With:’.’XMLHttpRequest’,’User-Agent:’.’Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36′);
  230.         $output = curl_get($url,$headers,$cookie);
  231.         //print_r($output);
  232.         $version = $output[‘appVersionInfo’][‘VersionCode’];
  233.         //print_r($version);
  234.         return $version;
  235. }
赞(6)
未经允许不得转载:阿强爱分享 » 职教云签到最新修复API版本

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址