<?php namespace app\server; use app\model\ThirdMobileLogs; use support\Log; /** * 阿里云市场相关接口 */ class AliCloudApiService { /** * @param $mobile * @return array|mixed * @throws \think\db\exception\BindParamException */ public function getMobileArea($mobile) { $host = "https://jumcvit.market.alicloudapi.com"; $path = "/mobile/area"; $method = "POST"; $appcode = "4402db67815049c18a55a996b5644f5b"; $headers = array(); array_push($headers, "Authorization:APPCODE " . $appcode); //根据API的要求,定义相对应的Content-Type array_push($headers, "Content-Type".":"."application/x-www-form-urlencoded; charset=UTF-8"); $bodys = "mobile_number=" . $mobile; $url = $host . $path; $aliData = $this->curlRequest($url, $method, $headers, $bodys); if (isset($aliData['code']) && $aliData['code'] == 200) { ThirdMobileLogs::query()->insert([ 'mobile' => $mobile, 'area' => $aliData['data']['area'], 'originalIsp' => $aliData['data']['originalIsp'], ]); } return $aliData['data'] ?? []; } /** * @param $url * @param $method * @param $headers * @param $bodys * @return mixed */ private function curlRequest($url, $method, $headers, $bodys){ $curl = curl_init(); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_FAILONERROR, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); //设定返回信息中是否包含响应信息头,启用时会将响应信息头作为数据流输出,true 表示输出信息头, false表示不输出信息头 //如果想将响应结果json字符串转为json数组,建议将 CURLOPT_HEADER 设置成 false curl_setopt($curl, CURLOPT_HEADER, true); if (1 == strpos("$".$url, "https://")) { curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); } curl_setopt($curl, CURLOPT_POSTFIELDS, $bodys); curl_close($curl); list($header, $body) = explode("\r\n\r\n", curl_exec($curl), 2); return json_decode($body, true); } }