shish 6 lat temu
rodzic
commit
4929eefece

+ 2 - 2
app/shop/controllers/TestController.php

@@ -43,10 +43,10 @@ class TestController extends BaseController
 		$orderModel->setReceiverLng(121.41);
 		$orderModel->setReceiverPhone('18588888888');
 		$orderModel->setCallback('http://api.b.huaml.com/data/request');
-		
+
 		// api主要有2个参数,一个是url, 一个是业务参数
 		$addOrderApi = new \AddOrderApi(json_encode($orderModel));
-		
+
 		$dada_client = new \DadaRequestClient($config, $addOrderApi);
 		$resp = $dada_client->makeRequest();
 		echo json_encode($resp);

+ 148 - 138
vendor/dada/client/dadaRequestClient.php

@@ -7,142 +7,152 @@ $dada = Yii::getAlias("@vendor/dada/");
 require_once $dada . 'client/dadaResponse.php';
 require_once $dada . 'config/constant.php';
 
-class DadaRequestClient{
-    
-    /**
-     * http request timeout;
-     */
-    private $httpTimeout = 5;
-
-    /**
-     * 配置项
-     */
-    private $config;
-
-    /**
-     * 接口类
-     */
-    private $api;
-
-    /**
-     * 构造函数
-     */
-    public function __construct($config, $api){
-        $this->config = $config;
-        $this->api = $api;
-    }
-
-    /**
-     * 请求调用api
-     * @return bool
-     */
-    public function makeRequest(){
-        $reqParams = $this->bulidRequestParams();
-        $resp = $this->getHttpRequestWithPost(json_encode($reqParams));
-        return $this->parseResponseData($resp);
-    }
-
-    /**
-     * 构造请求数据
-     * data:业务参数,json字符串
-     */
-    public function bulidRequestParams(){
-        $config = $this->getConfig();
-        $api = $this->getApi();
-
-        $requestParams = array();
-        $requestParams['app_key'] = $config->getAppKey();
-        $requestParams['body'] = $api->getBusinessParams();
-        $requestParams['format'] = $config->getFormat();
-        $requestParams['v'] = $config->getV();
-        $requestParams['source_id'] = $config->getSourceId();
-        $requestParams['timestamp'] = time();
-        $requestParams['signature'] = $this->_sign($requestParams);
-        return $requestParams;
-    }
-
-    /**
-     * 签名生成signature
-     */
-    public function _sign($data){
-
-        $config = $this->getConfig();
-
-        //1.升序排序
-        ksort($data);
-
-        //2.字符串拼接
-        $args = "";
-        foreach ($data as $key => $value) {
-            $args.=$key.$value;
-        }
-        $args = $config->app_secret . $args . $config->app_secret;
-        //3.MD5签名,转为大写
-        $sign = strtoupper(md5($args));
-
-        return $sign;
-    }
-    
-
-    /**
-     * 发送请求,POST
-     * @param $url 指定URL完整路径地址
-     * @param $data 请求的数据
-     */
-    public function getHttpRequestWithPost($data){
-
-        $config = $this->config;
-        $api = $this->api;
-        $url = $config->getHost() . $api->getUrl();
-
-        // json
-        $headers = array(
-            'Content-Type: application/json',
-        );
-        $curl = curl_init($url);
-        curl_setopt($curl, CURLOPT_URL, $url);
-        curl_setopt($curl, CURLOPT_HEADER, false);
-        curl_setopt($curl, CURLOPT_POST, true);
-        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
-        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
-        curl_setopt($curl, CURLOPT_TIMEOUT, 3);
-        curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
-        $resp = curl_exec($curl);
-        var_dump( curl_error($curl) );//如果在执行curl的过程中出现异常,可以打开此开关查看异常内容。
-        $info = curl_getinfo($curl);
-        curl_close($curl);
-        if (isset($info['http_code']) && $info['http_code'] == 200) {
-            return $resp;
-        }
-        return '';
-    }
-
-    /**
-     * 解析响应数据
-     * @param $arr返回的数据
-     * 响应数据格式:{"status":"success","result":{},"code":0,"msg":"成功"}
-     */
-    public function parseResponseData($arr){
-        $resp = new DadaResponse();
-        if (empty($arr)) {
-            $resp->setStatus(DadaConstant::FAIL);
-            $resp->setMsg(DadaConstant::FAIL_MSG);
-            $resp->setCode(DadaConstant::FAIL_CODE);
-        }else{
-            $data = json_decode($arr, true);
-            $resp->setStatus($data['status']);
-            $resp->setMsg($data['msg']);
-            $resp->setCode($data['code']);
-            $resp->setResult($data['result']);
-        }
-        return $resp;
-    }
-
-    public function getConfig(){
-        return $this->config;
-    }
-
-    public function getApi(){
-        return $this->api;
-    }
+class DadaRequestClient
+{
+	
+	/**
+	 * http request timeout;
+	 */
+	private $httpTimeout = 5;
+	
+	/**
+	 * 配置项
+	 */
+	private $config;
+	
+	/**
+	 * 接口类
+	 */
+	private $api;
+	
+	/**
+	 * 构造函数
+	 */
+	public function __construct($config, $api)
+	{
+		$this->config = $config;
+		$this->api = $api;
+	}
+	
+	/**
+	 * 请求调用api
+	 * @return bool
+	 */
+	public function makeRequest()
+	{
+		$reqParams = $this->bulidRequestParams();
+		$resp = $this->getHttpRequestWithPost(json_encode($reqParams));
+		return $this->parseResponseData($resp);
+	}
+	
+	/**
+	 * 构造请求数据
+	 * data:业务参数,json字符串
+	 */
+	public function bulidRequestParams()
+	{
+		$config = $this->getConfig();
+		$api = $this->getApi();
+		
+		$requestParams = array();
+		$requestParams['app_key'] = $config->getAppKey();
+		$requestParams['body'] = $api->getBusinessParams();
+		$requestParams['format'] = $config->getFormat();
+		$requestParams['v'] = $config->getV();
+		$requestParams['source_id'] = $config->getSourceId();
+		$requestParams['timestamp'] = time();
+		$requestParams['signature'] = $this->_sign($requestParams);
+		return $requestParams;
+	}
+	
+	/**
+	 * 签名生成signature
+	 */
+	public function _sign($data)
+	{
+		
+		$config = $this->getConfig();
+		
+		//1.升序排序
+		ksort($data);
+		
+		//2.字符串拼接
+		$args = "";
+		foreach ($data as $key => $value) {
+			$args .= $key . $value;
+		}
+		$args = $config->app_secret . $args . $config->app_secret;
+		//3.MD5签名,转为大写
+		$sign = strtoupper(md5($args));
+		
+		return $sign;
+	}
+	
+	
+	/**
+	 * 发送请求,POST
+	 * @param $url 指定URL完整路径地址
+	 * @param $data 请求的数据
+	 */
+	public function getHttpRequestWithPost($data)
+	{
+		
+		$config = $this->config;
+		$api = $this->api;
+		$url = $config->getHost() . $api->getUrl();
+		
+		// json
+		$headers = array(
+			'Content-Type: application/json',
+		);
+		$curl = curl_init($url);
+		curl_setopt($curl, CURLOPT_URL, $url);
+		curl_setopt($curl, CURLOPT_HEADER, false);
+		curl_setopt($curl, CURLOPT_POST, true);
+		curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
+		curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
+		curl_setopt($curl, CURLOPT_TIMEOUT, 3);
+		curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
+		$resp = curl_exec($curl);
+		var_dump(curl_error($curl));//如果在执行curl的过程中出现异常,可以打开此开关查看异常内容。
+		$info = curl_getinfo($curl);
+		curl_close($curl);
+		if (isset($info['http_code']) && $info['http_code'] == 200) {
+			return $resp;
+		}
+		return '';
+	}
+	
+	/**
+	 * 解析响应数据
+	 * @param $arr返回的数据
+	 * 响应数据格式:{"status":"success","result":{},"code":0,"msg":"成功"}
+	 */
+	public function parseResponseData($arr)
+	{
+		$resp = new DadaResponse();
+		if (empty($arr)) {
+			$resp->setStatus(DadaConstant::FAIL);
+			$resp->setMsg(DadaConstant::FAIL_MSG);
+			$resp->setCode(DadaConstant::FAIL_CODE);
+		} else {
+			$data = json_decode($arr, true);
+			$resp->setStatus($data['status']);
+			$resp->setMsg($data['msg']);
+			$resp->setCode($data['code']);
+			$result = isset($data['result']) ? $data['result'] : '';
+			$resp->setResult($result);
+		}
+		return $resp;
+	}
+	
+	public function getConfig()
+	{
+		return $this->config;
+	}
+	
+	public function getApi()
+	{
+		return $this->api;
+	}
 }