class Feieyun
{
/**
* @var string
*/
protected $host = 'http://api.feieyun.cn/Api/Open/';
/**
* @var
*/
protected $config=['username'=>'','uKey'=>'',];
/**
* Feieyun constructor.
* @param $config
*/
public function __construct(array $config)
{$this->config = array_merge($this->config,$config);
}
/**
* 增加打印机
* @return mixed
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function add(array $private_params = [])
{// TODO: Implement add() method.
return $this->request($private_params, 'Open_printerAddlist');
}
/**
* 更新打印机
* @param array $private_params
* @return mixed
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function update($private_params = [])
{// TODO: Implement update() method.
return $this->request($private_params, 'Open_printerEdit');
}
/**
* 删除打印机
* @param array $private_params
* @return mixed
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function delete($private_params = [])
{// TODO: Implement delete() method.
return $this->request($private_params, 'Open_printerDelList');
}
/**
* 清空待打印队列
* @param array $private_params
* @return mixed
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function clear($private_params = [])
{// TODO: Implement clear() method.
return $this->request($private_params, 'Open_delPrinterSqs');
}
/**
* 打印机状态
* @param array $private_params
* @return mixed
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function status($private_params = [])
{// TODO: Implement status() method.
return $this->request($private_params, 'Open_queryPrinterStatus');
}
/**
* @param array $private_params
* @param string $type
* @return string
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function outputOrder($private_params = [], $type = '')
{if ($type == 'lable')
return $this->outputLabelMsg($private_params);
return $this->outputMsg($private_params);
}
/**
* 打印订单
* @param array $private_params
* @return string
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function outputMsg($private_params = [])
{return $this->request($private_params, 'Open_printMsg');
}
/**
* 标签机打印订单
* @param array $private_params
* @return string
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function outputLabelMsg($private_params = [])
{return $this->request($private_params, 'Open_printLabelMsg');
}
/**
* 查问订单是否打印胜利
* @param array $private_params
* @return string
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function orderStatus($private_params = [])
{return $this->request($private_params, 'Open_queryOrderState');
}
/**
* 查问指定打印机某天的订单统计数
* @param array $private_params
* @return string
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function orderCount($private_params = [])
{return $this->request($private_params, 'Open_queryOrderState');
}
/**
* @param array $private_params
* @param string $apiname
* @return string
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function request(array $private_params, string $apiname)
{
$public_params = ['user' => $this->config['username'],
'stime' => $this->getTime(),
'sig' => $this->getSig(),
'apiname' => $apiname,
];
$params = array_filter(array_merge($public_params, $private_params));
return $this->post($this->config['host'] ?? $this->host, $params);
}
/**
* @param string $url
* @param array $params
* @param array $headers
* @return string
* @throws \GuzzleHttp\Exception\GuzzleException
*/
protected function post(string $url, array $params = [], array $headers = [])
{$resp = (new \GuzzleHttp\Client())->request('post', $url, [
'headers' => $headers,
'form_params' => $params,
]);;
return $resp->getBody()->getContents();
}
/**
* @return string
*/
protected function getSig()
{return sha1($this->config['username'] . $this->config['uKey'] . $this->getTime());
}
/**
* @return int
*/
protected function getTime()
{return time();
}
}