用户没有收到短信怎么处理?
如果发送状态为失败,可结合备注中的失败原因说明进一步排查,常见原因有请求命中了频率控制策略、短信内容格式不正确或手机号已因退订加入免打扰名单中等。
如果发送状态为成功,但备注中提示错误码,请根据具体 错误码 信息进一步排查。
如果发送状态为成功且备注中提示“用户短信接收成功”,但是用户实际并未收到短信,可以从以下几个方面进行排查:
手机关机、欠费或停机:检查手机状态,例如拨打手机确认。
手机号处于免打扰名单状态:确认机主是否投诉过运营商或退订过业务。
手机长时间未关机引起无法正常接收短信:可以尝试重启手机。
手机信号异常引起无法正常接收短信:检查手机信号,必要时可尝试重启手机。
手机收件箱满:可尝试删除多余短信。
手机设置异常或硬件异常引起无法正常接收短信:可尝试修改相关设置或将 SIM 卡换到其他手机上进行测试(双卡手机可交换卡槽测试)。
短信被用户手机中的系统/软件拦截屏蔽:检查屏蔽列表。
调用接口耗时比较长怎么办?
如果发现访问腾讯云短信接口时请求耗时较长,可参考以下方法进行定位:
1. 检查域名解析是否正常,执行
dig sms.tencentcloudapi.com
命令(如果使用 API2.0 版本接口对应执行 dig yun.tim.qq.com
命令),确认是否使用内网 DNS。若是使用内网 DNS,则选择一个就近的同运营商的腾讯云短信 IP 配置 host,排查问题是否解决。如果问题已解决,则说明可能是 DNS 解析卡住或者 DNS 解析跨地域运营商访问引起的时延,建议使用 DNS 代理或配置公网 DNS server。
如果问题未解决,请执行下一步。
2. 检查业务是否使用就近域名
sms.tencentcloudapi.com
接入,可以参考API 服务地址 中的描述,如果业务没有使用就近域名接入,建议修改为就近域名后再排查问题是否解决,如果问题未解决,请执行下一步。3. 检查业务使用哪种连接模式以及是否使用连接池。
如果业务使用单条长连接,根据 HTTP 一应一答的模式,前面的请求卡住会影响该连接上的后续请求。建议优化成“长连接 + 连接池”模式。
如果业务使用短连接,用 netstat 确认本机连接数是否已满。如果连接数已满,建议优化成“长连接 + 连接池”模式。
用 netstat 确认或用 tcpdump 抓包确认连接的 Recv-Q 和 Send-Q 是否存在积压。如果存在积压,建议优化成“长连接 + 连接池”模式。
如果某条连接长时间(90s)没有请求时,为了防止中间网络设备回收该连接,建议请求方先关闭该连接,等下次发起请求且连接池中连接不够用时再新建连接。
为什么用户很久才收到短信?
1. 查看本地记录的请求发送时间和控制台上记录的该短信发送时间,计算两者之间的时间差。
如果时间差较大(例如接近甚至超过10分钟),则可能是因为调用接口有时延,请参考 调用接口耗时比较长 解决。
如果时间差较小,请执行下一步。
2.
在
控制台查询该短信发送时间与状态上报时间,计算两者之间的时间差。如果时间差较大(例如普通短信超过数10秒,营销短信超过5分钟),可能原因有短信内容有敏感词进入人工审核、手机信号不佳或手机处于异常状态(例如欠费或停机)等。
如果时间差较小,可能原因有手机信号不佳或手机处于异常状态(例如关机)等。
3. 如果以上场景都不满足,请咨询 腾讯云短信小助手 。
手机免打扰名单是什么?
目前免打扰名单有以下类型:
退订用户名单,用户主动对短信内容进行退订回复,例如回复“R”、“T”、“N”、“TD”、“退订”、“T退订”、“QX”或“0000”等(不区分大小写),系统收到回复后会将其手机号加入免打扰名单中。再次下发短信时会返回发送失败并备注“1015手机号在免打扰名单库中”,且用户无法成功接收短信。
您可以登录 短信控制台 ,选择通用管理 > 退订用户管理页面提交解除退订状态申请,审核通过后生效。
运营商免打扰名单,该类用户因不同原因被运营商定为免打扰名单。下发短信时会返回发送成功,但是可能会因为被运营商网关拦截或其他原因导致用户无法成功接收短信。
返回1004错误如何处理?
调用腾讯云短信接口发送短信时,如果应答包返回1004错误,可通过以下方式定位解决:
1. 检查发送的请求是否为标准的 JSON 格式,建议您到网上搜索 JSON 格式检查工具进行排查校验。例如,误将单引号当做双引号使用,而标准的 JSON 格式应该是使用双引号。
2. 检查参数名称是否正确。
3. 检查请求的字段类型是否与 API 文档 中描述的字段类型一致。 例如,将 JSON 字符串和 JSON 整型混淆使用(
{"姓名":"小明", "年龄":23}
,"姓名"应为 JSON 字符串,"年龄"应为 JSON 整型)。4. 检查请求的字段的取值是否在 API 文档中描述的取值范围内。 例如,international 字段只能取0或1。
5. 检查对 API 的调用是否与 API 文档描述的一致。 例如,调用群发短信的 API 时,包体的格式不能是单发短信的。
6. 如果仍旧无法解决,请咨询 腾讯云短信小助手。
返回1014错误如何处理?
调用腾讯云短信接口发送短信时,如果应答包返回1014错误,可通过以下方式定位解决:
1. 确认申请的内容模板格式是否正确。例如内容模板中的“{}”为英文的括号,括号中的数字需从1开始连续编号,即{1},{2}等。
2. 确认模板中是否含变量值,若模板中含变量值,则发送短信时需传入变量进行发送,若模板中设置了多个变量值,则发送短信时也应该传入多个变量进行发送。
3. 确认请求内容对应的模板是否审批通过。
4. 确认请求包中 type 参数的值(0表示普通短信,1表示营销短信)与申请的内容模板类型是否一致。
5. 确认请求的内容与申请的内容模板格式是否一致,例如因空格等不可见字符导致不匹配。
6. 如果内容中含有中文,请确认中文需使用 UTF-8 编码。
7. 国内文本短信模板只能发中国大陆手机号,国际/港澳台短信模板只能发境外手机号。
8. 如果仍旧无法解决,请咨询 腾讯云短信小助手。
返回1016错误如何处理?
调用腾讯云短信接口发送短信时,如果应答包返回1016错误,可通过以下方式定位解决:
1. 确认 AppID 和 AppKey 是否正确。
2. 确认手机号码格式是否正确。手机号码正确格式为连续数字,无需输入空格。
3. 确认字段名称是否正确。
返回60008错误如何处理?
调用腾讯云短信接口发送短信时,如果应答包返回60008错误,可通过以下方式定位解决:
1. 如果请求在1s内响应60008错误码,请确认请求格式是否是标准 HTTP 格式。
2. 确认请求的 URL 及 Body 格式是否与 API 相符。
3. 确认请求 Content-Type 是否与包体相符(短信服务应该是
Content-Type: application/json;charset=utf-8
)。4. 确认 DNS 配置是否正常,确保使用的是公网 DNS server。
5. 推荐业务使用 HTTP 长连接并使用连接池,以提升网络质量。
6. 如果仍旧无法解决,请咨询 腾讯云短信小助手。
返回1001(sig 校验失败)错误如何处理?
调用腾讯云短信接口发送短信时,如果应答包返回1001错误,可通过以下方式定位解决:
1. 确认 sig 生成的随机数与 URL 中的随机数是否一致。
2. 确认代码中的 SDK AppID/App Key(SDK AppID 以1400开头)是否填写正确。
3. 确认使用的代码是否跟示例代码一致,检查带入参数生成的 sig 伪代码是否一致。
如何获取短信 API SecretId 和SecretKey?
1. 登录腾讯云管理中心控制台。
2. 前往 云 API 密钥 的控制台页面。
3. 在云 API 密钥页面,单击新建密钥即可以创建一对密钥。
SecretId:用于标识 API 调用者身份,可以简单类比为用户名。
SecretKey:用于验证 API 调用者的身份,可以简单类比为密码。
说明:
用户必须严格保管安全凭证,避免泄露,否则将危及财产安全。如已泄露,请立刻禁用该安全凭证。
短信 SecretId 与 AccessKey ID 是一样的。
如何获取短信 SDK AppID 和 AppKey?
SDK AppID 和 AppKey 是开发者在申请开发新应用时获得的由腾讯云授予的应用程序接入账户和密钥,当您创建应用成功之后即可看到。
SDK AppID:是腾讯云短信应用的唯一标识码,调用短信 API 接口时,需要提供该参数。SDK AppID 获取路径:短信控制台 > 应用管理 > 应用列表。
AppKey:App Key 是用来校验短信发送合法性的密码,与 SDK AppID 对应,需要业务方高度保密,切勿把密码存储在客户端。当API接口使用的是2.0版本(对应域名yun.tim.qq.com)时,需要借助 appkey 调用。
为什么短信状态一直显示发送中?
可能原因如下:
手机端异常,如手机关机、停机、飞行模式或手机终端周围基站信号异常等。若手机端72小时内恢复正常,短信发送成功;若手机端持续异常,返回发送失败。
短信内容异常,触发运营商人工审核,推迟发送。
短信已发送成功,运营商状态回执延迟,一般情况下72小时内返回回执。
腾讯云短信发送后,对方收到信息是否可以回复,回复是否有时间限制?
对方需要在72小时内回复才有效,回复信息支持查看。
是否支持查看或者接收用户回复的信息?
开通腾讯云短信后,发送消息的号码是什么?
国内短信:发送消息的号码13 - 20位,106开头,尾数是运营商的随机号码。
国际/港澳台短信:发送消息不显示号码,统一显示 Qsms 或 Qcloud。
不同的手机在同一时间,是否可以发送不同的短信内容?
可以多进程调用单发接口,实现对不同手机号发送不同短信内容。
发送短信报错,自己排查不出来该怎么办?
短信发送失败,记录提示含有敏感词,但是申请时已通过审核,是什么情况?
短信签名和正文已审核通过,是否每发送一次短信都需要进行审核?
个人认证用户使用控制台的发送功能是需先经过审核后才可以发送的,建议升级为企业认证用户。
给某个号码发送了短信,但是该号码未收到短信且控制台短信发送记录查询不到该号码,该怎么处理?
若是通过控制台发送的,建议检查发送文件里号码是否有其他字符,需要删除多余字符。
若是通过接口发送的,建议查看数据是否有正常请求给腾讯云,是否有响应返回。
境外的服务器是否可以正常发送短信?
境外服务器可以调用接口发送短信,域名就近解析,您可以先用 curl 接口测试。
是否支持短信群发?
是否支持号码去重?
从控制台导入号码,平台会针对相同属性的一批号码自动做去重处理。
在一次发送短信的请求中,平台会校验同一短信内容的接收号码是否存在重复,针对重复号码只会正常发送一条。
是否可以开发票?
为什么预览短信内容时,数字会出现星号?
示例:
尊敬的客户,您充值的1**2元已到账,请在系统查看!
为了确保具体短信内容中敏感信息安全性,控制台会对数字进行加密入库,所以预览时数字会出现星号,但用户接收到的短信是正常显示的。为什么预览短信内容时,变量部分内容是英文或者英文+数字组合的,会出现星号?
示例:
您好,您的订单号已生成,订单号为12w*****234,请及时关注订单配送情况。
为了确保具体短信内容中敏感信息安全性,控制台会对变量部分是纯数字、纯英文、英文+数字的内容进行加密入库,所以预览时,此部分内容会出现星号,但用户接收到的短信是正常显示的。国家(或地区)码分别是多少?
短信发送提示:FailedOperation.SignatureIncorrectOrUnapproved 如何处理?
错误码 FailedOperation.SignatureIncorrectOrUnapproved 表示签名格式错误或者签名未审批,签名只能由中英文、数字组成,要求2 - 12个字,可通过以下方法进行定位:
1. 确认签名已审核通过,请登录 短信控制台,核查签名是否已审批并且审批通过。
2. 发送国内短信必须填写签名,SignName 参数项需填写签名内容而非签名 ID,例如“腾讯云”。
短信发送提示:FailedOperation.TemplateIncorrectOrUnapproved 如何处理?
错误码 FailedOperation.TemplateIncorrectOrUnapproved 表示模板未审批或请求的内容与审核通过的模板内容不匹配,可通过以下方法进行定位:
1. 确认模板已审核通过,请登录 短信控制台,核查模板是否已审批并且审批通过。
2. 需确认模板是否含变量,如有变量需在TemplateParamSet项传入变量参数,例如:1234,若无模板参数,则设置为空。
注意:
模板参数的个数需要与 TemplateId 对应模板的变量个数保持一致,例如模板中含两个变量,则需对应传入两个变量参数。
短信发送提示:UnauthorizedOperation.SmsSdkAppIdVerifyFail 如何处理?
错误码 UnauthorizedOperation.SmsSdkAppIdVerifyFail 表示 SmsSdkAppId 校验失败,请检查 SmsSdkAppId 是否属于云 API 密钥的关联账户,可通过以下方法进行定位:
1. SmsSdkAppId 请在 短信控制台应用列表 中查询。
2. 云 API 密钥 SecretId、SecretKey 请在 云 API 页面 查询。
短信发送提示:UnsupportedOperation.ContainDomesticAndInternationalPhoneNumber 如何处理?
错误码 UnsupportedOperation.ContainDomesticAndInternationalPhoneNumber 表示群发请求里既有国内手机号也有国际手机号。
1. 请排查是否存在:
1.1 使用国内签名或模板却发送国际手机号。
1.2 使用国际签名或模板却发送国内手机号。
2. 发送短信时手机号需添加国家码,如发送国内短信,需+86,例如:+8613711112222
什么是 SenderID?
SenderID 是在收件人手机上显示的消息发件人的名称,企业通过 SenderID 来标识企业的公司名称、产品名或品牌名称。发送国际/港澳台短信之前,您需要向短信接收国家或地区报备 SenderID,填写相关信息并通过审核后,才能发送国际/港澳台短信。SenderID 仅支持字母和数字,建议为用户真实应用名、网站名、公司名。