隐私保护通话 PrivateNumber-AXE模式:AXE模式解绑接口

时间:2025-02-12 14:52:30

AXE模式解绑接口

 1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
# -*- coding: utf-8 -*-import timeimport uuidimport hashlibimport base64import sslimport urllib.requestimport hmacfrom hashlib import sha256# 必填,请参考"开发准备"获取如下数据,替换为实际值realUrl = 'https://rtcpns.cn-north-1.myhuaweicloud.com/rest/caas/extendnumber/v1.0' #APP接入地址+接口访问URIAPP_KEY = "a1********" #APP_KeyAPP_SECRET = "cfc8********" #APP_Secret'''选填,各参数要求请参考"AXE模式解绑接口"subscriptionId和(virtualNum+extendNum)二选一即可,当都传入时,优先选用subscriptionId'''subscriptionId = '****' #指定"AXE模式绑定接口"返回的绑定ID进行解绑virtualNum = '+86170****0001' #AXE中的X号码extendNum = '1234' #AXE中的E号码def buildAKSKHeader(appKey, appSecret):    now = time.strftime('%Y-%m-%dT%H:%M:%SZ') #Created    nonce = str(uuid.uuid4()).replace('-','') #Nonce    digist = hmac.new(appSecret.encode(), (nonce + now).encode(), digestmod=sha256).digest()    digestBase64 = base64.b64encode(digist).decode() #PasswordDigest    return 'UsernameToken Username="{}",PasswordDigest="{}",Nonce="{}",Created="{}"'.format(appKey, digestBase64, nonce, now);def main():    # 请求URL参数    formData = urllib.parse.urlencode({        'subscriptionId':subscriptionId,        'virtualNum':virtualNum,        'extendNum':extendNum    })    #完整请求地址    fullUrl = realUrl + '?' + formData    req = urllib.request.Request(url=fullUrl, method='DELETE') #请求方法为DELETE    # 请求Headers参数    req.add_header('Authorization', 'AKSK realm="SDP",profile="UsernameToken",type="Appkey"')    req.add_header('X-AKSK', buildAKSKHeader(APP_KEY, APP_SECRET))    req.add_header('Content-Type', 'application/json;charset=UTF-8')    # 为防止因HTTPS证书认证失败造成API调用失败,需要先忽略证书信任问题    ssl._create_default_https_context = ssl._create_unverified_context    try:        print(formData) #打印请求数据        r = urllib.request.urlopen(req) #发送请求        print(r.read().decode('utf-8')) #打印响应结果    except urllib.error.HTTPError as e:        print(e.code)        print(e.read().decode('utf-8')) #打印错误信息    except urllib.error.URLError as e:        print(e.reason)if __name__ == '__main__':    main() 
support.huaweicloud.com/devg-PrivateNumber/privatenumber_01_0017.html