短信开发1

来源:互联网 发布:设计软件有哪些 编辑:程序博客网 时间:2024/05/22 17:49
有两种方式,至于短信接口商(比如移动,以及其他使用移动接口的公司)给你开放哪种接口就不一定了  
第一种是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);  
           }