OpenERP的短信(SMS)接口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
今天测试了一下OpenERP的短信(SMS)接口。
在OpenERP的Partner界面上,WebClient的右边的工具条有个“send sms”的按钮。OpenERP中发短信用的是短信的Web接口,国内有很多提供Web接口的短信群发公司。OpenERP短信发送相关的代码在 bin\tools\misc.py中:
程序代码: [选择]
 
def sms_send(user, password, api_id, text, to):
    import urllib
    params = urllib.urlencode({‘UserID‘: user, ‘Password‘: password, ‘SenderID‘: api_id, ‘MsgText‘: text, ‘RecipientMobileNo‘:to})
    f = urllib.urlopen(url+"?"+params)
    # FIXME: Use the logger if there is an error
    return True
 
 
转自:http://shine-it.net/index.php?topic=2139.0
 
 
该段代码中写死了短信发送的URL代码,要在国内使用,必须修改成国内的短信发送URL。我测试了青岛维 泰(http://www.waytide.com/html/index.htm)的Web短信平台。上他们的网页,和他们的客服联系,他们就会帮忙开 通帐号,并赠送10条测试短信。使用青岛维泰的接口,上述代码要做如下修改:
程序代码: [选择]
 
def sms_send(user, password, api_id, text, to):
    import urllib
    params = urllib.urlencode({‘User‘: user, ‘Pass‘: password, ‘Mobile‘: to, ‘Text‘: text})
    f = urllib.urlopen(url+"?"+params)
    import re
    p=re.compile(‘^200 ‘)
    if p.match(res):  #send OK!
        netsvc.Logger().notifyChannel(‘SMS_send‘, netsvc.netsvc.LOG_DEBUG, f.read())
    else:
        netsvc.Logger().notifyChannel(‘SMS_send‘, netsvc.netsvc.LOG_ERROR, f.read())
    # FIXME: Use the logger if there is an error
    return True
 
 
青岛维泰的接口中,可以用逗号隔开,输入多个手机号码。上述代码中,增加了一段检查短信发送是否成功的代码,发送成功应该返回“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

OpenERP的短信(SMS)接口

上一篇:Photoshop制作质感水珠纹理水果实例教程


下一篇:Ansible PlayBook语法