当前位置: 首页 >语音SDK> PHP语音SDK
PHP语音SDK
一、查询账户余额balance()
参数名称 |
说明 |
备注 |
Sn |
软件序列号 |
格式XXX-XXX-XXX-XXXXX |
Pwd |
密码 |
md5(sn+password) 32位大写 密文 +表示连接 |
函数返回值:String(余额)
接口地址:http://sdk3.entinfo.cn:8060/webservice.asmx?op=balance
示例:序列号SDK-SSD-010-00001 密码 xxxxxx
参数输入:
SN= SDK-SSD-010-00001
PWD= 3B5D3C427365F40C1D27682D78BB31E0
示例返回结果: 余额79109条短信
XML格式:
'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.entinfo.cn",8060,$errno,$errstr,10) or exit($errstr."--->".$errno); //构造post请求的头 $header = "POST /webservice.asmx/GetBalance HTTP/1.1\r\n"; $header .= "Host:sdk2.entinfo.cn\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; } } //-5 $line=str_replace("","",$line); $line=str_replace(" ","",$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格式:
- 1.txt 和content 不能同时为空 并且不能同时不为空.
- 2.语音合成请求(附加功能):
txt不为空,同时mobile为空.调用成功返回如201012300908160937那么通过下面的地址可以得到该文本合成的语音文件: http://sdk3.entinfo.cn:8060/yuyin/syn/201012300908160937_47512.wav
地址格式是:http:// sdk3.entinfo.cn:8060/yuyin/syn/rrid_特服号.wav
此处的rrid 为接口提交成功的返回值.特服号是该序列号(sn)对应的一个短号码,可以通过此接口的GetCode 方法进行获取.GetCode的返回值形式如 047512 此处0表示成功 47512 表示该sn对应的该特服号.
具体函数PHP实现:
'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.entinfo.cn",8060,$errno,$errstr,10) or exit($errstr."--->".$errno); //构造post请求的头 $header = "POST /webservice.asmx/mdAudioSend HTTP/1.1\r\n"; $header .= "Host:sdk3.entinfo.cn\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; } } //-5 $line=str_replace("","",$line); $line=str_replace(" ","",$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.entinfo.cn:8060/webservice.asmx
2.其它说明:
(1)开发使用的帐号必须为SDK开头,如SDK-SSD-010-00001,帐号第一次需要调用Register方法注册一次.仅需注册一次即可,信息必须真实
(2)UnRegister与Register配合使用, 连续使用不得超过10次/天;
3. 郑重声明:
(1)禁止相同的内容多个手机号连续一条一条提交. 否则禁用帐号,由此带来损失由客户自行负责.
(2)请客户提供外网服务器IP以便于绑定IP发送,提高账号的安全性!
(3)在程序里最好有配置文件,程序自动判断当某个接口连接超时提交速度变慢时.程序可以自动切换其它的接口以下是推荐的几个服务器,仅接口地址不同而已.方法全部相同;
地址1:http://sdk3.entinfo.cn:8060/webservice.asmx
这些地址都是标准的webservice地址,C#,Java客户可以按照自己熟悉的方式去解析String
或者
地址1:http://sdk3.entinfo.cn:8060/webservice.asmx?wsdl
五、示例Demo源代码下载: