经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Python3 » 查看文章
python3.7实现云之讯、聚合短信平台的短信发送功能
来源:jb51  时间:2019/9/27 9:34:59  对本文有异议

1、云之讯平台数据返回Json格式:

  1. {'reason': '操作成功', 'result': {'sid': '17209241456456455454', 'fee': 1,
  2. 'count': 1}, 'error_code': 0}

2、聚合平台数据返回Json格式:

  1. {"code":"000000","count":"1","create_date":"2019-09-24
  2. 16:16:30","mobile":"187024545447","msg":"OK","smsid":"0f1245454545454
  3. 144545444","uid":""}
  4. import time
  5. from time import sleep
  6. import sys
  7. from datetime import datetime
  8. import urllib.request
  9. import json
  10. from urllib import parse
  11. import uuid
  12. import http.client
  13. #云之讯-短信请求url
  14. sms_yzx_url = "https://open.ucpaas.com/ol/sms/sendsms"
  15. #云之讯-账号相关信息-应用ID
  16. sms_yzx_appid = "93649dcfexxxxxxxxxxxxxxxxxx"
  17. #云之讯-账号相关信息-用户sid
  18. sms_yzx_account_Sid = "eb6fxxxxxxxxxxxxxxxx"
  19. #云之讯-账号相关信息-密钥
  20. sms_yzx_auth_token = "027xxxxxxxxxxxxxxxx"
  21. #云之讯-账号相关信息-短信模板
  22. sms_yzx_templateid = "475631"
  23. #聚合数据-短信平台-请求地址
  24. sms_juhe_url = "http://v.juhe.cn/sms/send"
  25. #聚合数据-短信平台-短信模板
  26. sms_juhe_templateid = "17488"
  27. #聚合数据-短信平台-密钥
  28. sms_juhe_auth_token = "40xxxxxxxxxxxxxxxx"
  29. #短信服务平台(0:云之讯短信 1: 聚合短信)
  30. sms_service_choice = 0
  31. date = datetime.now()
  32. print(date.strftime("%Y-%m-%d %H:%M:%S"))
  33. def juhe_sendsms(appkey, mobile, tpl_id, tpl_value):
  34. sendurl = sms_juhe_url # 短信发送的URL,无需修改
  35. params = 'key=%s&mobile=%s&tpl_id=%s&tpl_value=%s'%(appkey, mobile, tpl_id, parse.quote(tpl_value)) # 组合参数
  36. wp = urllib.request.urlopen(sendurl + "?" + params)
  37. content = wp.read() # 获取接口返回内容
  38. result = json.loads(content)
  39. # print(result)
  40. if result:
  41. error_code = result['error_code']
  42. if error_code == 0:
  43. # 发送成功
  44. smsid = result['result']['sid']
  45. print("sendsms success,smsid: %s" % (smsid) )
  46. else:
  47. # 发送失败
  48. print( "sendsms error :(%s), %s" % (error_code, result['reason']) )
  49. else:
  50. # 请求失败
  51. print( "request sendsms error" )
  52. def yzx_sendsms(to, params, temp_id):
  53. # @param to 手机号码
  54. # @param params 内容数据 格式为数组 例如:{'12','34'},如不需替换请填 ''
  55. # @param temp_id 模板Id
  56. data = {
  57. "sid": sms_yzx_account_Sid,
  58. "token": sms_yzx_auth_token,
  59. "appid": sms_yzx_appid,
  60. "templateid": temp_id,
  61. "param": params,
  62. "mobile": to,
  63. }
  64. # 将字典转换为JSON字符串
  65. json_data = json.dumps(data)
  66. #print(json_data)
  67. #发送请求头
  68. headers = {
  69. 'Accept': 'application/json',
  70. 'Content-Type': 'application/json;charset=utf-8',
  71. }
  72. connect = http.client.HTTPConnection('open.ucpaas.com')
  73. # 发送请求
  74. connect.request(method='POST', url=sms_yzx_url, body=json_data, headers=headers)
  75. # 获取响应
  76. resp = connect.getresponse()
  77. # print(resp)
  78. # 响应内容
  79. result = resp.read().decode('utf-8')
  80. # print(result)
  81. result = json.loads(result)
  82. # 发送成功
  83. # print(result)
  84. # 如果发送短信成功,返回的字典数据中code字段的值为"000000"
  85. if result["code"] == "000000":
  86. # 返回0 表示发送短信成功
  87. smsid = result['smsid']
  88. print("sendsms success,smsid: %s, %s"% (smsid, result['msg']))
  89. return 0
  90. else:
  91. # 返回-1 表示发送失败
  92. print("sendsms error :(%s), %s"% (result['code'], result['msg']))
  93. return -1
  94. def main():
  95. mobile = '182xxxx' # 短信接受者的手机号码
  96. tpl_value = '#code#=4567'
  97. juhe_sendsms(sms_juhe_auth_token, mobile, sms_juhe_templateid, tpl_value) # 请求发送短信
  98. yzx_sendsms(mobile, ['1234'], sms_yzx_templateid)
  99. if __name__ == '__main__':
  100. main()

总结

以上所述是小编给大家介绍的python3.7实现云之讯、聚合短信平台的短信发送功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对w3xue网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号