美文网首页
清华大学短信平台接口使用

清华大学短信平台接口使用

作者: 九之天 | 来源:发表于2019-06-19 17:40 被阅读0次

    title: 清华大学短信平台接口使用
    date: 2018-03-19 13:30:08
    tags: [python,web2py,sms,requests]


    需求

    项目需要将课酬的发放信息短信告知教师,所以直接使用了清华校内的短信平台,接口描述文档及其简约。因为之前做了微信公众号的接口,算是有了经验,开发很快。

    短信平台接口说明
    
    接口采用HTTP方式
    域名:http://dxpt.cic.tsinghua.edu.cn/
    需要从短信平台管理员处获得短信平台的appid和appkey
    
    第一步:
    使用Get方式,从http://dxpt.cic.tsinghua.edu.cn/gettimestamp.jsp获取时间戳
    第二步
    使用Post方式,调用http://dxpt.cic.tsinghua.edu.cn/sendsms.jsp?destSmsNumbers={发送号码,分割}&appId={短信平台的appid}&timeMillisString={t}&token={token}
    POST参数:smsContent=urlencode后的短信内容,中文采用gbk编码
    t为第一步获取的时间戳
    token为sha1(“t:appkey:appid”) (可以使用baseclass中的org.thcic.crypt.Digest.SHA函数生成)
    

    实战

    然而,一切都逃不出这个然而,短信一直没有发送成功。平台那边交流很复杂,接电话的不懂技术,只能邮件沟通。
    万幸,解决了。该项目与我沟通的老师把账号密码弄错了。
    下面是测试代码。

    # -*- coding: utf-8 -*-
    import urllib
    import urllib2
    import hashlib
    url_time = 'http://dxpt.cic.tsinghua.edu.cn/gettimestamp.jsp'
    url_sms ='http://dxpt.cic.tsinghua.edu.cn/sendsms.jsp'
    timestamp = urllib.urlopen(url_time)
    timestamp =timestamp.read()
    appid='XXXXXX'
    appkey='xxxxxxxxx'
    token_s=timestamp+":"+appkey+":"+appid
    print token_s
    token =hashlib.sha1(token_s).hexdigest()
    data={    
        "destSmsNumbers":"185XXXX4581",
        "appId":appid,
        "timeMillisString":timestamp,
        "token":token
        }
    data["smsContent"]=u"短信平台测试!".encode("gbk")
    data_urlencode = urllib.urlencode(data)
    print data_urlencode
    url_sms = url_sms+"?destSmsNumbers=185xxxx4581&appId=XXXXXX&timeMillisString="+timestamp+"&token="+token
    req = urllib2.Request(url = url_sms,data =data_urlencode)
    print req
    res_data = urllib2.urlopen(req)
    res_data = urllib.urlopen(url = url_sms,data =data_urlencode)
    res = res_data.read()
    print res
    

    相关文章

      网友评论

          本文标题:清华大学短信平台接口使用

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