阳光网驿-企业信息化交流平台【DTC零售连锁全渠道解决方案】

 找回密码
 注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

手机号码,快捷登录

手机号码,快捷登录

老司机
查看: 7407|回复: 29

[原创] 换个思路,完成通用网关发送短信的补丁,这个应该算比较完美了

  [复制链接]
  • TA的每日心情
    奋斗
    2011-11-18 08:25
  • 签到天数: 80 天

    [LV.6]常住居民II

    发表于 2011-10-23 15:30:10 | 显示全部楼层 |阅读模式
    之前发布了一个短信的自定义模块补丁以后,经常有些坛友咨询他那边的短信网关应该怎么改,让我一个一个的帮改代码不是要累死我啊,所以就计划完成这个补丁了。
    这次换了个思路,使用通达OA自带的定时任务功能在后台通过网关发送短信,只要你的短信网关提供了HTTP接口的POST方式,稍微按照对方的接口参数修改一下代码就OK了。
    理论上只要是http接口就全兼容,当然,也有待测试。

    这个补丁的优点是完全使用通达自带的模块,没有对通达的源文件进行任何修改。
    发送原理:使用定时任务模块,每隔1分钟读取原GSM猫使用的短信发送列表,提交短信网关发送端口进行发送,提交成功则标识发送记录为“发送成功”,此轮发送失败则标识为“发送中”并等待下一轮再次尝试发送,若经过5轮发送(这个次数可以自行修改)仍然失败则标识为“发送超时”不再重试。因为是提交后台发送,所以没有之前的自定义补丁在点击发送之后可能会有短时间停顿的问题。

    使用方法:
    1.下载附件,解压,建议不要直接解压到OA目录覆盖,因为我们还要根据自己的网关修改一下参数设置。
    2.用记事本打开解压后webroot\task\send_sms_through_gate.php,修改代码开头的这样一段
    //网关HTTP地址
    $SMS_GATE_URL='http://网关地址:网关端口/接口页面.php';
    //网关接口参数,按照对方接口标准自行修改
    $DATA_STRING = '
    $POST_DATA = array
    (
    "userid"=>"11",
    "password"=>"22",
    "action"=>"send",
    "phone"=>"$PHONE",
    "message"=>"$CONTENT",
    "sendtime"=>"$SEND_TIME"
    );';
    //发送成功返回的标识正则式匹配
    $SMS_SEND_SUCCESS = "/^1$/";
    //5次发送失败则放弃尝试
    $TIME_OUT = 5;

    $SMS_GATE_URL的值修改为使用的网关http接口页面地址
    "userid"=>"11",
    "password"=>"22",
    "action"=>"send",
    "phone"=>"$PHONE",
    "message"=>"$CONTENT",
    "sendtime"=>"$SEND_TIME"


    这部分是网关的参数设置,按照网关的接口调用说明进行修改,比如有一个网关使用如下的http地址进行发送
    http://www.72dns.com/smsadmin/Sms_Api.aspx?UserID=15&PassWord=E10ADC3949BA59ABBE56E057F20F883E&mobile=13513331133&message=sdcsdcd&action=SendSms

    那这部分就修改为
    "UserID"="15",
    "PassWord"="E10ADC3949BA59ABBE56E057F20F883E",
    "mobile"="$PHONE",
    "message"="$CONTENT",
    "action"="SendSms"

    其中mobile是要接收的手机号,赋值为$PHONE,要发送的消息内容message赋值为$CONTENT,如果是预先定时发送的短信则把网关的发送时间参数赋值为$SEND_TIME,$SMS_GATE_URL为"http://www.72dns.com/smsadmin/Sms_Api.aspx"
    $SEND_SMS_SUCCESS为返回内容的成功提示,按照接口说明,发送成功会返回
    code=200&msg=发送成功

    使用正则式则$SEND_SMS_SUCCESS="/^code=200/",若发送成功返回1,那就赋值为“/^1$/”
    $TIME_OUT=5,5轮发送后仍然失败则放弃重试。
    3.修改完成后,将整个webroot文件夹覆盖通达同名目录
    4.打开OA登陆界面,按提示升级
    5.升级完成后,进入系统设置,定时任务管理,会看到多了一个“网关发送短信”,点击编辑,设置为启用。
    6.到此全部设置完毕。

    PS:
    1.使用此补丁,首先要保证通达定时任务模块能够正常运行,正版应该没有问题,使用破解的应该要正确设置好officetask替代品。
    2.启用此补丁的时候建议关闭通达的短信服务器,以免造成冲突。
    3.其实依靠同样的思路,用PHP代码直接调用串口通讯的话,就可以完全抛弃通达的短信服务器程序了,就这个东西通达还标价5000大洋,还要注册,真是坑爹。

    最后还是那句话,完全开源,欢迎修改和传播,修改后的成果建议大家能拿出来分享

    webroot.zip (2.58 KB, 下载次数: 96)



    补充内容 (2011-10-27 09:51):
    用这个收到短信是乱码的,尝试把 $CONTENT =  iconv( $ENCODING, "utf-8", $ROW['CONTENT'] ); 改为 $CONTENT = $ROW['CONTENT']; 再试试

    评分

    参与人数 1阳光币 +6 收起 理由
    sunwy + 6 技术帖子,很给力!

    查看全部评分

    楼主热帖
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    无聊
    2021-11-6 05:22
  • 签到天数: 294 天

    [LV.8]以坛为家I

    发表于 2011-10-24 00:04:11 | 显示全部楼层
    不错,上次下载了楼主的附件,还没弄清原理呢,这次解释已经很详细了
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2018-10-13 16:06
  • 签到天数: 251 天

    [LV.8]以坛为家I

    发表于 2011-10-24 10:39:58 | 显示全部楼层
    没弄清原理呢,这次解释已经很详细
    本文
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2018-12-4 12:14
  • 签到天数: 943 天

    [LV.10]以坛为家III

    发表于 2011-10-24 11:06:27 | 显示全部楼层
    能不能用在“致远A6上呀!。。。。。。。。。。
    启用邀请码注册,提高发帖质量,建设交流社区

    该用户从未签到

    发表于 2011-11-10 19:53:08 | 显示全部楼层
    现在才看到 一定要顶上去 感谢感谢
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    无聊
    2021-11-6 05:22
  • 签到天数: 294 天

    [LV.8]以坛为家I

    发表于 2011-11-15 00:25:20 | 显示全部楼层
    楼主能否换个思路,解决将此短信补丁替代系统的短信猫接口,让与系统相关的短信接口全部改为此模式。
    比如系统中安装了EDU组件,就有个短信猫接口和网关接口,但又要修改一遍,太过于麻烦,如此一来,统一替换为此接口后,那或许会更加方便
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    无聊
    2021-11-6 05:22
  • 签到天数: 294 天

    [LV.8]以坛为家I

    发表于 2011-11-15 00:26:27 | 显示全部楼层
    要不,楼主告诉我,在哪里可以更改教育组件的短信接口?
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2014-8-23 16:52
  • 签到天数: 69 天

    [LV.6]常住居民II

    发表于 2011-11-15 10:12:02 | 显示全部楼层
    我想用个不用短信猫的解决方案
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    奋斗
    2011-11-18 08:25
  • 签到天数: 80 天

    [LV.6]常住居民II

     楼主| 发表于 2011-11-15 10:16:01 | 显示全部楼层
    炎靈法師 发表于 2011-11-15 10:12
    我想用个不用短信猫的解决方案

    这个用的是短信网关,就是不用硬件短信猫的解决办法
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2013-7-11 15:32
  • 签到天数: 48 天

    [LV.5]常住居民I

    发表于 2011-12-28 12:09:53 | 显示全部楼层
    楼主强大,人才,希望再接再励,
    启用邀请码注册,提高发帖质量,建设交流社区
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    快速回复 返回顶部 返回列表