Commit 6e671fd1 authored by 杨培's avatar 杨培

Merge branch 'dev-json-protocol'

parents 9d50e306 914cc968
...@@ -103,11 +103,13 @@ class Client ...@@ -103,11 +103,13 @@ class Client
{ {
$instance = self::getInstance(); $instance = self::getInstance();
$url = $instance->apiUrl.(strpos($instance->apiUrl, '?') !== false ? '&' : '?').'api='.urlencode($api); $requestBody = is_array($params) ? json_encode($params, JSON_UNESCAPED_UNICODE) : '';
list($sign, $timestamp, $nonce) = $instance->signature($api, $params); list($sign, $timestamp, $nonce) = $instance->signature($api, $requestBody);
$url .= "&client_id={$instance->clientId}&sign={$sign}&timestamp={$timestamp}&nonce={$nonce}"; $url = $instance->apiUrl.(strpos($instance->apiUrl, '?') !== false ? '&' : '?').'api='.urlencode($api)
."&client_id={$instance->clientId}&sign={$sign}&timestamp={$timestamp}&nonce={$nonce}";
list($httpCode, $response) = $instance->request($url, $params); list($httpCode, $response) = $instance->request($url, $requestBody,
$requestBody ? ['Content-Type: application/json'] : []);
if ($httpCode == 200 && $response !== false) { if ($httpCode == 200 && $response !== false) {
$data = @json_decode($response, true); $data = @json_decode($response, true);
...@@ -139,15 +141,14 @@ class Client ...@@ -139,15 +141,14 @@ class Client
* 对请求进程签名 * 对请求进程签名
* *
* @param string $api * @param string $api
* @param array $params * @param string $pstr
* @return array * @return array
*/ */
protected function signature($api, $params) protected function signature($api, $pstr)
{ {
$timestamp = time(); $timestamp = time();
$nonce = uniqid(); $nonce = uniqid();
ksort($params); $str = $api.$pstr.$this->clientId.$this->clientSecret.$timestamp.$nonce;
$str = $api.http_build_query($params).$this->clientId.$this->clientSecret.$timestamp.$nonce;
$sign = md5($str); $sign = md5($str);
return [$sign, $timestamp, $nonce]; return [$sign, $timestamp, $nonce];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment