php短信接口开发经验及具体开发实现

一、群发短信mt

参数名称

说明

是否必须   

备注

Sn

软件序列号

格式XXX-XXX-XXX-XXXXX

Pwd

密码

md5(sn+password) 32位大写密文

Mobile

手机号

必填(支持10000个手机号,建议<=5000)多个英文逗号隔开

Content

内容

支持长短信(详细请看长短信扣费说明)

Ext

扩展码

例如:123(默认置空)

stime

定时时间

例如:2010-12-29 16:27:03(非定时置空)

Rrid

唯一标识

最长18位,只能是数字或者 字母 或者数字+字母的组合

函数返回值:String(唯一标识,即当前发送短信批次的唯一标识,和rrid对应,如为空则返回系统生成的rrid),此方法推荐用于大量群发.内容相同手机号多个的情况。

接口地址:http://sdk.entinfo.cn:8060/webservice.asmx?op=mt

示例1

SN= SDK-SSD-010-00001

PWD=3B5D3C427365F40C1D27682D78BB31E0

Mobile:139***404,138***213…………….

Content:测试

Ext: ""

Stime: ""

Rrid: ""

输出结果:

XML格式:

具体函数PHP实现:

 

<?PHP 
//改demo的功能是群发短信和发单条短信。(传一个手机号就是发单条,多个手机号既是群发)

//您把序列号和密码还有手机号,填上,直接运行就可以了

//如果您的系统是utf-8,请转成GB2312 后,再提交、
//请参考 'content'=>iconv( "UTF-8", "gb2312//IGNORE" ,'您好测试短信[XXX公司]'),//短信内容

$flag = 0; 
        //要post的数据 
$argv = array( 
         'sn'=>'SDK-SSD-010-00009', 替换成您自己的序列号
		 'pwd'=>strtoupper(md5('SDK-SSD-010-00001'.'XXX')), //此处密码需要加密 加密方式为 md5(sn+password) 32位大写
		 'mobile'=>'18636924700',//手机号 多个用英文的逗号隔开 post理论没有长度限制.推荐群发一次小于等于10000个手机号
		 'content'=>'用户您好,您的校验码是123456,十分钟输入有效。[雷雨科技]',//短信内容
		 'ext'=>'',		
		 'stime'=>'',//定时时间 格式为2011-6-29 11:09:21
		 'rrid'=>''
		 ); 
        //构造要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("sdk.entinfo.cn",8060,$errno,$errstr,10) or exit($errstr."--->".$errno); 
         //构造post请求的头 
         $header = "POST /webservice.asmx/mt HTTP/1.1\r\n"; 
         $header .= "Host:sdk.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; 
			  } 
          } 
		  //<string xmlns="http://tempuri.org/">-5</string>
	       $line=str_replace("<string xmlns=\"http://tempuri.org/\">","",$line);
	       $line=str_replace("</string>","",$line);
		   $result=explode("-",$line);
		  // echo $line."-------------";
		    if(count($result)>1)
			echo '发送失败返回值为:'.$line.'。请查看webservice返回值对照表';
			else
			echo '发送成功 返回值为:'.$line;  
?>


 

二、webservice返回集合对照表:

 

返回值

返回值说明

问题描述

-2 

帐号/密码不正确

1.序列号未注册2.密码加密不正确3.密码已被修改4.序列号已注销

-4

余额不足支持本次发送(或者修改密码长度不正确)

余额不足(或者修改密码长度不在6位到10位之间)

-5

数据格式错误

只能自行调试了。或与技术支持联系

-6

参数有误

看参数传的是否均正常,请调试程序查看各参数

-7

权限受限

该序列号是否已经开通了调用该方法的权限

-8

流量控制错误

-9

扩展码权限错误

该序列号是否已经开通了扩展子号的权限,把ext这个参数置空。

-10

内容长度长

单字节不能超过1000个字符,双字节不能超过500个字符

-11

内部数据库错误

-12

序列号状态错误

序列号是否被禁用

-14

服务器写文件失败

-17

没有权限

如发送彩信仅限于SDK3

-19

禁止同时使用多个接口地址

每个序列号提交只能使用一个接口地址

-20

相同手机号,相同内容重复提交

-22

Ip鉴权失败

提交的IP不是所绑定的IP

-23

缓存无此序列号信息

-601

序列号为空,参数错误

-602

序列号格式错误,参数错误

-603

密码为空,参数错误

-604

手机号码为空,参数错误

-605

内容为空,参数错误

-606

ext长度大于9,参数错误

-607

参数错误 扩展码非数字 

-608

参数错误 定时时间非日期格式

-609

rrid长度大于18,参数错误 

-610

参数错误 rrid非数字

-611

参数错误 内容编码不符合规范

-623

手机个数与内容个数不匹配

-624

扩展个数与手机个数数

-644 

rrid个数与手机个数不一致

注:以上返回值针对个别方法.请具体参看每个用到方法的详细说明。

三、附加说明:

1.接口地址:

常用接口地址:http://sdk.entinfo.cn:8060/webservice.asmx (一般调用)

多线程接口地址:http://sdk.entinfo.cn:8061/webservice.asmx (java、andriod使用)

2.其它说明:

(1)开发使用的帐号必须为SDK开头,如SDK-SSD-010-00001,帐号第一次需要调用Register方法注册一次.仅需注册一次即可,信息必须真实

(2)UnRegister与Register配合使用, 连续使用不得超过10次/天;

(3)群发推荐使用接口方法 mt或者mdSmsSend (仅方法名不同);

3. 郑重声明:

(1)禁止相同的内容多个手机号连续一条一条提交. 否则禁用帐号,由此带来损失由客户自行负责.

(2)请客户提供外网服务器IP以便于绑定IP发送,提高账号的安全性!

(3)在程序里最好有配置文件,程序自动判断当某个接口连接超时提交速度变慢时.程序可以自动切换其它的接口以下是推荐的几个服务器,仅接口地址不同而已.方法全部相同;

地址1:http://sdk.entinfo.cn:8060/webservice.asmx

地址2:http://sdk2.entinfo.cn:8060/webservice.asmx

这些地址都是标准的webservice地址,C#,Java客户可以按照自己熟悉的方式去解析String   

或者

地址1:http://sdk.entinfo.cn:8060/webservice.asmx?wsdl

地址2:http://sdk2.entinfo.cn:8060/webservice.asmx?wsdl

四、示例Demo源代码下载:

DEMO  SDK通用版接口文档  所有下载

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值