天天看點

PHP語音SDK接口開發經驗及具體開發實作

一、查詢賬戶餘額balance()

參數名稱 說明 備注
Sn 軟體序列号 格式XXX-XXX-XXX-XXXXX
Pwd 密碼 md5(sn+password) 32位大寫 密文 +表示連接配接

函數傳回值:String(餘額)

接口位址:http://sdk3.leiyusoft.com:8060/webservice.asmx?op=balance

示例:序列号SDK-SSD-010-00001 密碼 xxxxxx

參數輸入:

SN= SDK-SSD-010-00001

PWD= 3B5D3C427365F40C1D27682D78BB31E0

示例傳回結果: 餘額79109條短信

XML格式:

PHP語音SDK接口開發經驗及具體開發實作

具體函數PHP實作:

<?PHP 
//該demo的功能是查餘額


$flag = 0; 
        //要post的資料 
$argv = array( 
         'sn'=>'SDK-SSD-010-xxxxx', //替換成您自己的序列号
		 'pwd'=>'xxxxxx',//替換成您自己的密碼
		
		 ); 
//構造要post的字元串 
foreach ($argv as $key=>$value) { 
          if ($flag!=0) { 
                         $params .= "&"; 
                         $flag = 1; 
          } 
         $params.= $key."="; $params.= urlencode($value); 
         $flag = 1; 
          } 
         $length = strlen($params); 
                 //建立socket連接配接 
        $fp = fsockopen("sdk2.leiyusoft.com",8060,$errno,$errstr,10) or exit($errstr."--->".$errno); 
         //構造post請求的頭 
         $header = "POST /webservice.asmx/GetBalance HTTP/1.1\r\n"; 
         $header .= "Host:sdk2.leiyusoft.com\r\n"; 
         $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; 
         $header .= "Content-Length: ".$length."\r\n"; 
         $header .= "Connection: Close\r\n\r\n"; 
         //添加post的字元串 
         $header .= $params."\r\n"; 
         //發送post的資料 
         fputs($fp,$header); 
         $inheader = 1; 
          while (!feof($fp)) { 
                         $line = fgets($fp,1024); //去除請求包的頭隻顯示頁面的傳回資料 
                         if ($inheader && ($line == "\n" || $line == "\r\n")) { 
                                 $inheader = 0; 
                          } 
                          if ($inheader == 0) { 
                                // echo $line; 
                          } 
          } 
		  //<string xmlns="http://tempuri.org/">-5</string>
	       $line=str_replace("<string xmlns=\"http://tempuri.org/\">","",$line);
	       $line=str_replace("</string>","",$line);
		   $result=explode("-",$line);
		    if(count($result)>1)
			echo '發送失敗傳回值為:'.$line;
			else
			echo '餘額為:'.$line;


?>
           

二、群發語音mdAudioSend

參數名稱 說明 類型 是否必須    備注
Sn 軟體序列号 String 格式XXX-XXX-XXX-XXXXX
Pwd 密碼 String md5(sn+password) 32位大寫密文
title 主題 String 長度最大40字元
Mobile 手機号 String 手機号碼多個以英文逗号隔開
txt 文本内容 String 普通文本内容,最大300個字元
Content Wav base64串 String 檔案内容,base64編碼(完整檔案名(包括字尾),檔案base64編碼串);檔案名最大20個字元包括字尾,編碼檔案大小最大500k.如您好.wav,base64編碼串
Srcnumber 源号碼(号碼顯示) String 源号碼(号碼顯示)
stime 定時時間 String 格式為 yyyy-mm-dd HH:MM:SS,例如:2010-12-29 16:27:03(非定時置空)

傳回rrid:201012300908160937  (示例)

輸出結果:

XML格式:

PHP語音SDK接口開發經驗及具體開發實作
  1. 1.txt 和content 不能同時為空 并且不能同時不為空.
  2. 2.語音合成請求(附加功能):

txt不為空,同時mobile為空.調用成功傳回如201012300908160937那麼通過下面的位址可以得到該文本合成的語音檔案: http://sdk3.leiyusoft.com:8060/yuyin/syn/201012300908160937_47512.wav

位址格式是:http:// sdk3.leiyusoft.com:8060/yuyin/syn/rrid_特服号.wav

此處的rrid 為接口送出成功的傳回值.特服号是該序列号(sn)對應的一個短号碼,可以通過此接口的GetCode 方法進行擷取.GetCode的傳回值形式如 047512 此處0表示成功 47512 表示該sn對應的該特服号.

具體函數PHP實作:

<?PHP 

//該demo的功能是發語音
//我們的Demo,都是在gb2312環境下測試的。如果您的系統是UTF-8,肯定會亂碼。
//請參考第17行和第29行進行處理。
 
  $file="1.wav"; 
$fp=fopen($file,"r")or die("Can't open file");  //打開檔案
$PicBase1=base64_encode(fread($fp,filesize($file)));//base64編碼 
 $file_content='1.wav,'.$PicBase1;


 //echo $file_content;
 //exit;
$flag = 0; 
        //要post的資料 
$argv = array( 
         'sn'=>'SDK-SSD-010-*****', //換成您自己的序列号
		 'pwd'=>strtoupper(md5('SDK-SSD-010-*****'.'xxxxxx')), //此處密碼需要加密 加密方式為 md5(sn+password) 
		 'title'=>'test測試語音',
		 //'title'=>iconv( "UTF-8", "gb2312//IGNORE" ,"test語音測試"),
		 'mobile'=>'186****4700',//手機号 多個用英文的逗号隔開 post理論沒有長度限制.推薦群發一次小于等于10000個手機号
		 'txt'=>'',  //語音文本 和語音檔案content 選擇其中一個進行傳值 即可,不需要同時傳值 也不可同時不傳值
		 'content'=>$file_content,//語音内容//base64_encode();   
		 'srcnumber'=>'',//預設空 如果空傳回系統生成的辨別串 如果傳值保證值唯一 成功則傳回傳入的值
		 'stime'=>''//定時時間 格式為2011-6-29 11:09:21
		 ); 

//構造要post的字元串 
foreach ($argv as $key=>$value) { 
          if ($flag!=0) { 
                         $params .= "&"; 
                         $flag = 1; 
          } 
         $params.= $key."="; $params.= urlencode($value); 
         $flag = 1; 
          } 
         $length = strlen($params); 
                 //建立socket連接配接 
         $fp = fsockopen("sdk3.leiyusoft.com",8060,$errno,$errstr,10) or exit($errstr."--->".$errno); 
         //構造post請求的頭 
         $header = "POST /webservice.asmx/mdAudioSend HTTP/1.1\r\n"; 
         $header .= "Host:sdk3.leiyusoft.com\r\n"; 
         $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; 
         $header .= "Content-Length: ".$length."\r\n"; 
         $header .= "Connection: Close\r\n\r\n"; 
         //添加post的字元串 
         $header .= $params."\r\n"; 
         //發送post的資料 
         fputs($fp,$header); 
         $inheader = 1; 
          while (!feof($fp)) { 
                         $line = fgets($fp,1024); //去除請求包的頭隻顯示頁面的傳回資料 
                         if ($inheader && ($line == "\n" || $line == "\r\n")) { 
                                 $inheader = 0; 
                          } 
                          if ($inheader == 0) { 
                                // echo $line; 
                          } 
          } 
		  //<string xmlns="http://tempuri.org/">-5</string>
	       $line=str_replace("<string xmlns=\"http://tempuri.org/\">","",$line);
	       $line=str_replace("</string>","",$line);
		   $result=explode("-",$line);
		    if(count($result)>1)
			echo '發送失敗傳回值為:'.$line;
			else
			echo '發送成功 傳回值為:'.$line;  
?>

           

三、webservice傳回集合對照表:

傳回值 傳回值說明
-2 帳号/密碼不正确
-4 餘額不足
-5 資料格式錯誤
-6 參數有誤
-8 流量控制錯誤
-10 内容長度長
-11 資料庫錯誤
-12 序列号狀态錯誤
-13 沒有送出增值内容
-14 伺服器寫檔案失敗
-15 檔案内容base64編碼錯誤

四、附加說明:

1.語音SDK位址:

常用接口位址:http://sdk3.leiyusoft.com:8060/webservice.asmx

2.其它說明:

(1)開發使用的帳号必須為SDK開頭,如SDK-SSD-010-00001,帳号第一次需要調用Register方法注冊一次.僅需注冊一次即可,資訊必須真實

(2)UnRegister與Register配合使用, 連續使用不得超過10次/天;

3. 鄭重聲明:

(1)禁止相同的内容多個手機号連續一條一條送出. 否則禁用帳号,由此帶來損失由客戶自行負責.

(2)請客戶提供外網伺服器IP以便于綁定IP發送,提高賬号的安全性!

(3)在程式裡最好有配置檔案,程式自動判斷當某個接口連接配接逾時送出速度變慢時.程式可以自動切換其它的接口以下是推薦的幾個伺服器,僅接口位址不同而已.方法全部相同;

位址1:http://sdk3.leiyusoft.com:8060/webservice.asmx

這些位址都是标準的webservice位址,C#,Java客戶可以按照自己熟悉的方式去解析String   

或者

位址1:http://sdk3.leiyusoft.com:8060/webservice.asmx?wsdl

五、示例Demo源代碼下載下傳:

DEMO     SDK語音接口文檔   所有下載下傳