travel/service/app/server/AliCloudApiService.php

67 lines
2.4 KiB
PHP
Raw Normal View History

2024-08-08 21:08:23 +08:00
<?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);
}
}