sms.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. # -*- coding:utf-8 -*-
  2. from .CCPRestSDK import REST
  3. # 说明:主账号,登陆云通讯网站后,可在"控制台-应用"中看到开发者主账号ACCOUNT SID
  4. _accountSid = '8aaf0708568d4143015697b0f4960888'
  5. # 说明:主账号Token,登陆云通讯网站后,可在控制台-应用中看到开发者主账号AUTH TOKEN
  6. _accountToken = '57c6c3ef3cef47e680519a734f6812f8'
  7. # 请使用管理控制台首页的APPID或自己创建应用的APPID
  8. _appId = '8aaf0708568d4143015697b0f56e088f'
  9. # 说明:请求地址,生产环境配置成app.cloopen.com
  10. _serverIP = 'sandboxapp.cloopen.com'
  11. # 说明:请求端口 ,生产环境为8883
  12. _serverPort = "8883"
  13. # 说明:REST API版本号保持不变
  14. _softVersion = '2013-12-26'
  15. # 云通讯官方提供的发送短信代码实例
  16. # # 发送模板短信
  17. # # @param to 手机号码
  18. # # @param datas 内容数据 格式为数组 例如:{'12','34'},如不需替换请填 ''
  19. # # @param $tempId 模板Id
  20. #
  21. # def sendTemplateSMS(to, datas, tempId):
  22. # # 初始化REST SDK
  23. # rest = REST(serverIP, serverPort, softVersion)
  24. # rest.setAccount(accountSid, accountToken)
  25. # rest.setAppId(appId)
  26. #
  27. # result = rest.sendTemplateSMS(to, datas, tempId)
  28. # for k, v in result.iteritems():
  29. #
  30. # if k == 'templateSMS':
  31. # for k, s in v.iteritems():
  32. # print '%s:%s' % (k, s)
  33. # else:
  34. # print '%s:%s' % (k, v)
  35. class CCP(object):
  36. """发送短信的辅助类"""
  37. def __new__(cls, *args, **kwargs):
  38. # 判断是否存在类属性_instance,_instance是类CCP的唯一对象,即单例
  39. if not hasattr(CCP, "_instance"):
  40. cls._instance = super(CCP, cls).__new__(cls, *args, **kwargs)
  41. cls._instance.rest = REST(_serverIP, _serverPort, _softVersion)
  42. cls._instance.rest.setAccount(_accountSid, _accountToken)
  43. cls._instance.rest.setAppId(_appId)
  44. return cls._instance
  45. def send_template_sms(self, to, datas, temp_id):
  46. """发送模板短信"""
  47. # @param to 手机号码
  48. # @param datas 内容数据 格式为数组 例如:{'12','34'},如不需替换请填 ''
  49. # @param temp_id 模板Id
  50. result = self.rest.sendTemplateSMS(to, datas, temp_id)
  51. # 如果云通讯发送短信成功,返回的字典数据result中statuCode字段的值为"000000"
  52. if result.get("statusCode") == "000000":
  53. # 返回0 表示发送短信成功
  54. return 0
  55. else:
  56. # 返回-1 表示发送失败
  57. return -1
  58. if __name__ == '__main__':
  59. ccp = CCP()
  60. # 注意: 测试的短信模板编号为1
  61. ccp.send_template_sms('18516952650', ['1234', 5], 1)