$header,'body' => $response); return $data; } public function xfyun($text = "中华人民共和国于1949年成立", $from = "cn", $to = "en") { //在控制台-我的应用-机器翻译获取 $app_id = "3d46198c"; //在控制台-我的应用-机器翻译获取 $api_sec = "ZWY2MmUyNjJjYmFkOTFlYTVmYWVhMGYy"; //在控制台-我的应用-机器翻译获取 $api_key = "b6d805f240176ecaea85130cb5f2bca1"; // 机器翻译接口地址 $url = "https://ntrans.xfyun.cn/v2/ots"; //body组装 // $text = "中华人民共和国于1949年成立";//待翻译文本 $body = json_encode($this->getBody($app_id, $from, $to, $text)); // 组装http请求头 $date =gmdate('D, d M Y H:i:s') . ' GMT'; $digestBase64 = "SHA-256=".base64_encode(hash("sha256", $body, true)); $builder = sprintf("host: %s date: %s POST /v2/ots HTTP/1.1 digest: %s", "ntrans.xfyun.cn", $date, $digestBase64); // echo($builder); $sha = base64_encode(hash_hmac("sha256", $builder, $api_sec, true)); $authorization = sprintf("api_key=\"%s\", algorithm=\"%s\", headers=\"%s\", signature=\"%s\"", $api_key,"hmac-sha256", "host date request-line digest", $sha); $header = [ "Authorization: ".$authorization, 'Content-Type: application/json', 'Accept: application/json,version=1.0', 'Host: ntrans.xfyun.cn', 'Date: ' .$date, 'Digest: '.$digestBase64 ]; $response = $this->tocurl($url, $header, $body); // var_dump($response['body']); return $response; } public function getBody($app_id, $from, $to, $text) { $common_param = [ 'app_id' => $app_id ]; $business = [ 'from' => $from, 'to' => $to, ]; $data = [ "text" => base64_encode($text) ]; return $body = [ 'common' => $common_param, 'business' => $business, 'data' => $data ]; } // 翻译 public function fanyi($text = "", $from = "", $to = "") { try { $res = $this->xfyun($text, $from, $to); $data = json_decode($res["body"], true); if ($data["code"] === 0) { return $data["data"]["result"]; } else { $this->error = $data["message"]; return false; } } catch (\Throwable $th) { $this->error = $th->getMessage(); return false; } } // 异常 public function error() { return $this->error; } }