"您的访问token", "sign_key" => "您的签名key", 'url' =>'http://openapi.baishouopen.com/method', 'test_url' =>'http://t.openapi.baishouopen.com/method', ]; //使用 // $demo = new demo(); // $rs = $demo->method('maintain.region',[]); // method // create.order 创建订单 // query.order 查询订单 // 更多见文档 http://api.35kds.com/web/#/64?page_id=720 /** * @var string 请求地址 */ protected $service; /** * demo constructor. * @param bool $is_debug */ public function __construct($is_debug=true) { $this->service = $is_debug?$this->config['test_url']:$this->config['url']; } /** * @introduce 请求接口 * @param string $method 接口名称 * @param json $data 参数 * @param string $attach 透传参数 * @return bool|string * @author yanglei * @Date 2022/1/27 */ public function method($method,$data = [],$attach = ''){ $param = [ 'access_token' => $this->config['access_token'], 'once' => uniqid() , 'timestamp' => time()*1000, 'attach' => $attach, 'format' => 'JSON', 'sign_type' => 'MD5', 'version' => '1.0.0', 'method' => $method, 'data' => json_encode($data,256), ]; $param = array_merge($param,['sign'=>$this->sign($param,$this->config['sign_key'])]); return $this->http($this->service,$param); } /** * @introduce 获取13时间戳 * @return float * @Date 2022/1/27 * @author yanglei */ function getUnixTimestamp () { list($s1, $s2) = explode(' ', microtime()); return (float)sprintf('%.0f',(floatval($s1) + floatval($s2)) * 1000); } /** * 创建签名 * @param $params array|object 参与签名的数据 * @param $signKey string 签名key * @return string */ protected function sign($params, $signKey = '') { if (is_object($params)) { //对象转数组 $params = json_decode(json_encode($params), true); } if (!empty($signKey)) { $params['sign_key'] = $signKey; } ksort($params); $formatData = []; foreach ($params as $k => $v) { if (is_array($v) || is_object($v)) { $v = json_encode($v,JSON_UNESCAPED_UNICODE); } if ((!empty($v) || (string)$v === '0') && $k != 'sign') { $formatData[] = "$k=$v"; } } $signStr = implode('&', $formatData); return strtoupper(md5($signStr)); } /** * @introduce http post请求 * @param $url string 请求地址 * @param $data array 参数 * @return bool|string * @Date 2022/1/4 * @author yanglei */ protected function http($url, $data){ $curl = curl_init(); // 启动一个CURL会话 curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); // 对认证证书来源的检查 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); // 从证书中检查SSL加密算法是否存在 curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)'); // 模拟用户使用的浏览器 //curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转 //curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求 curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包x curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制 防止死循环 curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回 $tmpInfo = curl_exec($curl); // 执行操作 if(curl_errno($curl)) { return false;//捕抓异常 } curl_close($curl); // 关闭CURL会话 return $tmpInfo; // 返回数据 } }