首先,你们公司有多大?
一般的地方,移动是不会买账的。。
从原理上来说,你要把你网站上的用户输入发到手机,你唯一的办法就是通过运营商的SMS GateWay.
移动和联通都有类似项目,一个叫移动梦网、一个叫联通在信。都是通过SP(也就是你、我)来提供短信服务。
如果你有兴趣,我可以给你一份联通SGIP协议的电子文档。
移动的我不熟,联通的SGIP协议它主要有两种承载方式:http和SGIP
我们只做过专用SGIP的基于http的没做过,效率想来也不高。

解决方案 »

  1.   

    楼上的正解.
    移动主要是smpp方式,还有就是专门应用的http.
    我做过用php方式发送短消息.和移动之间是用smpp协议
    其实关键的地方不在你的前台php,而是你要在服务器上启一个通讯进程和移动的服务器交换数据包,并且再启一个服务用于侦听web发来的数据包.
    我的email是[email protected]
    你有兴趣我们可以讨论一下
      

  2.   

    对。主要是server端的socket编程问题。客户端只要取数据,发数据到server就可以了
      

  3.   

    前不久我做了一个联通的短信服务
    如上面的朋友所说需要由server端和客户端
    (以联通为列)server端负责和联通提供的端口通讯,按照联通给的协议发送数据。(以php为列)而客户端则按照和server端事先商议好的数据格式来将数据规范,然后发送给server端。
    参考如下函数:
    include("./get_msg.php");//标准化数据的函数文件
    function ConectSockMsg($hostIP,$port,$checkdata,$data_to_send)
    {
    echo"<br>尝试连接端口".$hostIP.":".$port." ...<br>";
    $fp = pfsockopen($hostIP,$port,$err_num,$err_msg,10);
    if (!$fp) 
    {
       echo "连接失败:".$err_msg."(".$err_num.")<br>";

    else 
    {
    echo"端口".$hostIP.":".$port." 被成功打开!<br>";
    echo"发送登录数据包...<br>";
    echo "数据包长度:".strlen($checkdata)."<br>";
    fputs($fp,$checkdata,strlen($checkdata));   //发送登录数据包
    $returnValue=fread($fp,12);
    echo"收到长度为".strlen($returnValue)."的数据包:".$returnValue."<br>";
    if($returnValue[2]=="A")   //返回验证
    {
    echo"登录成功!<br><br>";
    echo"发送信息数据包...<br>";
    for($i=0;$i<count($data_to_send);$i++)
    {
    echo"数据包(".$i.")长度:".strlen($data_to_send[$i])."<br>";
    fputs($fp,$data_to_send[$i],strlen($data_to_send[$i]));   //发送正式数据
    $returnValues[$i]=fread($fp,12);
    echo"收到长度为".strlen($returnValues[$i])."的数据包:".$returnValues[$i]."<br>";
    if($returnValues[$i][2]=="A")   //正式数据包返回验证
    {
    echo"数据包格式正确!<br>";
    }
    else
    {
    echo"数据包格式错误!<br>";
    }
    }
    }
    else
    {
    echo"登录失败!";
    }
    fclose($fp);
    echo"<br>连接关闭!";
    }
    }function send_msg($action_type,$info,$senderCode,$recieverCode)
    {
    global $hostIP,$port,$msgUser,$msgPassword;
    $checkdata=check_pass($msgUser,$msgPassword);
    for($i=0;$i<count($recieverCode);$i++)
    {
    $data_to_send[$i]=send_str($action_type,$i+1,$senderCode,$recieverCode[$i],$info);
    }
    ConectSockMsg($hostIP,$port,$checkdata,$data_to_send);
    }//测试数据
    $hostIP="";              
    $port="";
    $msgUser=""; //登录名(6)
    $msgPassword=""; //登录密码(6)
    $action_type="";
    $info="test!!!!!!!!!!";
    $senderCode="13016826765";
    $recieverCode=array("13052907789,13098776644");
    send_msg($action_type,$info,$senderCode,$recieverCode);
      

  4.   

    前不久我做了一个联通的短信服务
    如上面的朋友所说需要由server端和客户端
    (以联通为列)server端负责和联通提供的端口通讯,按照联通给的协议发送数据。(以php为列)而客户端则按照和server端事先商议好的数据格式来将数据规范,然后发送给server端。
    参考如下函数:
    include("./get_msg.php");//标准化数据的函数文件
    function ConectSockMsg($hostIP,$port,$checkdata,$data_to_send)
    {
    echo"<br>尝试连接端口".$hostIP.":".$port." ...<br>";
    $fp = pfsockopen($hostIP,$port,$err_num,$err_msg,10);
    if (!$fp) 
    {
       echo "连接失败:".$err_msg."(".$err_num.")<br>";

    else 
    {
    echo"端口".$hostIP.":".$port." 被成功打开!<br>";
    echo"发送登录数据包...<br>";
    echo "数据包长度:".strlen($checkdata)."<br>";
    fputs($fp,$checkdata,strlen($checkdata));   //发送登录数据包
    $returnValue=fread($fp,12);
    echo"收到长度为".strlen($returnValue)."的数据包:".$returnValue."<br>";
    if($returnValue[2]=="A")   //返回验证
    {
    echo"登录成功!<br><br>";
    echo"发送信息数据包...<br>";
    for($i=0;$i<count($data_to_send);$i++)
    {
    echo"数据包(".$i.")长度:".strlen($data_to_send[$i])."<br>";
    fputs($fp,$data_to_send[$i],strlen($data_to_send[$i]));   //发送正式数据
    $returnValues[$i]=fread($fp,12);
    echo"收到长度为".strlen($returnValues[$i])."的数据包:".$returnValues[$i]."<br>";
    if($returnValues[$i][2]=="A")   //正式数据包返回验证
    {
    echo"数据包格式正确!<br>";
    }
    else
    {
    echo"数据包格式错误!<br>";
    }
    }
    }
    else
    {
    echo"登录失败!";
    }
    fclose($fp);
    echo"<br>连接关闭!";
    }
    }function send_msg($action_type,$info,$senderCode,$recieverCode)
    {
    global $hostIP,$port,$msgUser,$msgPassword;
    $checkdata=check_pass($msgUser,$msgPassword);
    for($i=0;$i<count($recieverCode);$i++)
    {
    $data_to_send[$i]=send_str($action_type,$i+1,$senderCode,$recieverCode[$i],$info);
    }
    ConectSockMsg($hostIP,$port,$checkdata,$data_to_send);
    }//测试数据
    $hostIP="";              
    $port="";
    $msgUser=""; //登录名(6)
    $msgPassword=""; //登录密码(6)
    $action_type="";
    $info="test!!!!!!!!!!";
    $senderCode="13016826765";
    $recieverCode=array("13052907789,13098776644");
    send_msg($action_type,$info,$senderCode,$recieverCode);
      

  5.   

    实际上移动的SMPP才是正规部队,联通SGIP是找深圳一家公司开发的,问题非常多,经常莫名其妙的s掉。
    我在想实际上如果非要用php的话,倒是有一个比较好的办法(我现在就在做这东西)我的公司已经有了联通短信平台,是一套我们自己开发的vc程序,采用sqlserver数据库,现在需要在web上发短信。
    我们的意见是:
    web操纵socket毕竟速度稳定性不如vc的东西,所以采用将用户输入的短信内容插入数据库,在服务端每隔半分钟扫描数据库,有新的东西进来就发送。
    我认为这是个比较好的办法
      

  6.   

    其实如果你们公司的业务量不大的话,可以用手机和数据线,向手机发送指令就可以发短消息.其他的还是和上面一样.不需要找移动谈网关之间通讯线路的问题.
    业务量大了以后还可以换短信息猫,falcom公司有这种产品.
    和移动谈必须有一定的业务量.有了业务量就可以在资费上打折扣了
      

  7.   

    其实此问题主要是SOCKET 编程与协议解析的问题其中协议主要是SMPP,我用UNIX下标准C与JAVA做过此类问题,
    这都没有什
      

  8.   

    对于用PHP编程实现WEB 网站,这就比较简单了,我建议使用PERL或JAVA来开发
    发送短信
      

  9.   

    移动现在是cmpp2.0协议了
    马的,我都申请了快半年了,计费测试都通过了,他妈的移动还不跟我签协议,我操
      

  10.   

    我们是用VC做的接口,php做的基本应用部分。to:JasonSeaver(来杯咖啡) 
    请问你们短信部分都完成了吗.
    我们网站现在只做了NOKIA的。关于铃声部分我一直找不到相应的制作软件。如果您有能不能给我发一份,或者是有偿提供一份也成。
      

  11.   

    to: cao_zp(方世玉) 
    我對你所說的 手機+數據線 的方式非常感興趣,
    如果只是內部使用,這確實是非常簡單而有效的解決方案.這正是我這一段時間來一直尋找的.非常感謝 !
    只是,我不知道,如何編程實現呢?
      

  12.   

    我们是用java开发的守护进程,大体的思路是:
     在网站上通过php将手机短信的内容存入数据库中,服务器上启动守护进程每隔一段时间去扫描数据库,如果有新的消息就马上发送,这样的话,当数据量很大的时候不会出现过长的等待现象,如果时间过长,那说明短信在电信或者连通的短信网关等待的消息过多,我们采用的是cmpp协议!希望对你有所帮助!好运!
      

  13.   

    用PHP做短信程序需要一些什么样的知识呢?COM编程知识,还需要一些什么样的知识呢?
    请大家推荐几本好书,做短信用得着的书