云服务器内容精选

  • 请求示例 修改短信模板,请求方式: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 模板参数 表4 SmsTemplateVariableAttrReq 参数 是否必选 参数类型 描述 variable_desc 否 String 变量说明,当变量类型为TEXT时,必填 variable_index 是 Integer 变量索引,对应模板内容变量索引 variable_type 是 String 变量类型,目前支持:PHONE|CHARDIGIT|DATETIME|MONEY|TEXT|NEWTEXT
  • 修订记录 发布日期 修改记录 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 第一次正式发布。
  • 资质已审核通过,关联上签名后,为何签名的状态为“处理完毕(资质审核中)”? 历史已审核通过的签名,单击“补充资质”,关联上对应的资质后,会提交审核。若签名和资质相符,则签名状态会变更为“处理完毕(实名报备中)”并向运营商报备,报备完成后签名状态变更为“处理完毕”;若签名和资质不符,则签名状态会变更为“处理完毕(实名报备失败)”,您需要根据报备失败的原因进行修改后,重新提交资质报备。 父主题: 资质相关
  • 模板规范 模板规范分为模板格式规范和模板内容规范。 模板格式规范 文本短信模板限500字符。 不支持使用【】,【】可能会与签名混淆,导致发送失败。 不支持使用特殊符号,如¥、★、^_^、&、√、※、[]等,特殊符号可能会导致短信出现乱码。 模板内容规范 模板必须体现实际公司业务,除变量以外的文本内容必须可判断短信含义和使用场景,请尽可能多的使用固定文字描述。 不允许发送未经许可的邀请,主要指邀请注册、邀请成为会员或报名参加活动等行为。 房地产、教育、游戏行业暂只支持验证码短信。 禁止发送涉及以下信息或关键字的短信:股票、移民、金融、面试招聘、博彩赌球,彩票、返利、贷款、催款、投资理财、中奖、一元夺宝、一元秒杀、A货、医疗、整形、美容、会所、酒吧、黄赌毒、足浴、带有威胁性质、皮草、助考、商标注册、加群、加QQ、加微信、贩卖个人信息、APP下载/推广链接、好评返现、用户拉新、用户召回、运营商相关(增值业务、营业厅,移动,联通,电信,广电,大王卡,短信群发、4G\5G等)、代写论文刊物、棋牌、赌博、游戏、法院诉讼、传票、征信黑名单、党政维权、原油期货、贵金属、私募股权、评价、留学、海外置业投资、银行汇票、工商代办、开发票、招募合伙人、邀请注册、驾驶证年审、售卖软件、手机或山寨机买卖、回复确认收货、违禁品、虚拟货币、邮币邮票、上门追讨、宗教、迷信、二类电商、交友、婚恋、POS机、积分兑换、红白事、法律、财税、代理认证、专利、加盟、展会、调解、借贷、分期、积分清零、刷单、加客服、淘口令、零元购、公司注册、知识产权、公积金/社保代申报、保健养生、养老、数字藏品、问卷调查、培训讲座、保险、直播、烟、酒、茶叶、兼职、房产买卖、装修建材等及其他违反法律法规的内容。 模板内容不需要填写短信签名,发送短信时系统会自动添加。 不同类型的模板有不同的模板规范,如下: 类别 变量规范 内容规范 模板示例 验证码短信 仅支持一个变量,用于填写数字验证码。 验证码变量的“最大长度”要求为8位及以下。 国内短信必须含有验证码,注册码,校验码,动态码这4个词其中之一。 请参考短信模板示例。 通知短信 链接和联系方式不支持使用变量发送,请填写在模板的固定文本中。 不支持带营销推广的内容。 链接只能为固定网址,不能是跳转链接或短网址。 请参考短信模板示例。 推广短信 不支持变量,模板只能为纯固定文本。 推广短信除公共规范外,另禁止发送涉及以下信息的短信:培训、招商加盟类、团购会、装修(含建材,家私)、烟、酒、茶、捐款献血、迷信色彩、人工或软件刷单、做任务、虚拟货币、人民币收藏、钱币买卖、沙发翻新、工商代办、代开发票、买卖黑车、非法钓鱼、会展、网站、优惠券类推广、卡类、保险、税票、APP推广、办证、回收、医疗保健、信用卡、交友、猎头、直播及其他违反法律法规的内容。 只支持发送给有订购关系的会员用户,模板必须体现是发送给会员。 必须添加退订方式,支持回复“R”进行短信退订回复。 联系方式仅支持固话或400电话,不支持手机号。 不支持携带变量链接,请将链接作为固定文本;链接只能为固定网址,不能是跳转链接或短网址。 - 模板规范可能随运营商规则变化实时调整,最终以模板审核结果为准。 如遇到违反规范并造成恶劣影响的,将严肃处理并进行封号!请严格遵守规范要求,加强自身业务安全,健康发送短信。
  • 变量示例 变量格式 填写示例 说明 按序号标识 ${1}、${2}、...、${20} 长度限制:1-20个字符。 中间数字应代表变量在模板内容中的位置顺序。即${1}表示模板内容中的第一个变量,${2}表示模板内容中的第二个变量,以此类推。 说明: 特殊内容(如网址、手机号等)不允许设置局部变量,如www.${1}.cn、186${2}1234等。 按类型标识 ${PHONE}、${CHARDIGIT}、${DATETIME}、${MONEY}、${TEXT} 中间字符表示变量类型,各变量有默认长度限制,不支持自定义设置。 如有任何疑问,请联系华为云智能客服,将有专人为您解答。
  • 模板审核常见问题 短信模板审核的通用问题和处理建议如下: 类型 一级问题 二级问题 处理建议 错误模板示例 正确模板示例 申请错误 所属签名错误 选择“华为云短信测试”及通用签名 申请模板时,需要选择自己申请的签名。 建议在有两个以上同类型签名需要使用同一个模板时选择通用签名。 - 更多正确示例请参见模板示例。 短信模板属性与短信签名属性不一致 短信模板属性需和短信签名属性保持一致。(如:不支持以A公司的签名申请关于B公司业务的模板内容。) - 更多正确示例请参见模板示例。 在选择纯英文签名时选择了[] 目前国内短信签名符号格式仅支持【】,请修改后提交。 - 更多正确示例请参见模板示例。 短信类别错误 通知内容误选验证码类、推广内容选通知类等 根据自己的短信内容选择适合的短信类型。 - 更多正确示例请参见模板示例。 格式错误 变量错误 变量数量错误 不支持连续变量,变量总数不能超过20个。 温馨提醒:${PHONE}${CHARDIGIT}${DATETIME}的会议即将开始,请您准时参加。 温馨提醒:${1}-${2}的会议即将开始,请您准时参加。 变量格式错误 变量格式为${1}、${2}、...、${20},中间数字应代表变量在模板内容中的位置顺序。 不允许设置局部变量,如www.${1}.cn、186${2}1234等。 温馨提醒:${3}-${5}的会议即将开始,请您准时参加。 温馨提醒:${1}-${2}的会议即将开始,请您准时参加。 变量属性错误 创建模板时,支持以下五种变量属性: 电话号码:可以传入手机号、座机号、95或400、800电话等,长度为1-15个字符。 其他号码:主要用途为订单号,密码、随机密钥等,长度为1-20个字符。 时间:需要符合时间的表达方式,长度为1-20个字符。 金额:仅支持传入能够正常表达金额的数字、小数点或中文,例如壹、贰、叁、肆等,长度为1-20个字符。 其他(如名称、账号、地址等):可以设置为公司/产品/地址/姓名/内容/账号/会员名等,长度为1-20个字符。 您的验证码为:${NUM_6},5分钟内有效!请勿泄漏! 您的验证码为:${CHARDIGIT},5分钟内有效!请勿泄漏! 重复签名错误 模板内容中额外添加短信签名 发送时系统会自动添加签名【签名内容】,请去除。 【签名】您的验证码为:${1},5分钟内有效!请勿泄漏! 您的验证码为:${1},5分钟内有效!请勿泄漏! 内容错误 有严禁符号 不支持如¥、★、^_^、&、√、※、[]等特殊符号,可能会导致短信出现乱码 含不支持发送符号的,请删除。 模板中含【】符号可能会致使短信发送失败,请删除。 温馨提醒:${1}&${2}的会议即将开始,请您准时参加。 温馨提醒:${1}-${2}的会议即将开始,请您准时参加。 变量使用错误 笼统设置变量属性为“其他”,未区分时间、电话号码、数值等。 请根据短信实际内容,合理使用变量,并设置相应的变量属性,不可笼统设置为“其他”。 尊敬的客户:您${TEXT}消费${TEXT}元,当前账号余额${TEXT}元。 尊敬的客户:您${DATETIME}消费${MONEY}元,当前账号余额${MONEY}元。 内容不清晰 全变量模板;固定文本太少,变量过多,取值过大,无法辨认业务场景等 全变量模板不支持,按需求设置变量并使用尽可能多的固定文本描述,以便能判读短信内容含义及使用场景。 ${1}-${2}的${3}。 温馨提醒:${1}-${2}的会议即将开始,请您准时参加。 缺少必备关键字 推广短信内容需要添加退订方式,支持回复“R”进行短信退订 推广短信内容需要添加退订方式,请在模板中添加退订方式,支持回复“R”进行短信退订。 尊敬的会员,您收到了一个xx送给您的大礼包,请通过微信小程序查询。 尊敬的会员,xx商场年中大促全场3折起!精选款5折,叠加满500减100,全城独家限6月18日前。地址xx路xx号。拒收请回复R。 验证码模板内容必须含有验证码,注册码,校验码,动态码这4个词其中之一 请添加相应关键字,验证码模板内容必须含有验证码,注册码,校验码,动态码这4个词其中之一。 ${1},5分钟内有效!请勿泄漏! 您的验证码为:${1},5分钟内有效!请勿泄漏! 不同短信模板类型特有的问题如下: 类型 一级问题 二级问题 处理建议 错误模板示例 正确模板示例 验证码类 夹带禁发内容 不是纯验证码,夹带了营销内容 将非验证码内容删除。 您的验证码为:${1},该验证码5分钟内有效。登录之后领取新人专属福利,券等你来! 您的验证码为:${1},该验证码5分钟内有效,请勿泄漏于他人! 夹带其他变量 除验证码外还有其他长变量 请勿将短信其他内容设为变量,若验证码分注册、修改密码等多个类型,可以分开申请。 您的验证码为:${1},该验证码5分钟内有效,仅供${TXT_20}使用。 您的验证码为:${1},该验证码5分钟内有效,请勿泄漏于他人! 通知类 招聘面试不支持 - 平台目前不支持发送招聘、面试通知等,请谅解。 尊敬的XX,提醒您于${1}到${2}进行第一轮面试,请准备好相关资料。 更多正确示例请参见模板示例。 游戏、金融、房地产、教育通知不发 - 平台目前不支持发送游戏、房地产、金融、教育等通知,请谅解。 您有一个游戏奖励未领取,请登录XX手游领取。 更多正确示例请参见模板示例。 催缴性质的不发 - 平台不支持催缴短信、包括提醒支付,请谅解。 您有${MONEY}元账单待还款,最后还款日期未本月8日。 更多正确示例请参见模板示例。 通知夹带营销信息 前半段是通知内容,后半段是营销信息 通知类短信中不要夹带营销信息,可根据平台返回的审核说明对模板内容进行修改。 您已成功预订${1}张门票,取票密码:${2},请提前到达并兑换门票。关注XX公众号获取更多当地旅游信息。 您已成功预订${1}张门票,取票密码:${2},请提前到达并兑换门票。 短信含其他规则范围内的禁带内容 如优惠券、加QQ等短信模板规范中短信通知禁带内容 参照模板规范创建模板。 根据模板不通过时平台返回的审核说明对禁发内容进行删除。 更多正确示例见模板示例。 更多正确示例请参见模板示例。 推广类 明显盲发内容 没有带会员描述,模板内容无法识别是否发送给会员 发送对象为非注册用户、非会员用户、或非已产生购买的用户 开业宣传、业务介绍、公司介绍 在模板中添加会员称谓,模板内容中体现出是发会员,确认会员关系。 开业宣传、业务介绍、公司介绍等不能确认会员关系的内容均属盲发短信,不支持发送,请谅解。 xx商场xx服饰上线春季新品,欢迎到店选购,拒收请回复R。 尊敬的会员,xx商场xx服饰上线春季新品,会员叠加满500减100,限6月18日前。地址xx路xx号。拒收请回复R。 4S店、车类不发 - 4S、车类投诉风险过高,平台暂不支持发送,请谅解。 尊敬的客户,您在xx4S店产生了一笔消费单,请及时查看。 - 短信内链接无效或不合规,变量明显指向链接的 链接内容与短信内容不符、链接失效等 模板内容只支持全固定文本链接,以便平台对链接内容进行核实。 若链接为无效链接或无法打开,请您先自行检查是否填错。 若链接内容与模板内容不符,不支持发送。 亲爱的会员,您在xx品牌消费满500获赠100元的礼金券,已推送至您的券包,点击${1}链接查看,有效期为6.1-6.18,使用规则详见券面,拒收请回复R。 亲爱的会员,您在xx品牌消费满500获赠100元的礼金券,已推送至您的券包,点击https://xx/xx查看,有效期为6.1-6.18,使用规则详见券面,拒收请回复R。 注意: https://xx/xx为链接示例,请填入真实有效且与模板内容相符的固定链接。 涉及房产、家装、展会等模板审核标准中明显禁止的类型 - 创建模板前,请先仔细阅读模板规范,涉及不支持发送的行业类型,平台将直接驳回。 国际新工艺展览会于${DATETIME}国际会议中心展开,领门票点击https:xxxx。 - 内容过期 带QQ、微信\微信群、关注公众号、个人联系方式等内容 带链接变量 如重大节日后提交节日活动模板 任何节假日(如五一、十一等)的推广内容,都需提前审核模板,以免错过发送时间,造成短信内容过期。 推广短信不支持带加QQ、微信、微信群、关注公众号、个人联系方式、联系方式变量等,建议联系方式改为固话或400或官网链接等。 不支持将链接作为变量,请将链接作为固定文本。 尊敬的会员。xx商场庆端午开场,全场低至3折,更有粽子礼盒消费满额送,欢迎到场参与活动,拒收请回复R。 - 如有任何疑问,请联系华为云智能客服,将有专人为您解答。
  • 模板示例 您需要自行编辑短信内容并申请短信模板,才能发送短信,验证码短信和通知短信的模板样例请参考下表。 推广短信无模板样例,您可参考模板规范和变量规范编辑您的模板。 验证码短信示例 应用场景 模板示例 变量属性 登录/验证 您的动态码为:${1},5分钟内有效!请勿泄漏! ${1}:其他号码 您的校验码为:${1},您正在使用移动服务平台,请勿泄漏验证码。 您的验证码为:${1},该验证码5分钟内有效,请勿泄漏于他人! 您的验证码为:${1},请尽快完成验证。祝您生活愉快! 注册 您的注册码为:${1},您正在注册成为会员,感谢您的支持! 修改密码 您的检验码为:${1},您正在进行密码重置操作,如非本人操作,请忽略本短信! 修改手机号 您正在修改注册手机号码,验证码为:${1}(5分钟有效),为保障账户安全,请勿向任何人提供此验证码。 找回密码 您正在进行密码找回,验证码为:${1} (10分钟内有效),请勿向任何人提供此验证码 登录 验证码:${1},您正在登录平台账号,如非本人操作,请勿泄漏 。 变更信息 验证码:${1},您正在变更重要信息,请妥善保管账户信息。 通知短信示例 应用场景 模板示例 变量属性 会议 温馨提醒:${1} ${2} - ${3} 的会议即将开始,请您准时参加。 ${1}${2}${3}:时间 消费 尊敬的客户:您${1} ${2}消费${3}元,当前账号余额${4}元。 ${1}${2}:时间 ${3}${4}:金额 审核 您的申请已于${1} ${2}审批通过,请登录平台确认。 ${1}${2}:时间 注册 您申请的用户名为:${1},密码:${2},请登录并修改密码。 ${1}:其他 ${2}:其他号码 欢迎您的加入!请用注册的手机号码及初始密码(${1})登录。 ${1}:其他号码 修改密码 尊敬的用户,您的密码已经重置为${1},请尽快登录并修改密码。 ${1}:其他号码 快递 您的订单${1}已打包发送,快递单号${2},请注意查收。 ${1}${2}:其他号码 您的快递${1}正在配送中,请注意查收。 ${1}:其他号码 取票 您已成功预订${1}张门票,取票密码:${2},请提前到达并兑换门票。 ${1}${2}:其他号码 预约 您已成功预约 ${1} ${2}-${3},预约号${4},请提前到达等候叫号。 ${1}${2}${3}:时间 ${4}:其他号码 排队 您的排队号${1},您前面还有${2}人等待,请在现场等候叫号。 ${1}${2}:其他号码 售后咨询 已安排售后人员和您联系,请您保持电话畅通耐心等待,谢谢! - 兑换码 您的兑换申请已经通过,兑换码为${1},请勿泄漏。 ${1}:其他号码
  • 模板规范 模板规范分为模板格式规范和模板内容规范。 模板格式规范 文本短信模板限500字符。 不支持使用【】,【】可能会与签名混淆,导致发送失败。 不支持使用特殊符号,如¥、★、^_^、&、√、※、[]等,特殊符号可能会导致短信出现乱码。 模板内容规范 模板必须体现实际公司业务,除变量以外的文本内容必须可判断短信含义和使用场景,请尽可能多的使用固定文字描述。 不允许发送未经许可的邀请,主要指邀请注册、邀请成为会员或报名参加活动等行为。 房地产、教育、游戏行业暂只支持验证码短信。 禁止发送涉及以下信息或关键字的短信:股票、移民、金融、面试招聘、博彩赌球,彩票、返利、贷款、催款、投资理财、中奖、一元夺宝、一元秒杀、A货、医疗、整形、美容、会所、酒吧、黄赌毒、足浴、带有威胁性质、皮草、助考、商标注册、加群、加QQ、加微信、贩卖个人信息、APP下载/推广链接、好评返现、用户拉新、用户召回、运营商相关(增值业务、营业厅,移动,联通,电信,广电,大王卡,短信群发、4G\5G等)、代写论文刊物、棋牌、赌博、游戏、法院诉讼、传票、征信黑名单、党政维权、原油期货、贵金属、私募股权、评价、留学、海外置业投资、银行汇票、工商代办、开发票、招募合伙人、邀请注册、驾驶证年审、售卖软件、手机或山寨机买卖、回复确认收货、违禁品、虚拟货币、邮币邮票、上门追讨、宗教、迷信、二类电商、交友、婚恋、POS机、积分兑换、红白事、法律、财税、代理认证、专利、加盟、展会、调解、借贷、分期、积分清零、刷单、加客服、淘口令、零元购、公司注册、知识产权、公积金/社保代申报、保健养生、养老、数字藏品、问卷调查、培训讲座、保险、直播、烟、酒、茶叶、兼职、房产买卖、装修建材等及其他违反法律法规的内容。 模板内容不需要填写短信签名,发送短信时系统会自动添加。 不同类型的模板有不同的模板规范,如下: 类别 变量规范 内容规范 模板示例 验证码短信 仅支持一个变量,用于填写数字验证码。 验证码变量的“最大长度”要求为8位及以下。 国内短信必须含有验证码,注册码,校验码,动态码这4个词其中之一。 请参考短信模板示例。 通知短信 链接和手机手机号码不支持使用变量发送,请填写在模板的固定文本中。 不支持带营销推广的内容。 链接只能为固定网址,不能是跳转链接或短网址。 请参考短信模板示例。 推广短信 不支持变量,模板只能为纯固定文本。 推广短信除公共规范外,还禁止发送涉及以下信息或关键字的短信:培训、招商加盟类、团购会、装修(含建材,家私)、烟、酒、茶、捐款献血、迷信色彩、人工或软件刷单、做任务、虚拟货币、人民币收藏、钱币买卖、沙发翻新、工商代办、代开发票、买卖黑车、非法钓鱼、会展、网站、优惠券类推广、卡类、保险、税票、APP推广、办证、回收、医疗保健、信用卡、交友、猎头、直播及其他违反法律法规的内容。 只支持发送给有订购关系的会员用户,模板必须体现是发送给会员。 必须添加退订方式,支持回复“R”进行短信退订回复。 联系方式仅支持固话或400电话,不支持手机号。 不支持携带变量链接,请将链接作为固定文本;链接只能为固定网址,不能是跳转链接或短网址。 - 模板规范可能随运营商规则变化实时调整,最终以模板审核结果为准。 如遇到违反规范并造成恶劣影响的,将严肃处理并进行封号!请严格遵守规范要求,加强自身业务安全,健康发送短信。
  • 接收状态报告 需要引入的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("/up SMS ") 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); } }
  • 调测指引 本节为您介绍新手开发者进行二次开发的调测点指引。 短信中心包括移动、联通、电信、广电、供应商(线路代理商)。 Check 1:合法性检查。在发起发送短信请求前,对请求参数合法性做必要的检查,如: 请求Headers参数“Content-Type”在发送短信API中取值为application/x-www-form-urlencoded,在发送分批短信API中取值为application/json。 请求Body参数“to”在发送短信API中取值为字符串,在发送分批短信API中取值为字符串数组。 如果需要接收短信状态报告通知,则“statusCallback”参数值不能为空,且地址有效可达。 如果“templateId”指定的模板类型为通用模板,则必须通过“signature”指定在通用模板短信内容前面补充的签名。 Check 2:结果码解析。获取请求结果时,请解析出响应结果码,并参考API错误码中的处理建议进行修正。 HTTP/1.1 200 OK Date: Fri, 13 Apr 2018 06:29:08 GMT Server: WebServer Content-Type: application/json;charset=UTF-8 Content-Length: 220 {"result":[{"originTo":"+86155****5678","createTime":"2018-05-25T16:34:34Z","from":"1069-******0012","smsMsgId":"d6e3cdd0-522b-4692-8304-a07553cdf591_8539659","status":"000000"}],"code":"000000","description":"Success"} 其中,“code”取值为“E000510”时,还需解析“status”参数值,进行定位分析。 Check 3:解析拦截状态码。所发短信内容触发华为平台拦截时,华为云短信服务会推送状态报告通知给客户,请解析出状态码,并参考状态回执错误码中“状态码来源”为“华为平台”的处理建议进行修正。 仅在发送短信请求中“statusCallback”参数已设置回调地址时,华为云短信服务才会推送状态报告通知。否则,请登录短信控制台,进入发送详情页查看状态码。 Check 4:解析送达状态码。华为云短信服务收到短信中心的短信状态通知时,会推送状态报告通知给客户,请解析出状态码,并参考状态回执错误码中的处理建议进行修正。 仅在发送短信请求中“statusCallback”参数已设置回调地址时,华为云短信服务才会推送状态报告通知。否则,请登录短信控制台,进入发送详情页查看状态码。 如有任何疑问,请联系 华为云智能客服,将有专人为您解答。
  • 接收状态报告 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 32 package main import ( "fmt" "net/url" "strings" ) func main() { // 短信平台上报状态报告数据样例(urlencode) //success_body := "sequence=1&total=1&updateTime=2018-10-31T08%3A43%3A41Z&source=2&smsMsgId=2ea20735-f856-4376-afbf-570bd70a46ee_11840135&status=DELIVRD"; failed_body := "sequence=1&total=1&updateTime=2018-10-31T08%3A43%3A41Z&source=2&smsMsgId=2ea20735-f856-4376-afbf-570bd70a46ee_11840135&status=E200027"; //onSmsStatusReport(success_body); onSmsStatusReport(failed_body); } func onSmsStatusReport(data string) { ss, _ := url.QueryUnescape(data) params := strings.Split(ss, "&") keyValues := make(map[string]string) for i := range params { temp := strings.Split(params[i],"=") keyValues[temp[0]] = temp[1]; } status := keyValues["status"]; if status == "DELIVRD" { fmt.Println("Send sms success. smsMsgId: " + keyValues["smsMsgId"]) } else { fmt.Println("Send sms failed. smsMsgId: " + keyValues["smsMsgId"]) fmt.Println("Failed status: " + keyValues["status"]) } }
  • 接收上行短信 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 package main import ( "fmt" "net/url" "strings" ) func main() { upData := "from=%2B86151****6789&to=1069***2019&body=***********&smsMsgId=9692b5be-c427-4525-8e73-cf4a6ac5b3f7"; onSmsUpData(upData); } func onSmsUpData(data string) { ss, _ := url.QueryUnescape(data) params := strings.Split(ss, "&") keyValues := make(map[string]string) for i := range params { temp := strings.Split(params[i],"=") keyValues[temp[0]] = temp[1]; } body := keyValues["body"]; fmt.Println("Sms up data. Body: " + body) }
  • 国内短信开发数据准备 国内短信启动开发前需要准备的数据如下: 参数名 取值样例 获取方式 相关文档 APP_Key c8RWg3ggEcyd4D3p94bf3Y7x1Ile 登录管理控制台,从国内短信“应用管理”页面获取。 创建短信应用 APP_Secret q4Ii87BhST9vcs8wvrzN80SfD7Al APP接入地址 https://smsapi.cn-north-4.myhuaweicloud.com:443 签名名称 华为云短信测试 登录管理控制台,从国内短信“签名管理”页面获取。 须知: 请根据“所属应用”关联获取。当模板ID指定的模板类型为通用模板时,必须准备签名名称。 申请短信签名 签名通道号 csms12345678 模板ID 8ff55eac1d0b478ab3c06c3c6a492300 登录管理控制台,从国内短信“模板管理”页面获取。 须知: 请根据“所属应用”和“所属签名”关联获取。发送分批短信时,可以指定多个模板ID。 申请短信模板 访问URI 发送短信:/sms/batchSendSms/v1 发送分批短信:/sms/batchSendDiffSms/v1 从发送短信API/发送分批短信API页面中的“接口类型”介绍部分获取。 发送短信 发送分批短信 上表中的参数,除“访问URI”为固定值外,其他参数请根据对应的获取方式到控制台获取,取值样例仅为示例。 准备的数据与短信API请求参数关联关系如下: 如有任何疑问,请联系 华为云智能客服,将有专人为您解答。