Odoo中文社区可以通过以下三个域名访问:shine-it.net , odoocn.org,odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

OpenERP的短信(SMS)接口



  • 今天测试了一下OpenERP的短信(SMS)接口。<br />在OpenERP的Partner界面上,WebClient的右边的工具条有个“send sms”的按钮。OpenERP中发短信用的是短信的Web接口,国内有很多提供Web接口的短信群发公司。OpenERP短信发送相关的代码在bin\tools\misc.py中:<br />[code]<br />def sms_send(user, password, api_id, text, to):<br />    import urllib<br />    url = "http://api.urlsms.com/SendSMS.aspx"<br />    #url = "http://196.7.150.220/http/sendmsg"<br />    params = urllib.urlencode({'UserID': user, 'Password': password, 'SenderID': api_id, 'MsgText': text, 'RecipientMobileNo':to})<br />    f = urllib.urlopen(url+"?"+params)<br />    # FIXME: Use the logger if there is an error<br />    return True<br />[/code]<br /><br />该段代码中写死了短信发送的URL代码,要在国内使用,必须修改成国内的短信发送URL。我测试了青岛维泰(http://www.waytide.com/html/index.htm)的Web短信平台。上他们的网页,和他们的客服联系,他们就会帮忙开通帐号,并赠送10条测试短信。使用青岛维泰的接口,上述代码要做如下修改:<br />[code]<br />def sms_send(user, password, api_id, text, to):<br />    import urllib<br />    url = "http://www.msc8.cn/cgi/sendsmsbatch.asp"<br />    #url = "http://196.7.150.220/http/sendmsg"<br />    params = urllib.urlencode({'User': user, 'Pass': password, 'Mobile': to, 'Text': text})<br />    f = urllib.urlopen(url+"?"+params)<br />    import re<br />    p=re.compile('^200 ')<br />    if p.match(res):  #send OK!<br />        netsvc.Logger().notifyChannel('SMS_send', netsvc.netsvc.LOG_DEBUG, f.read())<br />    else:<br />        netsvc.Logger().notifyChannel('SMS_send', netsvc.netsvc.LOG_ERROR, f.read())<br />    # FIXME: Use the logger if there is an error<br />    return True<br />[/code]<br /><br />青岛维泰的接口中,可以用逗号隔开,输入多个手机号码。上述代码中,增加了一段检查短信发送是否成功的代码,发送成功应该返回“200 ”开头的一段文字,如果发送失败,将在OpenERP的Log中记录错误信息。<br /><br />另外,为了处理汉字(gb2312),server\addons\base\res\partner\wizard\wizard_sms.py下的方法_sms_send 也要修改一下。<br />原文:tools.sms_send(data['form']['user'], data['form']['password'], data['form']['app_id'], unicode(data['form']['text'], 'utf-8').encode('latin1'), to)<br />改成:tools.sms_send(data['form']['user'], data['form']['password'], data['form']['app_id'], unicode(data['form']['text'], 'utf-8').encode('gb2312'), to)



  • 今天测试了一下OpenERP的短信(SMS)接口。<br />在OpenERP的Partner界面上,WebClient的右边的工具条有个“send sms”的按钮。OpenERP中发短信用的是短信的Web接口,国内有很多提供Web接口的短信群发公司。OpenERP短信发送相关的代码在bin\tools\misc.py中:<br />[code]<br />def sms_send(user, password, api_id, text, to):<br />    import urllib<br />    url = "http://api.urlsms.com/SendSMS.aspx"<br />    #url = "http://196.7.150.220/http/sendmsg"<br />    params = urllib.urlencode({'UserID': user, 'Password': password, 'SenderID': api_id, 'MsgText': text, 'RecipientMobileNo':to})<br />    f = urllib.urlopen(url+"?"+params)<br />    # FIXME: Use the logger if there is an error<br />    return True<br />[/code]<br /><br />该段代码中写死了短信发送的URL代码,要在国内使用,必须修改成国内的短信发送URL。我测试了青岛维泰(http://www.waytide.com/html/index.htm)的Web短信平台。上他们的网页,和他们的客服联系,他们就会帮忙开通帐号,并赠送10条测试短信。使用青岛维泰的接口,上述代码要做如下修改:<br />[code]<br />def sms_send(user, password, api_id, text, to):<br />    import urllib<br />    url = "http://www.msc8.cn/cgi/sendsmsbatch.asp"<br />    #url = "http://196.7.150.220/http/sendmsg"<br />    params = urllib.urlencode({'User': user, 'Pass': password, 'Mobile': to, 'Text': text})<br />    f = urllib.urlopen(url+"?"+params)<br />    import re<br />    p=re.compile('^200 ')<br />    if p.match(res):  #send OK!<br />        netsvc.Logger().notifyChannel('SMS_send', netsvc.netsvc.LOG_DEBUG, f.read())<br />    else:<br />        netsvc.Logger().notifyChannel('SMS_send', netsvc.netsvc.LOG_ERROR, f.read())<br />    # FIXME: Use the logger if there is an error<br />    return True<br />[/code]<br /><br />青岛维泰的接口中,可以用逗号隔开,输入多个手机号码。上述代码中,增加了一段检查短信发送是否成功的代码,发送成功应该返回“200 ”开头的一段文字,如果发送失败,将在OpenERP的Log中记录错误信息。<br /><br />另外,为了处理汉字(gb2312),server\addons\base\res\partner\wizard\wizard_sms.py下的方法_sms_send 也要修改一下。<br />原文:tools.sms_send(data['form']['user'], data['form']['password'], data['form']['app_id'], unicode(data['form']['text'], 'utf-8').encode('latin1'), to)<br />改成:tools.sms_send(data['form']['user'], data['form']['password'], data['form']['app_id'], unicode(data['form']['text'], 'utf-8').encode('gb2312'), to)



  • 打击 软广告....



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



  • 学习了!<br />论坛没有收藏功能?



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



  • if p.match(res):  #send OK!<br />res是什么啊?



  • [quote author=hifly link=topic=2139.msg9106#msg9106 date=1324446615]<br />if p.match(res):  #send OK!<br />res是什么啊?<br />[/quote]<br /><br />是 NameError: name 'res' is not defined



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



  • 谢谢shelly的回复  :)



  • 确信无疑  软广告,呵呵


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待