跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Flatly)
  • 不使用皮肤
折叠

Odoo 中文社区

  1. 主页
  2. 版块
  3. Odoo 开发与实施交流
  4. OpenERP的短信(SMS)接口

OpenERP的短信(SMS)接口

已定时 已固定 已锁定 已移动 Odoo 开发与实施交流
11 帖子 8 发布者 11.8k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • N 离线
    N 离线
    NewZN
    写于 最后由 编辑
    #1

    今天测试了一下OpenERP的短信(SMS)接口。
    在OpenERP的Partner界面上,WebClient的右边的工具条有个“send sms”的按钮。OpenERP中发短信用的是短信的Web接口,国内有很多提供Web接口的短信群发公司。OpenERP短信发送相关的代码在bin\tools\misc.py中:

    <br />def sms_send(user, password, api_id, text, to):<br />&nbsp; &nbsp; import urllib<br />&nbsp; &nbsp; url = &quot;http://api.urlsms.com/SendSMS.aspx&quot;<br />&nbsp; &nbsp; #url = &quot;http://196.7.150.220/http/sendmsg&quot;<br />&nbsp; &nbsp; params = urllib.urlencode({&#039;UserID&#039;: user, &#039;Password&#039;: password, &#039;SenderID&#039;: api_id, &#039;MsgText&#039;: text, &#039;RecipientMobileNo&#039;:to})<br />&nbsp; &nbsp; f = urllib.urlopen(url+&quot;?&quot;+params)<br />&nbsp; &nbsp; # FIXME: Use the logger if there is an error<br />&nbsp; &nbsp; return True<br />
    



    该段代码中写死了短信发送的URL代码,要在国内使用,必须修改成国内的短信发送URL。我测试了青岛维泰(http://www.waytide.com/html/index.htm)的Web短信平台。上他们的网页,和他们的客服联系,他们就会帮忙开通帐号,并赠送10条测试短信。使用青岛维泰的接口,上述代码要做如下修改:

    <br />def sms_send(user, password, api_id, text, to):<br />&nbsp; &nbsp; import urllib<br />&nbsp; &nbsp; url = &quot;http://www.msc8.cn/cgi/sendsmsbatch.asp&quot;<br />&nbsp; &nbsp; #url = &quot;http://196.7.150.220/http/sendmsg&quot;<br />&nbsp; &nbsp; params = urllib.urlencode({&#039;User&#039;: user, &#039;Pass&#039;: password, &#039;Mobile&#039;: to, &#039;Text&#039;: text})<br />&nbsp; &nbsp; f = urllib.urlopen(url+&quot;?&quot;+params)<br />&nbsp; &nbsp; import re<br />&nbsp; &nbsp; p=re.compile(&#039;^200 &#039;)<br />&nbsp; &nbsp; if p.match(res):&nbsp; #send OK!<br />&nbsp; &nbsp; &nbsp; &nbsp; netsvc.Logger().notifyChannel(&#039;SMS_send&#039;, netsvc.netsvc.LOG_DEBUG, f.read())<br />&nbsp; &nbsp; else:<br />&nbsp; &nbsp; &nbsp; &nbsp; netsvc.Logger().notifyChannel(&#039;SMS_send&#039;, netsvc.netsvc.LOG_ERROR, f.read())<br />&nbsp; &nbsp; # FIXME: Use the logger if there is an error<br />&nbsp; &nbsp; return True<br />
    



    青岛维泰的接口中,可以用逗号隔开,输入多个手机号码。上述代码中,增加了一段检查短信发送是否成功的代码,发送成功应该返回“200 ”开头的一段文字,如果发送失败,将在OpenERP的Log中记录错误信息。

    另外,为了处理汉字(gb2312),server\addons\base\res\partner\wizard\wizard_sms.py下的方法_sms_send 也要修改一下。
    原文:tools.sms_send(data['form']['user'], data['form']['password'], data['form']['app_id'], unicode(data['form']['text'], 'utf-8').encode('latin1'), to)
    改成:tools.sms_send(data['form']['user'], data['form']['password'], data['form']['app_id'], unicode(data['form']['text'], 'utf-8').encode('gb2312'), to)

    1 条回复 最后回复
    0
    • mrshellyM 离线
      mrshellyM 离线
      mrshelly
      写于 最后由 编辑
      #2

      打击 软广告....

      1 条回复 最后回复
      0
      • D 离线
        D 离线
        dquo
        写于 最后由 编辑
        #3

        怎么也得免费使用3个月呀,才10条

        1 条回复 最后回复
        0
        • W 离线
          W 离线
          winson97
          写于 最后由 编辑
          #4

          学习了!
          论坛没有收藏功能?

          1 条回复 最后回复
          0
          • C 离线
            C 离线
            CnBoYer
            写于 最后由 编辑
            #5

            mark一下  专门来老肖的贴,最近在摸索OE的CRM相关模块

            1 条回复 最后回复
            0
            • H 离线
              H 离线
              hifly
              写于 最后由 编辑
              #6

              if p.match(res):  #send OK!
              res是什么啊?

              1 条回复 最后回复
              0
              • mrshellyM 离线
                mrshellyM 离线
                mrshelly
                写于 最后由 编辑
                #7

                [quote author=hifly link=topic=2139.msg9106#msg9106 date=1324446615]
                if p.match(res):  #send OK!
                res是什么啊?
                [/quote]

                是 NameError: name 'res' is not defined

                1 条回复 最后回复
                0
                • T 离线
                  T 离线
                  tubage
                  写于 最后由 编辑
                  #8

                  服务器动作要安装smsclient这个模块,去这里找http://doc.openerp.com/v6.0/technical_guide/

                  1 条回复 最后回复
                  0
                  • H 离线
                    H 离线
                    hifly
                    写于 最后由 编辑
                    #9

                    谢谢shelly的回复  🙂

                    1 条回复 最后回复
                    0
                    • R 离线
                      R 离线
                      rufeng1199
                      写于 最后由 编辑
                      #10

                      确信无疑  软广告,呵呵

                      1 条回复 最后回复
                      0

                      • 登录

                      • 没有帐号? 注册

                      • 登录或注册以进行搜索。
                      • 第一个帖子
                        最后一个帖子
                      0
                      • 版块
                      • 标签
                      • 热门
                      • 用户
                      • 群组