云服务器内容精选

  • 接口示例 接口示例仅供参考,请以实际消息为准。 请求示例 POST /notify HTTP/1.1 content-type: application/json;charset=UTF-8authorization: AKSK realm="SDP",profile="UsernameToken",type="Appkey"x-aksk: UsernameToken Username="************",PasswordDigest="*************",Nonce="ac1c911c4792492687f8f6b2264a491e",Created="2018-05-26T00:35:30Z"content-length:xx {"appKey":"****","smsEvent":{"smsIdentifier":"********", "notificationMode":"Notify", "calling":"+86138****0001", "virtualNumber":"+86138****0000", "event":"Text SMS ", "timeStamp":"2020-12-23T09:06:16.450Z", "extInfo":{"extParas":[{"key":"splitNum","value":"0"},{"key":"direction","value":"2"}]}, "sendResult":2 }} 响应示例 请求为Notify模式时 HTTP/1.1 200 OK
  • 请求参数 表2 请求Headers参数说明 参数名称 是否必选 参数类型 说明 Content-Type 是 String 固定填写为application/json;charset=UTF-8。 Authorization 是 String 固定填写为AKSK realm="SDP",profile="UsernameToken",type="Appkey"。 X-AKSK 是 String 取值为UsernameToken Username="APP_Key的值", PasswordDigest="PasswordDigest的值", Nonce="随机数", Created="随机数生成时间"。 PasswordDigest:根据PasswordDigest = Base64 (HMAC-SHA256 (Password,Nonce + Created))生成。其中,Password为APP_Secret的值。Nonce、Created、Password直接进行字符串拼接即可,无需包含+号和空格。 Nonce:客户发送请求时生成的一个随机数,长度为1~128位,可包含数字和大小写字母。例如:66C92B11FF8A425FB8D4CCFE0ED9ED1F。 Created:随机数生成时间。采用标准UTC格式,例如:2018-02-12T15:30:20Z。不同编程语言中将UTC时间戳转换为普通时间时使用的格式不同,部分语言可参考表3。 表3 不同编程语言的时间格式 编程语言 时间格式 Java yyyy-MM-dd'T'HH:mm:ss'Z' PHP Y-m-d\TH:i:s\Z Python %Y-%m-%dT%H:%M:%SZ C# yyyy-MM-ddTHH:mm:ssZ Node.js toISOString().replace(/.[0-9]+\Z/, 'Z') 注:Node.js中,使用toISOString()转换后的时间格式去除毫秒后即为本接口要求的时间格式。 表4 请求Body参数说明 参数名称 是否必选 参数类型 说明 appKey 是 String(1-32) 隐私保护通话 应用的APP_Key。 smsEvent 是 SMSEventInfoType 短信状态事件。 表5 SMSEventInfoType定义 参数名称 是否必选 参数类型 说明 smsIdentifier 是 String(1-64) 短信唯一标识。 若用户发送的是长短信,隐私保护通话平台会将长短信的多个分片合并为一个通知上报。 notificationMode 是 String(1-8) 通知模式: Notify:通知模式。 calling 否 String(1-32) 真实发送方号码。 号码为全局号码格式(包含国家码),比如+86138****7021。 called 否 String(1-32) 真实接收方号码。 仅在隐私保护通话平台转发短信成功后携带。 号码为全局号码格式(包含国家码),比如+86138****7022。 virtualNumber 否 String(1-32) X号码。 号码为全局号码格式(包含国家码),比如+86138****0001。 event 是 String(1-16) 短信状态事件。 TextSMS:文本短信 timeStamp 是 String(1-32) 短信事件发生的系统时间戳,UTC时间。 格式:yyyy-MM-dd'T'HH:mm:ss.SSS'Z' 其中SSS是毫秒,“T”和“Z”为固定字符。 extInfo 是 ExtensionInfoType 拓展信息。 subscriptionId 否 String(1-64) 绑定ID。 smsContent 否 String(1-2000) 用户发送的短信内容。 请参考如何设置才能收到短信内容?开通该功能。 sendResult 是 Integer 发送结果。 0:成功 1:因用户账户冻结,发送失败。 2:因绑定关系不存在,发送失败。 3:因X号码被暂停,发送失败。 4:非商用APP,发送失败。 5:因系统内部错误,发送失败。 8:黑名单管控,发送失败。 9:部分发送成功。 10:全部发送失败。 11:X号码不支持短信能力。 12:短信内容不包含特征关键词。 13:短信内容包含禁止词汇。 areaCode 否 String(0-32) 隐私保护号码(X号码)的城市码。 说明: 使用该参数的场景请联系华为云客服获取。 userData 否 String(1-256) 用户附属信息。 说明: 使用该参数的场景请联系华为云客服获取。 表6 ExtensionInfoType定义 参数名称 是否必选 参数类型 说明 extParas 是 JsonArray 扩展信息(Key-Value)列表。 格式如下: "extParas": [{"key": "splitNum","value": "value1"},{"key": "direction","value": "value2"}] Key、Value取值分别不能超过32个字节。 “key”取值为“splitNum”时表示实际短信发送成功数量,即长短信拆分后的短信数量。value1表示“splitNum”的取值。 “key”取值为“direction”时表示短信发送方向。value2表示“direction”取值,含义如下: 0:B发送短信给A。 1:A发送短信给B。 2:异常场景无法获取发送方向。