User.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <?php
  2. namespace app\admin\common;
  3. class User {
  4. private $appid='';
  5. private $appkey='';
  6. private $Sign;
  7. private $param=[];
  8. private $header=["Content-Type"=>"multipart/json;charset=utf-8"];
  9. private $host;
  10. private $api=[
  11. "login"=>'login',
  12. "verifyToken"=>'verifyToken',
  13. "register"=>'register',
  14. "userlist"=>'userlist',
  15. "usersave"=>'usersave',
  16. "userstatus"=>'userstatus',
  17. "userinfo"=>'userinfo',
  18. "setpasswd"=>'setpasswd',
  19. "setcompany"=>'setcompany',
  20. "companystatus"=>'companystatus',
  21. "userlistbycompany"=>'userlistbycompany',
  22. "useradd"=>'useradd',
  23. ];
  24. public function __construct() {
  25. $this->Sign=new Sign($this->appid,$this->appkey);
  26. $this->host=env("user.hosturl",'');
  27. }
  28. /**
  29. * 生成请求header参数
  30. */
  31. private function makeHeader(){
  32. $headerArr=["appid"=>$this->appid,"noce"=>randomkeys(16),"sign"=>'',"timestamp"=>time()];
  33. $value =array_merge($this->param,$headerArr);
  34. $headerArr['sign'] = $this->Sign->makeSign($value);
  35. foreach ($headerArr as $key=>$value){
  36. $this->header[]=$key.":".$value;
  37. }
  38. }
  39. /**模拟post 请求数据
  40. * @param $url
  41. * @param array $param
  42. */
  43. private function post($url,$param=[]){
  44. $this->param =$param;
  45. $this->makeHeader();
  46. if(is_array($param)) $post=http_build_query($param);
  47. $curl = curl_init();
  48. curl_setopt($curl, CURLOPT_URL, $url);
  49. curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)');
  50. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
  51. curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
  52. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  53. if($post) {
  54. curl_setopt($curl, CURLOPT_POST, 1);
  55. curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
  56. }
  57. curl_setopt($curl, CURLOPT_TIMEOUT, 10);
  58. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  59. curl_setopt($curl, CURLOPT_HTTPHEADER, $this->header);
  60. $data = curl_exec($curl);
  61. if (curl_errno($curl)) {
  62. return curl_error($curl);
  63. }
  64. curl_close($curl);
  65. return $data;
  66. }
  67. /** 登录接口
  68. * @param $param
  69. * @return bool|string
  70. */
  71. public function Login($param){
  72. return $this->post($this->host.$this->api["login"],$param);
  73. }
  74. public function VerifyTokens($param){
  75. return $this->post($this->host.$this->api["verifyToken"],$param);
  76. }
  77. public function GetUserInfo($param){
  78. return $this->post($this->host.$this->api["userinfo"],$param);
  79. }
  80. public function GetUserlist($param){
  81. return $this->post($this->host.$this->api["userlist"],$param);
  82. }
  83. public function GetList($param){
  84. return $this->post($this->host.$this->api["userlistbycompany"],$param);
  85. }
  86. public function GetAccountall($param){
  87. return $this->post($this->host.$this->api["userlist"],$param);
  88. }
  89. public function resetPasswd($param){
  90. return $this->post($this->host.$this->api["setpasswd"],$param);
  91. }
  92. public function resetInfo($param){
  93. return $this->post($this->host.$this->api["usersave"],$param);
  94. }
  95. public function resetState($param){
  96. return $this->post($this->host.$this->api["userstatus"],$param);
  97. }
  98. }