📖 File Reader
<?php
namespace app\common;
use app\BaseController;
use think\facade\Db;
use think\facade\View;
/*其他接口处理*/
class common_api extends BaseController
{
/**
* 实名认证检测(阿里云)
* 接口地址:https://market.aliyun.com/products/57000002/cmapi00037883.html?spm=5176.2020520132.101.2.7ce672185rAoNu#sku=yuncode31883000010
* @param $name
* @param $identity
*/
static function certification($name, $identity)
{
$host = "https://zid.market.alicloudapi.com";
$path = "/idcheck/Post";
$method = "POST";
$appcode = "c9f09e90ff1b4c44ac03497759857e9d";
$headers = array();
array_push($headers, "Authorization:APPCODE " . $appcode);
//根据API的要求,定义相对应的Content-Type
array_push($headers, "Content-Type" . ":" . "application/x-www-form-urlencoded; charset=UTF-8");
$querys = "";
$bodys = "cardNo=" . $identity . "&realName=" . $name;
$url = $host . $path;
$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);
curl_setopt($curl, CURLOPT_HEADER, false);//获取响应的头信息
if (1 == strpos("$" . $host, "https://")) {
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
}
curl_setopt($curl, CURLOPT_POSTFIELDS, $bodys);
$result = curl_exec($curl);
$result = json_decode($result, true);
if (!empty($result["result"])) {
if ($result["result"]["isok"] == 1) {
$data = [
'code' => 200,
'msg' => '匹配成功',
];
} else {
$data = [
'code' => 400,
'msg' => '姓名和身份证不匹配',
];
}
} else {
$data = [
'code' => 400,
'msg' => '检测失败'
];
}
return $data;
}
/**
* 身份证识别(阿里云)
* 接口地址:https://market.aliyun.com/products/57124001/cmapi010401.html?spm=5176.2020520132.101.2.5e487218YRakeQ#sku=yuncode440100000
* @param $img_url 图片地址
*/
static function identity_recognition($img_url)
{
$url = "http://dm-51.data.aliyun.com/rest/160601/ocr/ocr_idcard.json";
$appcode = "c9f09e90ff1b4c44ac03497759857e9d";
$img_path = $img_url;
$method = "POST";
$headers = array();
array_push($headers, "Authorization:APPCODE " . $appcode);
//根据API的要求,定义相对应的Content-Type
array_push($headers, "Content-Type" . ":" . "application/json; charset=UTF-8");
//如果没有configure字段,config设为空
$config = array(
"side" => "face"
);
$img_data = Common_api::img_base64($img_path);
$request = array(
"image" => "$img_data"
);
if (count($config) > 0) {
$request["configure"] = json_encode($config);
}
$body = json_encode($request);
$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);
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, $body);
$result = curl_exec($curl);
$header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
$rheader = substr($result, 0, $header_size);
$rbody = substr($result, $header_size);
$rbody = json_decode($rbody, true);
if (!empty($rbody["name"]) && !empty($rbody["num"])) {
$data = [
'code' => 200,
'msg' => 'ok',
'rbody' => $rbody,
];
} else {
$data = [
'code' => 400,
'msg' => '识别失败'
];
}
return $data;
}
/*base64编码*/
static function img_base64($path)
{
//对path进行判断,如果是本地文件就二进制读取并base64编码,如果是url,则返回
$img_data = "";
if (substr($path, 0, strlen("http")) === "http") {
$img_data = $path;
} else {
if ($fp = fopen($path, "rb", 0)) {
$binary = fread($fp, filesize($path)); // 文件读取
fclose($fp);
$img_data = base64_encode($binary); // 转码
} else {
printf("%s 图片不存在", $img_data);
}
}
return $img_data;
}
/**
* 银行卡检测(阿里云)
* 接口地址:https://market.aliyun.com/products/57000002/cmapi028251.html?spm=5176.2020520132.101.2.51767218Tmt8sE#sku=yuncode2225100000
* @param $accountNo 银行卡号
* @param $idCard 身份证号
* @param $name 姓名
*/
static function bank_card_detection($accountNo, $idCard, $name)
{
error_reporting(E_ALL || ~E_NOTICE);
$host = "https://tbank.market.alicloudapi.com";
$path = "/bank3CheckNew";
$method = "GET";
$appcode = "c9f09e90ff1b4c44ac03497759857e9d";//开通服务后 买家中心-查看AppCode
$headers = array();
array_push($headers, "Authorization:APPCODE " . $appcode);
$querys = "idCard=" . $idCard . "&accountNo=" . $accountNo . "&name=" . urlencode($name);
$bodys = "";
$url = $host . $path . "?" . $querys;
$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);
curl_setopt($curl, CURLOPT_HEADER, true);
if (1 == strpos("$" . $host, "https://")) {
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
}
$out_put = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
list($header, $body) = explode("\r\n\r\n", $out_put, 2);
if ($httpCode == 200) {
$body = json_decode($body, true);
if ($body["status"] == 01) {
$data = [
'code' => 200,
'msg' => $body["msg"],
'body' => $body,
];
} else {
$data = [
'code' => 400,
'msg' => $body["msg"],
];
}
} else {
$data = [
'code' => 400,
'msg' => '',
];
if ($httpCode == 400 && strpos($header, "Invalid Param Location") !== false) {
$data["msg"] = '参数错误';
} elseif ($httpCode == 400 && strpos($header, "Invalid AppCode") !== false) {
$data["msg"] = 'AppCode错误';
} elseif ($httpCode == 400 && strpos($header, "Invalid Url") !== false) {
$data["msg"] = '请求的 Method、Path 或者环境错误';
} elseif ($httpCode == 403 && strpos($header, "Unauthorized") !== false) {
$data["msg"] = '服务未被授权(或URL和Path不正确)';
} elseif ($httpCode == 403 && strpos($header, "Quota Exhausted") !== false) {
$data["msg"] = '套餐包次数用完';
} elseif ($httpCode == 500) {
$data["msg"] = 'API网关错误';
} elseif ($httpCode == 0) {
$data["msg"] = 'URL错误';
} else {
$data["msg"] = '参数名错误 或 其他错误';
// print($httpCode);
// $headers = explode("\r\n", $header);
// $headList = array();
// foreach ($headers as $head) {
// $value = explode(':', $head);
// $headList[$value[0]] = $value[1];
// }
// print($headList['x-ca-error-message']);
}
}
return $data;
}
/**
* 快递物流查询API接口(阿里云)
* 接口地址:https://market.aliyun.com/products/57126001/cmapi00039216.html?spm=5176.2020520132.101.8.50ef7218CD102S#sku=yuncode3321600001
* @param string $courier_number 快递单号
*/
public function recruitment($courier_number = '')
{
error_reporting(E_ALL || ~E_NOTICE);
$host = "https://expresslnt.market.alicloudapi.com";
$path = "/kdi";
$method = "GET";
$appcode = "95c70bf8eef7494eba83187e052d56a6";//开通服务后 买家中心-查看AppCode
$headers = array();
array_push($headers, "Authorization:APPCODE " . $appcode);
$querys = "no=".$courier_number."&type="; //参数写在这里
$bodys = "";
$url = $host . $path . "?" . $querys;
$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);
curl_setopt($curl, CURLOPT_HEADER, true);
if (1 == strpos("$" . $host, "https://")) {
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
}
$out_put = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
list($header, $body) = explode("\r\n\r\n", $out_put, 2);
if ($httpCode == 200) {
$body_arr = json_decode($body,true);
$data = [
'code'=>200,
'msg'=>'ok',
'list'=>$body_arr["result"],
];
} else {
if ($httpCode == 400 && strpos($header, "Invalid Param Location") !== false) {
$msg = '参数错误';
} elseif ($httpCode == 400 && strpos($header, "Invalid AppCode") !== false) {
$msg = 'AppCode错误';
} elseif ($httpCode == 400 && strpos($header, "Invalid Url") !== false) {
$msg = '请求的 Method、Path 或者环境错误';
} elseif ($httpCode == 403 && strpos($header, "Unauthorized") !== false) {
$msg = '服务未被授权(或URL和Path不正确)';
} elseif ($httpCode == 403 && strpos($header, "Quota Exhausted") !== false) {
$msg = '套餐包次数用完';
} elseif ($httpCode == 403 && strpos($header, "Api Market Subscription quota exhausted") !== false) {
$msg = '套餐包次数用完,请续购套餐';
} elseif ($httpCode == 500) {
$msg = 'API网关错误';
} elseif ($httpCode == 0) {
$msg = 'URL错误';
} else {
$msg = '参数名错误 或 其他错误';
$headers = explode("\r\n", $header);
$headList = array();
foreach ($headers as $head) {
$value = explode(':', $head);
$headList[$value[0]] = $value[1];
}
print($headList['x-ca-error-message']);
}
$data = [
'code'=>400,
'msg'=>$msg,
];
}
return $data;
}
/**
* 文字合成语音(阿里云)
* 接口地址:https://market.aliyun.com/apimarket/detail/cmapi00044724?spm=5176.730005.result.2.79be3524jLIyXV
* @param string $keyword 合成语音文字关键词
*/
public function voice_recognition($keyword='')
{
$host = "https://audio.market.alicloudapi.com";
$path = "/audiospeak";
$method = "POST";
$appcode = "e0d80ba65b1f43de9071ad3477aafeaa";
$headers = array();
array_push($headers, "Authorization:APPCODE " . $appcode);
//根据API的要求,定义相对应的Content-Type
array_push($headers, "Content-Type".":"."application/x-www-form-urlencoded; charset=UTF-8");
$querys = "";
$bodys = "src=".$keyword."&speed=5&pit=5&vol=5&per=15";
$url = $host . $path;
$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);
curl_setopt($curl, CURLOPT_HEADER, false);
if (1 == strpos("$".$host, "https://"))
{
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
}
curl_setopt($curl, CURLOPT_POSTFIELDS, $bodys);
$result = curl_exec($curl);
$result = json_decode($result,true);
return $result;
}
}