<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        天翼開放平臺免費(fèi)短信驗(yàn)證碼接口使用實(shí)例

        來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 14:38:47
        文檔

        天翼開放平臺免費(fèi)短信驗(yàn)證碼接口使用實(shí)例

        天翼開放平臺免費(fèi)短信驗(yàn)證碼接口使用實(shí)例:對于目前眾多的驗(yàn)證碼解決方案來說,這個API有著中國電信這個重量級的運(yùn)營商為靠山,應(yīng)該是比較靠譜的了,而且還是免費(fèi)的。使用方式:#定義app_id和app_secretr = RandCode('app_id', 'app_secret')#支持平臺的兩種接口方式
        推薦度:
        導(dǎo)讀天翼開放平臺免費(fèi)短信驗(yàn)證碼接口使用實(shí)例:對于目前眾多的驗(yàn)證碼解決方案來說,這個API有著中國電信這個重量級的運(yùn)營商為靠山,應(yīng)該是比較靠譜的了,而且還是免費(fèi)的。使用方式:#定義app_id和app_secretr = RandCode('app_id', 'app_secret')#支持平臺的兩種接口方式

        對于目前眾多的驗(yàn)證碼解決方案來說,這個API有著中國電信這個重量級的運(yùn)營商為靠山,應(yīng)該是比較靠譜的了,而且還是免費(fèi)的。

        使用方式:
        #定義app_id和app_secret
        r = RandCode('app_id', 'app_secret')
        #支持平臺的兩種接口方式
        #方式1:自定義接收驗(yàn)證碼的回調(diào)URL
        r.send('phone number', 'http://yourdomain/rand_code.php', '3')
        #方式2:自定義驗(yàn)證碼內(nèi)容
        r.send_sms('phone number', 189189)

        #!/usr/bin/env python
        # coding: utf-8
        from time import strftime, localtime
        import urllib, urllib2, 
        json
        import hmac, hashlib
        class RandCode(object):
         APP_ID = ''
         APP_SECRET = ''
         ACCESS_TOKEN = ''
         RANDCODE_TOKEN = 
        ''
         TOKEN_API = 
        'https://oauth.api.189.cn/emp/oauth2/v2/access_token'
         RANDCODE_TOKEN_API = 
        'http://api.189.cn/v2/dm/randcode/token'
         RANDCODE_SEND_API = 
        'http://api.189.cn/v2/dm/randcode/send'
         RANDCODE_SENDSMS_API = 
        'http://api.189.cn/v2/dm/randcode/sendSms'
        
         def __init__(self, app_id='', app_secret='', 
        access_token=''):
         self.APP_ID = app_id or 
        RandCode.APP_ID
         self.APP_SECRET = app_secret or 
        RandCode.APP_SECRET
         self.ACCESS_TOKEN = access_token or 
        self.__fetch_access_token()
         self.RANDCODE_TOKEN = 
        self.__fetch_randcode_token()
         def send(self, phone, url, exp_time):
         result = False
         if 
        self.ACCESS_TOKEN and self.RANDCODE_TOKEN:
         data = 
        {
         'app_id':self.APP_ID,
         'access_token':self.ACCESS_TOKEN,
         'token':self.RANDCODE_TOKEN,
         'phone':phone,
         'url':url,
         'exp_time':exp_time,
         'timestamp':self.__date_time(),
         }
         data 
        = self.__build_request_string(data)
         data = self.__data_sign(data)
         if 
        data:
         res = self.__request_data('post', data, 
        self.RANDCODE_SEND_API)
         json_data = json.loads(res)
         if 
        json_data['res_code'] == 0:
         result = True
         return result
        
         def 
        send_sms(self, phone, randcode, exp_time='2'):
         result = False
         if 
        self.ACCESS_TOKEN and self.RANDCODE_TOKEN:
         data = 
        {
         'app_id':self.APP_ID,
         'access_token':self.ACCESS_TOKEN,
         'token':self.RANDCODE_TOKEN,
         'phone':phone,
         'randcode':str(randcode),
         'exp_time':exp_time,
         'timestamp':self.__date_time(),
         }
         data 
        = self.__build_request_string(data)
         data = self.__data_sign(data)
         if 
        data:
         res = self.__request_data('post', data, 
        self.RANDCODE_SENDSMS_API)
         json_data = json.loads(res)
         if 
        json_data['res_code'] == 0:
         result = True
         return 
        result
         pass
        
         def __request_data(self, method, data, url):
         if 
        isinstance(data, dict):
         data = urllib.urlencode(data)
         if method == 
        'post':
         req = urllib2.Request(url, data)
         else:
         url = '%s?%s' % 
        (url, data)
         req = urllib2.Request(url)
         return 
        urllib2.urlopen(req).read()
        
         def 
        __fetch_access_token(self):
         access_token = self.ACCESS_TOKEN
         if 
        access_token == '':
         data = 
        {
         'grant_type':'client_credentials',
         'app_id':self.APP_ID,
         'app_secret':self.APP_SECRET,
         }
         res 
        = self.__request_data('post', data, self.TOKEN_API)
         json_data = 
        json.loads(res)
         if json_data['res_code'] == '0':
         access_token = 
        json_data['access_token']
         else:
         raise 
        ValueError(json_data['res_message'])
         return access_token
         def __fetch_randcode_token(self):
         result = ''
         if self.ACCESS_TOKEN 
        != '':
         data = 
        {
         'app_id':self.APP_ID,
         'access_token':self.ACCESS_TOKEN,
         'timestamp':self.__date_time(),
         }
         data 
        = self.__build_request_string(data)
         data = self.__data_sign(data)
         if 
        data:
         res = self.__request_data('get', data, 
        self.RANDCODE_TOKEN_API)
         json_data = json.loads(res)
         if 
        json_data['res_code'] == 0:
         result = 
        json_data['token']
         else:
         raise 
        ValueError(json_data['res_message'])
         return result
         def __data_sign(self, data):
         result = ''
         if data:
         if 
        isinstance(data, dict):
         data = 
        self.__build_request_string(data)
         sign = hmac.new(self.APP_SECRET, 
        urllib.urlencode(data), hashlib.sha1).digest()
         elif isinstance(data, 
        unicode):
         sign = hmac.new(self.APP_SECRET, data, 
        hashlib.sha1).digest()
         if data:
         result = "%s&sign=%s" % ( data, 
        urllib.quote(sign.encode('base64').strip()) )
         return result
         def __build_request_string(self, dict):
         keys = 
        dict.keys()
         keys.sort()
         return '&'.join([ key + "=" + dict[key] 
        for key in keys ])
         def __date_time(self):
         return strftime("%Y-%m-%d %H:%M:%S", 
        localtime())
         
        if __name__ == '__main__':
         r = RandCode('app_id', 
        'app_secret')
         r.send('phone number', 'http://yourdomain/rand_code.php', 
        '3')
         r.send_sms('phone number', 189189)

        相關(guān)文章:

        基于PHP實(shí)現(xiàn)短信驗(yàn)證碼接口

        短信驗(yàn)證碼接口(容聯(lián)運(yùn)通訊)

        PHP集成發(fā)送手機(jī)短信驗(yàn)證碼、語音驗(yàn)證碼接口函數(shù)及使用方法

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        天翼開放平臺免費(fèi)短信驗(yàn)證碼接口使用實(shí)例

        天翼開放平臺免費(fèi)短信驗(yàn)證碼接口使用實(shí)例:對于目前眾多的驗(yàn)證碼解決方案來說,這個API有著中國電信這個重量級的運(yùn)營商為靠山,應(yīng)該是比較靠譜的了,而且還是免費(fèi)的。使用方式:#定義app_id和app_secretr = RandCode('app_id', 'app_secret')#支持平臺的兩種接口方式
        推薦度:
        標(biāo)簽: 使用 接口 API
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 国产成人综合亚洲| 亚洲av永久无码精品网址| CAOPORM国产精品视频免费| 波多野结衣中文一区二区免费| 国产一级淫片a视频免费观看| 亚洲综合色婷婷七月丁香| 亚洲一卡2卡三卡4卡有限公司| 亚洲一区二区三区国产精华液| 中文在线日本免费永久18近| 中文字幕亚洲一区二区三区| 亚洲国产av美女网站| 大学生高清一级毛片免费| 国产精品亚洲专区一区| 亚洲电影免费观看| 亚洲熟妇AV一区二区三区宅男| 国产午夜免费高清久久影院| 亚洲成av人影院| 免费一区二区无码视频在线播放| 24小时日本电影免费看| 亚洲资源最新版在线观看| 全免费A级毛片免费看网站| 美女18一级毛片免费看| 亚洲日韩v无码中文字幕| 99视频在线看观免费| 亚洲精品国产suv一区88 | 91嫩草私人成人亚洲影院| 100部毛片免费全部播放完整| 亚洲欧洲∨国产一区二区三区| 亚洲sm另类一区二区三区| 国产成人精品久久亚洲| 中文字幕免费高清视频| 午夜亚洲WWW湿好爽| 亚洲无人区一区二区三区| 美丽的姑娘免费观看在线播放 | 国产视频精品免费| 爽爽爽爽爽爽爽成人免费观看| 国产jizzjizz视频全部免费| 日本高清不卡aⅴ免费网站| 亚洲片国产一区一级在线观看| 风间由美在线亚洲一区| 香蕉视频在线观看亚洲|