短信开发入门资料

---------------------------------------------------------------

有两种方式,至于短信接口商(比如移动,以及其他使用移动接口的公司)给你开放哪种接口就不一定了
第一种是http方式
第二种是socket方式
第一种一般使用get方式传送信息到短信接口服务器,比如http://接口服务器:port/?参数名=****等
因为短信内容不允许超过70个汉字,所以get方式足够使用了
第二种只是使用socket方式连接而已,而其他参数跟get方式没啥区别
---------------------------------------------------------------
具体流程,每个提供商都可能不一样
只要记住一点,只要把参数提交到接口服务器,其他的你都不用考虑
有一个流程是共同的
就是,你把参数信息提交到服务器后,服务器同样采用两种方式中的一种方式,把信息返回给你
比如,你事先告诉服务商,给你提交是否正确发送短信的报告地址,http://自己的网站地址/文件名
那么你每次向服务器提交信息,他们处理完你的信息之后,就会执行你告诉他们的地址,以方便让你知道短信是否正常发送,当然,你也可以使用指定端口用socket方式进行要求报告
---------------------------------------------------------------
短信接口还有一些第三方公司提供的
要是你使用了那种公司的接口的话,中间还得经过那个公司的服务器,最终送到移动联通服务器

---------------------------------------------------------------

我以前根据提供商做的.可以参考一下.主要是socket的读取
$smsUID="xxx"; //短信网关分配给你的用户名和密码
$smsPWD="SMS";
$smsSocket="192.168.1.1"; //短信网关的IP 211.151.90.7
$smsPost=1081; //短信网关的端口
$fp=@fsockopen($smsSocket,$smsPost,&$errno, &$errstr, $smsTimeout);
if(!$fp)
{
echo "

1<font color="#ff0000"><b>连接失败,请查看是否正确连接到网络!</b></font>

"; //连接失败
}
else
{
//登录到短信中心服务器
fputs($fp,"login\n");
fputs($fp,$smsUID."\n");
fputs($fp,$smsPWD."\n");
fputs($fp,"\n");
$MessageContent=trim($_POST["MessageContent"]);
$MobileNo=trim($_POST["MobileNo"]);

$ServiceType="MFFW"; //计费代码 3 TP 0.5 按条收费
$Priority="0"; //发送优先级
$AgentFlag="0"; //代收费标志
$MoFlag="2"; //点播号
$ExpireTime=""; //短信失效时间
$ScheduleTime=""; //定时发送时间
$ReportFlag="1"; //状态报告
$status="255"; //都要返回状态报告
$MessageType="TEXT"; //短信类型 文本信息
$FreeTerminalNo=$MobileNo; //记费手机号码
$TargetTerminalNo=$MobileNo; //接收方手机号码
$SourceTerminalNo=$MobileNo; //发送方手机号码
$MessageId="123";
print(fget($fp,4096));
print(fget($fp,4096));
fputs($fp,"submit"."\n");
fputs($fp,$MessageId."\n");
fputs($fp,$FreeTerminalNo."\n");
fputs($fp,$SourceTerminalNo."\n");
fputs($fp,$TargetTerminalNo."\n");
fputs($fp,$ServiceType."\n");
fputs($fp,$MoFlag."\n");
fputs($fp,$ReportFlag."\n");
fputs($fp,$ExpireTime."\n");
fputs($fp,$ScheduleTime."\n");
fputs($fp,$MessageType."\n");
$MessageContent=str_replace("\r","",str_replace("\n","",$MessageContent)); //不能有回车
fputs($fp,$MessageContent."\n");
fputs($fp,"\n");

print("

1<br/>

发送成功!

1<br/>

".$MobileNo." : ".$MessageContent);
fclose($fp);
}

Published At
Categories with Web编程
comments powered by Disqus