You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
1.8 KiB
PHP
88 lines
1.8 KiB
PHP
<?php
|
|
namespace Org\Kudian;
|
|
|
|
class Response
|
|
{
|
|
protected $code;
|
|
|
|
protected $msg;
|
|
|
|
protected $result;
|
|
|
|
protected $sign;
|
|
|
|
protected $signType;
|
|
|
|
protected $data;
|
|
|
|
public function __construct($response)
|
|
{
|
|
$this->parse($response);
|
|
}
|
|
|
|
private function parse($response)
|
|
{
|
|
$data = null;
|
|
if (is_array($response)) {
|
|
Log::write('RESPONSE_ARRAY: ' . json_encode($response));
|
|
$data = $response;
|
|
} else {
|
|
Log::write('RESPONSE_STR: ' . $response);
|
|
$data = json_decode($response, true);
|
|
}
|
|
if (!$data) {
|
|
$data = [
|
|
'code' => -998,
|
|
'msg' => '数据异常',
|
|
'sign' => '',
|
|
'sign_type' => 'MD5',
|
|
'result' => json_encode([]),
|
|
];
|
|
}
|
|
$this->data = $data;
|
|
$result = $data['result'] ? json_decode($data['result'], true) : [];
|
|
$this->result = $result;
|
|
$this->code = $data['code'];
|
|
$this->msg = $data['msg'];
|
|
$this->sign = $data['sign'];
|
|
$this->signType = $data['sign_type'];
|
|
}
|
|
|
|
public function isSuccess()
|
|
{
|
|
return !($this->code < 0);
|
|
}
|
|
|
|
public function getCode()
|
|
{
|
|
return $this->code;
|
|
}
|
|
|
|
public function getMsg()
|
|
{
|
|
return $this->msg;
|
|
}
|
|
|
|
public function getResult($key = null)
|
|
{
|
|
if ($key) {
|
|
return $this->result[$key] ?: null;
|
|
}
|
|
return $this->result;
|
|
}
|
|
|
|
public function getSign()
|
|
{
|
|
return $this->sign;
|
|
}
|
|
|
|
public function getSignType()
|
|
{
|
|
return $this->signType;
|
|
}
|
|
|
|
public function verify()
|
|
{
|
|
return Sign::verify($this->data, Config::get('secret_key'));
|
|
}
|
|
} |