有两种方式,至于短信接口商(比如移动,以及其他使用移动接口的公司)给你开放哪种接口就不一定了
第一种是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 "<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("<br>发送成功!<br>".$MobileNo." : ".$MessageContent);
fclose($fp);
}
第一种是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 "<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("<br>发送成功!<br>".$MobileNo." : ".$MessageContent);
fclose($fp);
}