API&SDK常见问题

您在使用短信服务API或SDK时,如果遇到疑问后可以参考以下常见问题及处理建议。

AccessKey是否支持调用短信API?

AccessKey是阿里云账号维度,并不固定用于阿里云哪个产品。

如果您是RAM子账号的AccessKey,为对应的RAM子账号授权了哪些产品的权限,对应的AccessKey就可以调用对应产品的API接口。您可以在RAM-用户页面,为账号添加权限,更多操作请参见RAM 用户

国际短信API返回ServiceUnavailable是什么原因?

如果您调用国际短信API接口返回ServiceUnavailable,可能因为您使用了国内短信的域名或模板,

国内短信域名为dysmsapi.aliyuncs.com,国际短信域名为dysmsapi.ap-southeast-1.aliyuncs.com。另外请使用国际短信模板发送短信。

短信服务使用STS鉴权方式初始化账号Client,如何配置和获取securityToken?

您可使用安全令牌的方式进行配置和获取临时身份。

QuerySendDetails接口中的TotalCount字段和控制台中的条数有什么区别?

TotalCount字段指短信发送总条数,是根据您传入的号码查询到的发送记录,控制台发送记录查询页面显示的条数是根据短信发送规则拆分成的短信条数。

短信服务RPC方式中签名生成示例?

该阶段的签名与短信服务发送短信时的签名不同,主要是为了保证API的安全使用,在调用API时阿里云会对每个API请求通过签名(Signature)进行身份验证。具体的签名生成步骤和签名生成示例请参见V3版本请求体&签名机制

短信服务公网IP调用接口提示拒绝访问该怎么办?

建议检查服务器内能否正常ping通和curl dysmsapi.aliyuncs.com ,以及服务器80/443端口是否正常放行。

短信服务下发报错Specified parameter Version is not valid,什么原因?

原因:API的版本号(Version)错误。请确认接口的版本号。

短信服务的API版本号(Version)为2017-05-25。详情请参见集成概览

短信服务下发失败报错黑名单管控,什么原因?

黑名单管控主要指接收短信的号码为黑名单号码,此类号码曾有过退订或投诉记录不支持下发该内容的短信。建议规避该号码重新发送。

短信服务HTTP拼接支持ROA调用机制吗?

若您接入短信服务时无法满足SDK使用条件, 可使用HTTP拼接方式接入,目前HTTP拼接只支持RPC风格,不支持ROA调用机制。详情请参见V3版本请求体&签名机制

短信服务API接口中BizId参数的作用?

BizId指发送回执ID,同一个阿里云账号,每条发送记录对应的BizId是不同的;不同的阿里云账号之间,BizId有极少情况下会相同。BizId作用是调用QuerySendDetails接口时,根据BizId的值来查询具体的发送状态。

短信服务密钥会泄露吗?

短信服务通过AccessKey调用接口发送短信,如果您的AccessKey存在泄露的情况,建议您重新生成AccessKey后,禁用或者删除原AccessKey,删除和禁用前需要确认业务没有使用此AccessKey。更多详情请参见凭据的安全使用方案

短信服务API调用阿里云的IP服务器地址是固定的吗?

短信服务接口对外只提供域名地址形式,没有提供固定的调用IP地址。

请使用全局接入点域名dysmsapi.aliyuncs.com

更多接入点信息请参见服务接入点

短信服务AccessKey和RAM账号有什么区别?

AccessKey是阿里云账号创建的一个访问密钥,调用阿里云API接口时,用来完成账号的身份验证。一个阿里云账号可以创建多个AccessKey。RAM账号是阿里云子账号,需要被主账号授权后才可以正常使用。更多详情请参见RAM 用户AccessKey

短信服务如何查看AccessKey?

您可以在控制台查看AccessKey。其他相关文档请参见创建AccessKey查看RAM用户的AccessKey信息

提交模板时报错SmsContent.Illegal,怎么处理?

短信服务提交模板报错“模板内容非法”,错误码“smscontentillegal”。一般是模板内容含有:特殊符号、中括号、繁体字或错别字、变异字等导致。建议按短信模板规范修改模板内容后再重新提交审核。若还提示错误,请检查您的账号是否存在违反用户协议以及平台管理规则中对内容管制相关规定的行为。更多详情也可查看服务协议

重要

如果出现违法违规或者损害到相关他人权益的,短信服务将保留最终追究的权利!请各会员严格遵守规范要求,加强自身业务安全,发送合规短信。

短信发送失败,返回错误码isv.SMS_TEST_NUMBER_LIMIT,什么原因?

遇到错误提示isv.SMS_TEST_NUMBER_LIMIT,表示只能向已绑定的测试手机号发送短信。如您已将当前接收号码绑定,但仍收到此错误码提示。请根据以下原因及解决方案排查:

原因

  • 接收测试短信号码未在控制台绑定,或绑定过程未完成、未生效。

  • 接口调用与绑定手机号不匹配。

  • 如您在生产环境遇到此错误码,请排查您是否将测试环境与生产环境混淆。

解决方案

  • 通过测试功能发送短信,需要绑定测试手机号才可以发送。

  • 请确认绑定操作已完成并且已生效。有时系统处理或同步可能会有延时。

  • 请检查在API请求或控制台调用中指定的手机号是否与在控制台绑定的测试手机号完全一致,包括国家码和格式。

  • 测试签名和模板(在控制台显示有绿色“测”标记)会限制发送对象仅为已绑定的测试号码。请确保在正式发送短信时使用的是非测试的签名和模板。

完整的错误码列表及原因与解决方案,请参见API错误码

短信服务发送接口是否支持内网调用?

  • 短信服务调用接口都是统一访问阿里云域名发送短信,规范网络环境能正常访问阿里云域名即可,需要公网调用,详情请参见短信服务API文档

  • 如果您的服务器有内网等网络限制无法调通短信接口报错“连接超时”,建议添加短信服务的公网接入地址dysmsapi.aliyuncs.com到白名单;若还是无法发送短信,可以尝试调整本地防火墙配置或者检查连接超时时间是否设置过大。

短信服务接口是否需要相互加白IP?

发送短信的公网调用的接口域名地址为dysmsapi.aliyuncs.com,HTTP调用使用端口为80,HTTPS调用使用端口为443。

调用短信服务的API接口前,您的IP网络不必报备至阿里云侧。只要能ping通dysmsapi.aliyuncs.com即可,其对应的IP段不固定且不定期变更,若您的网络环境特殊,建议您安全策略方面调整为放行该域名。