美文网首页Python
【python】-发送短信

【python】-发送短信

作者: jiandanyaobai | 来源:发表于2018-08-12 18:23 被阅读17次

    一、业务场景
    现阶段大部分的公司业务,基本上都会集成短信功能。下面就介绍一下阿里云平台的短信调用服务。
    阿里云平台注册短信服务:https://dysms.console.aliyun.com
    1.去注册一个账户,申请开通短信服务。

    短信服务

    2.申请短信的业务,开通API接口,获取Accesskey


    申请AK

    3.调用接口说明,官网上有对应语言的Demo。这里要注意的。短信模板和签名文档,官网都有具体的说明。

    # -*- coding: utf-8 -*-
    import sys
    from aliyunsdkdysmsapi.request.v20170525 import SendSmsRequest
    from aliyunsdkdysmsapi.request.v20170525 import QuerySendDetailsRequest
    from aliyunsdkcore.client import AcsClient
    import uuid
    from aliyunsdkcore.profile import region_provider
    from aliyunsdkcore.http import method_type as MT
    from aliyunsdkcore.http import format_type as FT
    import const
    
    """
    短信业务调用接口示例,版本号:v20170525
    Created on 2017-06-12
    """
    try:
        reload(sys)
        sys.setdefaultencoding('utf8')
    except NameError:
        pass
    except Exception as err:
        raise err
    
    # 注意:不要更改
    REGION = "cn-hangzhou"
    PRODUCT_NAME = "Dysmsapi"
    DOMAIN = "dysmsapi.aliyuncs.com"
    #acs_client = AcsClient(const.LTAIFU7DAvWyZ809, const.911FRO5K8kNmRKu6maGQnagY5s39RP, REGION)
    acs_client = AcsClient('LTAIFU7DAvWyZ809', '911FRO5K8kNmRKu6maGQnagY5s39RP', REGION)
    region_provider.add_endpoint(PRODUCT_NAME, REGION, DOMAIN)
    
    def send_sms(business_id, phone_numbers, sign_name, template_code, template_param=None):
        smsRequest = SendSmsRequest.SendSmsRequest()
        # 申请的短信模板编码,必填
        smsRequest.set_TemplateCode(template_code)
    
        # 短信模板变量参数
        if template_param is not None:
            smsRequest.set_TemplateParam(template_param)
    
        # 设置业务请求流水号,必填。
        smsRequest.set_OutId(business_id)
        # 短信签名
        smsRequest.set_SignName(sign_name)  
        # 数据提交方式
        # smsRequest.set_method(MT.POST)    
        # 数据提交格式
        # smsRequest.set_accept_format(FT.JSON) 
        # 短信发送的号码列表,必填。
    #    smsRequest.set_PhoneNumbers(phone_numbers)
        smsRequest.set_PhoneNumbers(phone_numbers)
        # 调用短信发送接口,返回json
        smsResponse = acs_client.do_action_with_exception(smsRequest
        # TODO 业务处理
        return smsResponse
    
    if __name__ == '__main__':
        __business_id = uuid.uuid1()
        params = "{\"remark\":\"12345\"}"  #注意json的传输格式!
        print(send_sms(__business_id, phone_numbers="15800000000",sign_name="XXX",template_code="SMS_100000000",template_param=params))
    

    综上:
    可以结合具体业务,实现对应的功能。其他平台也可以。

    相关文章

      网友评论

        本文标题:【python】-发送短信

        本文链接:https://www.haomeiwen.com/subject/joosbftx.html