中国专业短信平台运营服务商网 sms.cn 博好云信官网

Python短信接口开发示例下载示例

    from sysApi import SmsApi

    # /*--------------------------------
    # 功能:		使用smsApi类发送短信
    # 说明:		https://api.sms.cn/sms/?ac=send&uid=用户账号&pwd=MD5位32密码&mobile=号码&content=内容
    # 官网:		www.sms.cn
    # 状态:		{"stat":"100","message":"发送成功"}
    #
    # 	100 发送成功
    # 	101 验证失败
    # 	102 短信不足
    # 	103 操作失败
    # 	104 非法字符
    # 	105 内容过多
    # 	106 号码过多
    # 	107 频率过快
    # 	108 号码内容空
    # 	109 账号冻结
    # 	112	号码错误
    # 	116 禁止接口发送
    # 	117 绑定IP不正确
    # 	161 未添加短信模板
    # 	162 模板格式不正确
    # 	163 模板ID不正确
    # 	164 全文模板不匹配
    # --------------------------------*/
    
    # 接口账号
    uid = 'xxxxxxxxx'
    
    # 接口密码
    pwd = 'xxxxxxxxxxxxxxxxxxxxxxx'
    
    # 实例化接口
    api = SmsApi(uid, pwd)
    
    # /*
    # * 变量模板发送示例
    # * 模板内容:您的验证码是:{$code},对用户{$product}操作绑定手机号,有效期为5分钟。如非本人操作,可不用理会。【云信】
    # * 变量模板ID:100003
    # */
    
    # 号码
    mobile = '130xxxx2361'
    
    # 变量模板ID
    template = '100003'
    
    # 短信内容参数
    contentParam = {"code": api.rand_number(), "product": "zmc"}
    
    # 发送变量模板短信
    result = api.send(mobile, contentParam, template)
    
    if result["stat"] == "100":
        print('发送成功')
    else:
        print('发送失败: '+result['stat']+'('+result['message']+')')
    
    
    #
    # * 全文模板发送示例
    # * 模板内容:登录验证码:{**}。如非本人操作,可不用理会!【云信】
    #
    # 发送的手机 多个号码用,英文逗号隔开
    mobile = '130xxxx2361'
    
    # 短信内容   登录验证码:【博好云】
    content = '登录验证码:'+api.rand_number()+'。如非本人操作,可不用理会!【博好云】'
    
    # 发送全文模板短信
    result = api.send_all(mobile, content)
    
    if result["stat"] == "100":
        print('发送成功')
    else:
        print('发送失败: '+result['stat']+'('+result['message']+')')


"""
# SmsApi file

"""
from random import shuffle
import json
import constant
import requests as req
from urllib.parse import urlencode

"""
# SMS短信接口类
# @author		sms.cn
# @link		http://www.sms.cn
"""


class SmsApi:
    """
    #SMSAPI请求地址
    """
    constant.Constant.API_URL = 'http://api.sms.cn/sms/'

    """
    #接口账号
    #@var string
    """
    _uid = ''

    """
    # 接口密码
    # @var string
    # @link http://sms.sms.cn/ 请到此处(短信设置->接口密码)获取
    """
    _pwd = ''

    """
    #sms api 请求地址
    #@var string
    """
    _apiURL = ''

    """
    #短信发送请求参数
    #@var string
    """
    _smsParams = ''

    """
    #接口返回信息
    #@var string
    """
    _resultMsg = ''

    """
    #接口返回信息格式
    #@var string
    """
    _format = ''

    """
    #构造方法
    #@param string _uid 接口账号
    #@param string _pwd 接口密码
    """

    def __init__(self, _uid, _pwd):
        self.API_URL = constant.Constant.API_URL
        self._pwd = _pwd
        self._uid = _uid
        self._format = 'json'

    """
    #SMS公共参数
    * @ return dict
    """
    def public_params(self):
        return {
            'uid': self._uid,
            'pwd': self._pwd,
            'format': self._format
        }

    """
    #获取随机位数数字
    # @ param
    integer $len
    长度
    #@ return string
    """

    def rand_number(self, length=6):
        chars = ("0123456789" * 10)
        str_list = list(chars)
        # 调用random模块的shuffle函数打乱列表
        shuffle(str_list)
        # 将列表转字符串
        chars = ''.join(str_list)
        code = chars[0:length]
        return code

    def request(self):
        params = {**self._smsParams, **self.public_params()}
        send_params = urlencode(params)
        send_return = req.request('get', constant.Constant.API_URL+'?'+send_params)
        return send_return.json()

    """
    # 发送变量模板短信
    # @sparam string mobile 手机号码
    # @param string content 短信内容参数
    # @param string template 短信模板ID
    # @return dict
    """

    def send(self, mobile='', contentParam={}, template=''):
        self._smsParams = {
            'ac': 'send',
            'mobile': mobile,
            'content': json.dumps(contentParam),
            'template': template
        }
        self._resultMsg = self.request()
        return self._resultMsg

    """
    # 发送全文模板短信
    # @ param
    # string mobile
    # 手机号码
    # @ param
    # string content
    # 短信内容
    # @ return dict
    """
    def send_all(self, mobile='', content=''):
        # 短信发送参数
        self._smsParams = {
            'ac': 'send',
            'mobile': mobile,
            'content': content
        }
        self._resultMsg = self.request()
        return self._resultMsg

 

Python短信接口开发示例下载示例