云服务器内容精选

  • 请求示例 修改短信模板,请求方式:PUT ,请求URL:/v2/{project_id}/msgsms/templates/{id},路径参数:id,project_id,请求头参数:X-Auth-Token,Content-Type,请求体:app_id,region,template_content,template_name,template_type。 PUT /v2/845ada5bc7444f1295cd517af0123da1/msgsms/templates/c3f641aa-4e87-4a70-b84d-a2d685599072 HTTP/1.1 Host: 100.85.***.***:30300 Content-Type: application/json X-Auth-Token: *** Content-Length: 311 { "app_id": "******9c-1a6b-4ee5-9651-5bca450694b3", "brackets": "GB", "region": "cn", "sign_id": "******58-e866-4b30-9ca5-a476a00e8775", "template_content": "测试", "template_name": "auto_test000", "template_type": "NOTIFY_TYPE", "universal_template": 0 }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 请求体参数类型,该字段必须设置为:application/json X-Auth-Token 是 String 用户Token。通过调用 IAM 服务获取用户Token接口获取(响应消息头中X-Subject-Token的值) 表3 请求Body参数 参数 是否必选 参数类型 描述 app_id 是 String 应用主键ID,参考表5 响应SmsAppQueryResp参数中的ID brackets 否 String 中括号类型。支持枚举值: CN:中文类型:【】 GB:英文类型: [] 须知: 默认值为:CN 输入值不在上述枚举值范围内的,也按CN处理。 只有地域为国内时,该字段有效。 region 是 String 地域 cn:国内 intl:国际 send_country 否 Array of Integers 发送国家ID列表,只有地域为国际时,该字段有效 sign_id 否 String 签名ID,对应表5 响应SmsSignatureResp参数中的ID。只有地域为国内时,该字段有效 template_content 是 String 模板内容 template_desc 否 String 模板描述 template_name 是 String 模板名称 template_type 是 String 模板类型。只有地域为国内时,该字段有效。支持枚举值: VERIFY_CODE_TYPE:验证码类 PROMOTION_TYPE:推广类 NOTIFY_TYPE:通知类 universal_template 否 Integer 是否为通用模板 0:非通用模板 1:通用模板 variable_attributes 否 Array of SmsTemplateVariableAttrReq objects 模板参数 flow_status 否 String 流程状态 Pending:待提交 Reviewing:待审核 表4 SmsTemplateVariableAttrReq 参数 是否必选 参数类型 描述 variable_desc 否 String 变量说明,当变量类型为TEXT时,必填 variable_index 是 Integer 变量索引,对应模板内容变量索引 variable_type 是 String 变量类型,目前支持:PHONE|CHARDIGIT|DATETIME|MONEY|TEXT|NEWTEXT
  • 请求示例 POST /smsRecive HTTP/1.1 Host: 205.145.111.168:9330 Content-Type: application/x-www-form-urlencoded Connection: close Pooltype: approxy Ompsid: 56514cc1880e40638f16c7c674265658 TerminalIP: 205.141.112.17 TrcModule: AP UserTrace: application TraceHandle: DMZ_818405 from=%2B86155****5172&to=201804131431201234&body=********&smsMsgId=9692b5be-c427-4525-8e73-cf4a6ac5b3f7
  • 请求参数 表2 请求Headers参数 参数名称 是否必选 参数类型 默认值 说明 Content-Type 是 String 无 固定填application/x-www-form-urlencoded。 表3 请求Body参数说明 参数名称 是否必选 参数类型 默认值 说明 smsMsgId 是 String(1-50) 无 上行短信的唯一标识。 from 是 String(1-21) 无 上行短信发送方的号码。 to 是 String(1-21) 无 上行短信接收方的号码。 body 是 String(1-160) 无 上行短信发送的内容。 createTime 否 String(1-20) 无 上行短信创建时间,即短信平台接收到用户发送的上行短信的时间(采用标准UTC格式,例如:2018-02-12T15:30:20Z。不同编程语言中的时间格式转换方式不同,部分语言可参考表 不同编程语言的时间格式)。 在控制台创建应用时,配置需要“接收上行短信回复时间”后(缓存原因,配置后需等待5分钟左右生效),平台才会在Body中附带此字段,该字段只对http协议的短信生效。
  • 接口类型 表1 接口类型说明 请求方法 POST 访问URI 用户接收上行短信的地址。 通信协议 HTTPS/HTTP 回调接口使用HTTPS协议时,服务端需支持TLS1.2,加密套件需支持TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384中的一种或多种。
  • 修订记录 发布日期 修改记录 2024-11-15 第二十次正式发布。 本次变更如下: 状态回执错误码章节新增GB:0014、S:43、908、SVC6001、SVC4001错误码。 2024-11-06 第十九次正式发布。 本次变更如下: 修改短信模板接口优化功能描述,并新增“flow_status”字段,表示流程状态。 API错误码(应用、签名、模板)章节新增MSG SMS .0186、MSGSMS.0187、MSGSMS.0188错误码。 2024-10-24 第十八次正式发布。 本次变更如下: 新增批量删除短信模板接口。 查询签名信息接口中请求参数“status”新增枚举值、新增“qualification_id”、“qualification_name”字段,表示资质ID和资质名。 创建短信签名/修改短信签名接口新增“qualification_id”字段,表示资质ID。 获取签名详情接口新增“qualification_id”、“qualification_name”字段,表示资质ID和资质名。 2024-08-23 第十七次正式发布。 本次变更如下: 下线批量删除短信模板接口。 发送短信/发送分批短信章节新增E000630错误码。 状态回执错误码( 国内短信)章节新增E000632错误码。 2024-08-02 第十六次正式发布。 本次变更如下: 新增批量删除短信模板接口。 接收状态报告/批量接收状态报告接口新增请求参数statusDesc,表示错误码描述。 发送短信/发送分批短信/API错误码(发送短信)章节新增E000041、E000042、E000043、E000044、E000045错误码。 2024-07-15 第十五次正式发布。 本次变更如下: “API错误码(发送短信)”章节新增E000630错误码。 2024-07-03 第十四次正式发布。 本次变更如下: 下线“策略和授权项说明”章节内容。 2024-05-16 第十三次正式发布。 本次变更如下: 状态回执错误码( 国内短信)新增E200047错误码。 2024-01-26 第十二次正式发布。 本次变更如下: 状态回执错误码( 国内短信)新增UT:0023错误码。 2022-10-28 第十一次正式发布。 本次变更如下: API文档结构优化,新增“使用前必读”、“API概况”、“如何调用API”与“附录”等章节。 2022-7-21 第十次正式发布。 本次变更如下: 新增短信应用、模板和签名接口。 2019-10-16 第九次正式发布。 本次变更如下: 发送短信/发送分批短信:响应参数status新增取值E200041。 接收状态报告:请求参数status和orgCode状态码归一。具体变更如下: 请求参数status删除取值RTE_ERR。 请求参数orgCode取值合入status。其中,请求参数status新增取值E200018-E200027、E200032、E200034-E200036、E200038,删除原orgCode参数取值E200040、E200041、E200042、E200045。 2019-09-05 第八次正式发布。 本次变更如下: 接收状态报告接口:请求参数status新增取值SC:0016-SC:0018。 2019-06-30 第七次正式发布。 本次变更如下: 发送短信/发送分批短信接口:结果码E200037变更为E000510。 接收状态报告接口:请求参数status新增取值SC:0013-SC:0015。 2019-03-30 第六次正式发布。 本次变更如下: 接收状态报告接口: 请求参数source新增取值3。 请求参数status新增取值SC:0001-SC:0012。 2019-01-18 第五次正式发布。 本次变更如下: 接收状态报告接口:请求参数orgCode新增取值E200040、E200041、E200042、E200045。 2018-12-24 第四次正式发布。 本次变更如下: 发送短信/发送分批短信接口:新增请求参数signature,对应通用模板功能。 2018-09-30 第三次正式发布。 本次变更如下: 发送短信/发送分批短信接口:新增结果码E200037。 接收状态报告接口:请求参数orgCode新增取值E200038。 2018-08-17 第二次正式发布。 本次变更如下: 发送短信/发送分批短信接口: 新增请求参数extend。 响应参数status新增取值E200031。 新增结果码E000027。 接收状态报告接口: 新增请求参数extend、to。 请求参数orgCode新增取值E200034、E200035、E200036。 2018-01-01 第一次正式发布。
  • 请求示例 POST /report HTTP/1.1 Host: 205.145.111.168:9330 Content-Type: application/x-www-form-urlencoded Connection: close Pooltype: approxy Ompsid: 7f540777fe4b40dfb3c21d10f48781e3 TerminalIP: ****** TrcModule: AP UserTrace: application TraceHandle: DMZ_818405 sequence=1&total=1&orgCode=000&updateTime=2018-04-13T06%3A31%3A46Z&source=2&smsMsgId=b9d9b4fe-ad0e-4a2a-a2c7-445505b674ac_6&status=DELIVRD
  • 接口类型 表1 接口类型说明 请求方法 POST 访问URI “发送短信”、“发送分批短信”接口中指定的用户回调地址。 通信协议 HTTPS/HTTP 回调接口使用HTTPS协议时,服务端需支持TLS1.2,加密套件需支持TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384中的一种或多种。
  • 请求参数 表2 请求Headers参数 参数名称 是否必选 参数类型 默认值 说明 Content-Type 是 String 无 固定填application/x-www-form-urlencoded。 表3 请求Body参数说明 参数名称 是否必选 参数类型 默认值 说明 smsMsgId 是 String(1-50) 无 发送短信成功时返回的短信唯一标识。 total 否 String(1-2) 无 长短信拆分后的短信条数。 当短信未拆分时该参数取值为1。 sequence 否 String(1-2) 无 长短信拆分后的短信序号,当total参数取值大于1时,该参数才有效。 当短信未拆分时该参数取值为1。 status 是 String(1-7) 无 短信状态报告枚举值,常见取值请参考表 Status常见取值,处理方法请参考状态报告错误码。 statusDesc 否 String(1-500) 无 错误码描述,常见取值请参考表 Status常见取值。 source 否 String(枚举) 无 短信状态报告来源: 1:短信平台自行产生的状态报告。 2:短信中心返回的状态报告。 3:华为平台产生的状态报告。 updateTime 否 String(1-20) 无 短信资源的更新时间,通常为短信平台接收短信状态报告的时间,为UTC时间,格式为:yyyy-MM-dd'T'HH:mm:ss'Z',该时间会通过urlencode转义为%3a。 当短信平台未收到短信中心上报的状态报告时,会自行构造状态报告,该状态报告中不携带“updateTime”参数。 extend 否 String(1-128) 无 扩展字段,由用户在发送短信的请求中携带。若用户发送短信时未携带extend参数,则状态报告中也不会携带extend参数。 to 否 String(1-21) 无 本条状态报告对应的短信的接收方号码,仅当状态报告中携带了extend参数时才会同时携带该参数。 表4 Status常见取值 取值 含义 DELIVRD 用户已成功收到短信。 EXPIRED 短信已超时。 DELETED 短信已删除。 UNDELIV 短信递送失败。 ACCEPTD 短信已接收。 UNKNOWN 短信状态未知。 REJECTD 短信被拒绝。 E200018 国内短信发送方通道校验失败。 E200019 国内短信发送方匹配通道失败。 E200020 国内短信签名通道校验失败。 E200021 国内短信签名匹配通道失败。 E200022 国内短信接收方通道校验失败。 E200023 国内短信接收方匹配通道失败。 E200025 国际短信接收方通道校验失败。 E200026 国际短信接收方匹配通道失败。 E200027 匹配网关失败。 E200032 短信需要模板。 E200034 短信重传超时。 E200035 短信协议字段替换失败。 E200036 南向速率管控配置为0。 E200038 接收长短信超时。 MILIMIT 号码达到分钟下发限制。 LIMIT 号码达到下发限制。 BEYONDN KEYWORD 短信关键字拦截。 BLACK 号码黑名单。 MBBLACK DJ:0255 运营商拦截,一般是因为短信内容不允许发送。 1 此类错误码多为手机号码问题,如手机为空号,关机,停机等。 24 MK:xxxx MN:xxxx LT:0001 MA:xxxx SMSC未返回响应消息。 MB:xxxx SMSC返回错误响应消息。 MC:xxxx 未从SMSC处接收到状态报告。 CA:xxxx SCP未返回响应消息。 CB:xxxx SCP返回错误响应消息。 DA:xxxx DSMP未返回响应消息。 DB:xxxx DSMP返回错误响应消息。 SA:xxxx SP未返回响应消息。 SB:xxxx SP返回错误响应消息。 IA:xxxx 下一级ISMG未返回响应消息。 IB:xxxx 下一级ISMG返回错误响应消息。 IC:xxxx 没有从下一级ISMG处接收到状态报告。 SC:0001 人工审核拦截 SC:0002 人工审核告警拦截 SC:0003 黑名单拦截 SC:0004 红名单拦截 SC:0005 投诉黑名单 SC:0006 禁用关键字拦截 SC:0007 特征关键字拦截 SC:0008 管控关键字拦截 SC:0009 缺失必备关键字 SC:0010 短信超频拦截 SC:0011 时段管控拦截 SC:0012 人工审核超时处理 SC:0013 签名黑名单拦截 SC:0014 免审核模板匹配 SC:0015 拦截模板匹配 SC:0016 退订黑名单拦截 SC:0017 非报备模板拦截 SC:0018 非报备签名拦截
  • 注意事项 短信发送成功后,平台收到状态报告,会实时推送状态报告给用户,最迟不超过72小时。 平台推送汇聚后的状态报告,状态报告存在一定时延。 短信平台批量推送状态报告,单次最多推送50条。 若“statusCallback”字段已设置,则优先使用该字段的取值作为短信状态报告的回调地址。 若“statusCallback”字段未设置,则使用应用中配置的批量接收状态报告地址。 若“statusCallback”字段未设置且未在应用端配置批量接收状态报告地址,则用户无法接收短信平台主动发送的状态报告。
  • 请求示例 POST /batchReport HTTP/1.1 Host: 205.145.111.168:9330 Content-Type: application/JSON;charset=UTF-8 Connection: close Pooltype: approxy Ompsid: 7f540777fe4b40dfb3c21d10f48781e3 TerminalIP: ****** TrcModule: AP UserTrace: application TraceHandle: DMZ_818405 {"statusReportList":[{"sequence":"1","total":"1","updateTime":"2023-04-18T07:26:00Z","source":"2","smsMsgId":"f6dcba15-ced9-45f7-9f5e-af82328c5253_1188602","status":"DELIVRD"},{"sequence":"1","total":"1","updateTime":"2023-04-18T07:26:00Z","source":"2","smsMsgId":"f6dcba15-ced9-45f7-9f5e-af82328c5253_123456","status":"DELIVRD"}]}
  • 接口类型 表1 接口类型说明 请求方法 POST 访问URI 用户在应用中配置的批量接收状态报告地址。 通信协议 HTTPS/HTTP 回调接口使用HTTPS协议时,服务端需支持TLS1.2,加密套件需支持 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384中的一种或多种。
  • 接收状态报告 需要引入的maven依赖为:org.springframework:spring-web:5.3.21(样例版本) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController public class DemoController { /** * 同步短信回执 */ @PostMapping("/report") public void smsHwReport(@RequestParam String smsMsgId, // 发送短信成功时返回的短信唯一标识。 @RequestParam(required = false) String total, // 长短信拆分后的短信条数。当短信未拆分时该参数取值为1。 @RequestParam(required = false) String sequence, // 长短信拆分后的短信序号,当total参数取值大于1时,该参数才有效。当短信未拆分时该参数取值为1。 @RequestParam String status, // 短信状态报告枚举值,常见取值请参考“API参考” @RequestParam(required = false) String source, // 短信状态报告来源:1:短信平台自行产生的状态报告。2:短信中心返回的状态报告。3:华为平台产生的状态报告。 @RequestParam(required = false) String updateTime,// 短信资源的更新时间,通常为短信平台接收短信状态报告的时间,为UTC时间,格式为:yyyy-MM-dd'T'HH:mm:ss'Z',该时间会通过urlencode转义为%3a。// 当短信平台未收到短信中心上报的状态报告时,会自行构造状态报告,该状态报告中不携带“updateTime”参数。 @RequestParam(required = false) String orgCode, // 透传南向网元状态码,仅国际/港澳台短信状态报告携带,国内短信不涉及。// 当南向网元未返回状态码时不携带该参数。 @RequestParam(required = false) String extend, // 扩展字段,由用户在发送短信的请求中携带。若用户发送短信时未携带extend参数,则状态报告中也不会携带extend参数。 @RequestParam(required = false) String to) { // 本条状态报告对应的短信的接收方号码,仅当状态报告中携带了extend参数时才会同时携带该参数。 System.out.println(" ================receive smsStatusReport ======================"); System.out.println("smsMsgId: " + smsMsgId); System.out.println("total: " + total); System.out.println("sequence: " + sequence); System.out.println("status: " + status); System.out.println("source: " + source); System.out.println("updateTime: " + updateTime); System.out.println("orgCode: " + orgCode); System.out.println("extend: " + extend); System.out.println("to: " + to); } }
  • 接收上行短信 需要引入的maven依赖为:org.springframework:spring-web:5.3.21(样例版本) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.PostMapping; @RestController public class DemoController { /* * @param smsMsgId 上行短信的唯一标识。 * @param from 上行短信发送方的号码。 * @param to 上行短信接收方的号码。 * @param body 上行短信发送的内容。 * @param createTime // 上行短信创建时间,即短信平台接收到用户发送的上行短信的时间(采用标准UTC格式,例如:2018-02-12T15:30:20Z。不同编程语言中的时间格式转换方式不同,部分语言可参考表 不同编程语言的时间格式)。 * // 在控制台创建应用时配置需要“接收上行短信回复时间”后,平台才会在Body中附带此字段,该字段只对http协议的短信生效。 */ @PostMapping("/upSMS") public void receiveHwSms(@RequestParam String smsMsgId, @RequestParam String from, @RequestParam String to, @RequestParam String body, @RequestParam(required = false) String createTime) { System.out.println(" ================receive upSMS ======================"); // 打印上面的RequestParam System.out.println(" smsMsgId: " + smsMsgId); System.out.println(" from: " + from); System.out.println(" to: " + to); System.out.println(" body: " + body); System.out.println(" createTime: " + createTime); } }
  • 安装SDK 执行如下命令安装华为云Python SDK核心库以及相关服务库。 使用SDK前,您需要安装“huaweicloudsdkcore”和“huaweicloudsdkmsgsms”,具体的SDK版本号请参见SDK开发中心。 使用pip安装 执行如下命令安装华为云Python SDK核心库以及相关服务库: # 安装核心库 pip install huaweicloudsdkcore # 安装MSGSMS服务库 pip install huaweicloudsdkmsgsms 使用源码安装 执行如下命令安装华为云Python SDK核心库以及相关服务库: # 安装核心库 cd huaweicloudsdkcore-${version} python setup.py install # 安装MSGSMS服务库 cd huaweicloudsdkmsgsms-${version} python setup.py install