AliyunSmsObject.py 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. # -*- encoding: utf-8 -*-
  2. """
  3. @File : AliyunSmsObject.py
  4. @Time : 2022/7/19 8:50
  5. @Author : stephen
  6. @Email : zhangdongming@asj6.wecom.work
  7. @Software: PyCharm
  8. """
  9. import json
  10. # -*- coding: utf-8 -*-
  11. import uuid
  12. from aliyunsdkcore.client import AcsClient
  13. from aliyunsdkcore.profile import region_provider
  14. from aliyunsdkdysmsapi.request.v20170525 import SendSmsRequest
  15. """
  16. 短信业务调用接口示例,版本号:v20170525
  17. Created on 2017-06-12
  18. """
  19. class AliyunSmsObject(object):
  20. def __init__(self):
  21. # 注意:不要更改
  22. REGION = "cn-hangzhou"
  23. PRODUCT_NAME = "Dysmsapi"
  24. DOMAIN = "dysmsapi.aliyuncs.com"
  25. ali_sms = {
  26. 'ACCESS_KEY_ID': 'LTAIDFtlwLdttWiX',
  27. 'ACCESS_KEY_SECRET': 'Siu6SolsTN5A3evXUkFLyyr0QZ3iiT',
  28. }
  29. self.acs_client = AcsClient(ali_sms['ACCESS_KEY_ID'], ali_sms['ACCESS_KEY_SECRET'], REGION)
  30. region_provider.add_endpoint(PRODUCT_NAME, REGION, DOMAIN)
  31. def do_send_sms(self, business_id, phone_numbers, sign_name, template_code, template_param=None):
  32. smsRequest = SendSmsRequest.SendSmsRequest()
  33. # 申请的短信模板编码,必填
  34. smsRequest.set_TemplateCode(template_code)
  35. # 短信模板变量参数
  36. if template_param is not None:
  37. smsRequest.set_TemplateParam(template_param)
  38. # 设置业务请求流水号,必填。
  39. smsRequest.set_OutId(business_id)
  40. # 短信签名
  41. smsRequest.set_SignName(sign_name)
  42. # 数据提交方式
  43. # smsRequest.set_method(MT.POST)
  44. # 数据提交格式
  45. # smsRequest.set_accept_format(FT.JSON)
  46. # 短信发送的号码列表,必填。
  47. smsRequest.set_PhoneNumbers(phone_numbers)
  48. # 调用短信发送接口,返回json
  49. smsResponse = self.acs_client.do_action_with_exception(smsRequest)
  50. # TODO 业务处理
  51. return smsResponse
  52. # 发送验证码
  53. def send_code_sms(self, phone, code, sign_name, temp_msg):
  54. __business_id = uuid.uuid1()
  55. params = "{\"code\":\"" + str(code) + "\"}"
  56. res = self.do_send_sms(__business_id, phone, sign_name, temp_msg, params)
  57. res_json = json.loads(res.decode('utf-8'))
  58. return res_json
  59. # 发送验证码
  60. def send_code_sms_cloud(self, phone, params, sign_name, temp_msg):
  61. __business_id = uuid.uuid1()
  62. params = params
  63. res = self.do_send_sms(__business_id, phone, sign_name, temp_msg, params)
  64. res_json = json.loads(res.decode('utf-8'))
  65. return res_json
  66. if __name__ == '__main__':
  67. pass
  68. # sign = '周视'
  69. # ali_sms = AliyunSmsObject()
  70. # params = u'{"devname":"DKOGER11A","usage":"流量365M","usable":"流量12M"}'
  71. # res = ali_sms.send_code_sms_cloud('15768812162', params, sign, 'SMS_246090429')
  72. # print(ali_sms)