<?php
namespace tencentim;

class Tencentim
{
    private $api_url;

    /**
     * 构造函数
     */
    public function __construct($api_url)
    {
        $this->api_url = $api_url;
    }


    /**
     * $params 请求参数
     */
    function toSend($receiptdata) {
        // 构造请求参数
        $params = $receiptdata;
        // random int
        $params = json_encode($params);
        $result = $this->http_post_json($this->api_url,$params);
        if ($result === FALSE) {
            return array("code" => 500, "msg" => "file_get_contents failed.");
        } else {
            return json_decode($result, true);
        }
    }


    /**
     * @param $url
     * @param $jsonStr
     * @return array
     */
    function http_post_json_old($url, $jsonStr)
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonStr);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                'Content-Type: application/json; charset=utf-8',
                'Content-Length: ' . strlen($jsonStr)
            )
        );
        $response = curl_exec($ch);
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        curl_close($ch);
        return array($httpCode, $response);
    }

    function http_post_json($url, $data, $header = '', $timeOut = 0)
    {
        //初始化curl
        $ch = curl_init();
        //参数设置
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_TIMEOUT, $timeOut);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        if($header != '') {
            curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
        }
        $result = curl_exec($ch);

        //连接失败
        if($result == FALSE) {
            //\think\Log::record('[ CURL ] ERROR ' . curl_error($ch)."\n".var_export(debug_backtrace(), true)."\n", 'error');
        }
        curl_close($ch);
        return $result;
    }

    /**
     * $params 请求参数
     */
    function messageCheck($params) {

        $result = $this->http_post_json($this->api_url,$params);
        if ($result === FALSE) {
            return array("code" => 500, "msg" => "file_get_contents failed.");
        } else {
            return json_decode($result[1], true);
        }
    }

}

