合通启短信平台微信验证码短信平台签名多少个字符?

短信验证码签名注意事项!
一般来说,短信验证码签名都是在验证码信息的签名,处于信息最前端,让用户一目了然,而且短信验证码签名需要在运营商备案,需要提供企业的营业执照正本或副本复印件(要加盖企业公章);若短信验证码签名侵犯到第三方权益须获得第三方的授权,并将授权委托凭证上传管理中心。
短信验证码签名由“【】”符号+验证码内容组成,签名内容要求2~8个字(由中英文,数字组成,不能包含其他特殊字符,如“+,@,|等”),例如广东第五大道公司短信验证码平台为例,其短信验证码签名为“【广东第五大道】”。
短信验证码签名审核不通过或者签名不正确怎么办呢?广东第五大道短信验证码平台技术总监表示,我们可以请先检查下,企业信息是否审核通过或者是否申请接口试用。造成此问题的原因可能是短信验证码签名和在验证码平台中设置的签名不一致,所以我们可以先检查提交的签名是否和网页版中的签名完全一致
那么短信验证码签名的使用有哪些好处呢?
1、品牌标识,签名可以是发送者的企业名称、品牌名称产品名称等。
2、用户通过签名就可以发送者企业或者品牌、产品进行二次记忆,达到企业宣传的效果。
3、通过短信验证码签名利于企业口碑的宣传,如广东第五大道短信验证码平台(www.d5lu.com)的短信验证码签名为“第五大道”为签名,就可以起到二次宣传和二次营销的效果。
另外建议:由于目前市面上提供短信验证码服务的企业众多,我们企业在选择短信验证码平台的时候,多关注一下短信验证码的到达率、安全性、以及其平台的资质等,确保我们的成本消费物有所值。求速度快的注册短信验证码接口,合通启短信平台量大吗?_百度知道
求速度快的注册短信验证码接口,合通启短信平台量大吗?
我有更好的答案
不错,推荐我有用过,而且成功率有90%,我用过其他平台的都要30秒左右,我现在就一直在用的,接码的速度相当的快,大概10秒
为您推荐:
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。互联网通信
sms_verify
短信模板审核
为确保接入云之讯开放平台短信发送的质量、提高后续运营服务的稳定性,上线前,请开发者按照接入规范对短信相关内容进行仔细检查及测试,对于不符合规范项进行修改。
短信模板填写示例如下,其中内容填写栏 { 数字} 为需要接口替换的内容:
下发给用户终端的短信内容展示效果:
【云之讯】亲爱的用户,感谢您注册云之讯开放平台,您的验证码是分钟内有效)
短信测试规范
1.需按照正式短信模板来创建,不可使用短信测试、测试等非正规的字眼作为签名。
2.需模拟正常的用户行为进行发送,不可针对某一个号码连续发送超过5条以上的短信。
短信模板类型规范
验证码模板
仅支持1-4个参数,每个参数限制在10个字符内,注册、修改密码,绑定手机号等需要使用到验证码的短信,模板类型必须选择验证码模板:
示例1(1个参数):您的验证码为{1},请于3分钟内正确输入。
示例2(2个参数):您的验证码为{1},请于{2}分钟内正确输入。
支持0-4个参数,适用于告知类短信,不得含有优惠折扣、促销、推广、超链接、抢购、购物劵等营销内容,否则将延后审核:
示例:您的订单号是{1},快递小哥已经给您送去了,请注意查收!
会员服务模板
支持0-4个参数,会员服务短信请先完成企业开发者认证,并联系商务人员进行报备,模板内容最后必须加“退订请回复TD”:
示例:尊敬的{1},诚邀您参加本期五一优惠活动,退订请回复TD。
短信签名规范
1.短信签名为用户真实产品名/网站名/公司名,国内短信签名必须含2个或2个以上的汉字,限8个英文字母或8个汉字,国际短信的
短信签名必须是全英文,限8个英文字母;
2.若短信签名侵犯到第三方权益须获得第三方的真实授权资料,并且将授权资料发送至云之讯官方邮箱或联系客服。
短信字数规范
1.短信70个字内按一条计,超过时按每67个字折算条(包含短信签名在内),超过长度短信平台将会自动分割为多条发送;
2.分割后的多条短信将按照具体占用条数计费。
短信内容规范
1.验证码模板内容必须含有至少1个参数,最多支持4个参数,且每个参数限制在10个字符内;
2.通知模板与营销短信模板可无参数,最多支持4个参数;
3.参数“{1}”内必须是数字,须从1开始连续编号,如{1}、{2}等;
4.国内短信内容中的标点符号须为中文符号;
5.国际短信的内容,短信签名,标点符号须是全英文;
6.短信内容中不可出现【】符号,因为短信签名已包含此符号,如重复出现会导致短信无法发送;
7.不支持往同一个手机号连续发送多条短信,如告警通知或其他骚扰轰炸类的短信;
8.会员服务群发类短信请先企业资质认证并联系商务人员进行报备,且内容最后须加“退订请回复TD”;
9.根据国家规定,未经同意私自发送商业类短信,出现违法违规或者损害到相关企业/消费者/用户的权益,云之讯将保留
最终追究的权利。
短信发送规则
1.验证码短信:同一个手机号1分钟内不能超过2条,24小时内不能超过8条。
2.通知短信:同一个手机号1分钟内不能超过2条,24小时内不能超过10条。目前 SendCloud 的短信服务支持验证码, 行业通知和营销短信.
验证码短信:注册密码, 修改密码, 身份有验证等.
行业通知短信:由用户行为触发生产的通知, 如:订单通知, 回复通知等.
营销短信: 向用户统一发送的消息通知等.
目前 SendCloud 对短信业务提供 WEBAPI 的接入方式, 开发者可以利用 SendCloud 提供的 HTTP 接口, 调用 SendCloud 的服务.
使用我们的短信API, 开发者需要创建:
SMS_USER 与 SMS_KEY
SMS_USER是调用接口发信时候的账号
用户可以通过【短信语音】-【发送设置】-【发送授权】来创建 SMS_USER, 同时 SendCloud 会自动生成对应的 SMS_KEY. 目前 SendCloud 只允许拥有一个 SMS_USER.
短信模板, 用户在发送短信之前,必须在前台页面编辑短信内容, 并提交审核. 审核通过后, 通过模板的 ID 调用发送.
SendCloud 支持在短信中使用「变量」.
变量的格式: 首尾使用 % 包围, 即为用户定义的一个变量. 举例:
欢迎使用爱发信. 您的手机验证码是: %code%. # code是变量
变量的用法:
在短信模板中使用变量, 作为占位符
在短信 API 中设置变量的值
SendCloud 会根据请求参数, 来替换短信内容中相应变量的值
变量的值的长度不能超过 32 个字符, 变量的值中不能含有 HTTP 链接
变量的命名规则:
变量名可包含字母(大小写均可)、数字、'_'(下划线)或'-'(中划线)的任意组合,不得出现其他字符
变量名以字母(大小写均可)、数字、'_'(下划线)或'-'(中划线)开头
变量名长度不得超过32个字符
由于短信发送的特殊性, 以及相关的 ISP 机构的审查制度, 短信内容中必须含有能说明发送者身份的签名. 目前, SendCloud 支持在编辑短信模板时添加签名, 并设置签名位置(目前只支持签名在短信尾部).
短信模板必须含有「签名」, 否则不能通过审核. 目前用户只能拥有5个签名.
短信备案是指在短信运营商处进行信息审核,未备案可能影响用户的发信成功率。
用户第一次调用短信接口请求成功后,可在【短信语音】-【发送设置】-【短信备案】中进行短信备案,步骤如下:
第一步,点击下载备案承诺书,打印成为纸质版;
第二步,仔细阅读承诺书,负责人进行签字,并加盖公司公章;
第三步,通过拍照或者扫描的方式,转换为电子版图片,JPG或PDF格式;
第四步,点击上传备案承诺书,上传图片,上传成功后等待审核,SendCloud将在1个工作日内出审核结果。
为减少用户对空号, 停机等手机号码的无效发送, SendCloud 会根据运营商反馈的发送结果来做相应的拦截处理.
所有发送失败的手机号码都会进入拦截列表, 拦截列表记录的字段如下:
手机号码: 拦截的手机号码
拦截时间: 此时间之后的发送会被 SendCloud 拦截
失效时间: 此时间之后的发送恢复正常
原因: 运营商反馈的发送结果明细
不同的失败原因会产生不同的拦截时间, 不同的拦截范围, 详细见下表:
用户是否可删除
发送失败, 手机空号
发送失败, 手机停机
发送失败,手机号码在黑名单
发送失败, 对方占线
发送失败, 无人接听
发送失败, 该模板内容被拦截
发送失败, 手机终端问题
发送失败, 手机不在服务区
发送失败, 手机关机
发送失败, 其他原因
全局拦截: 此条拦截记录会对 SendCloud 所有用户生效.
局部拦截: 此条拦截记录只会对来源用户生效.
用户可以在拦截列表中删除来源是自己的记录, 对于来源不是自己的拦截手机号, 可以在确认手机号通讯正常之后, 联系客服处理.
API 验证机制
短信发送使用数字签名的验证模式. 这种模式能够有效避免密码在传输途中的泄露, 是安全级别很高的一种加密验证方式.
数字签名的验证模式: 调用 API 时, 用户不需要把密码 ( SMS_KEY ) 作为参数明文传输, 而是将数字签名 ( signature ) 作为参数传输给服务器. 服务器端会验证此 signature 的正确性.
生成数字签名 ( signature ) 的方法:
1. 将实际调用API的参数以字母升序(A-Z)排列, 不包括 smsKey 和 signature 字段本身
2. 按照排列之后的顺序, 以 'key=value' + '&' + 'key=value' 的方式连接所有参数,
得到字符串 param_str
3. 以 SMS_KEY + '&' + param_str + '&' + SMS_KEY 的方式得到字符串 sign_str
4. 计算 sign_str 的MD5值 (32位, 不区分大小写), 得到 signature
1. 生成签名时, 参数不要使用 'urlencode'. 在调用 api 时, 才需要对参数做 'urlencode'
2. '&' 是代码中使用的连接符, '+'是文档显示之用
下面提供了一个代码示例 ( python ):
import hashlib
SMS_USER = 'testuser'
SMS_KEY = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
'smsUser': SMS_USER,
'templateId' : 1,
param_keys = list(param.keys())
param_keys.sort()
param_str = ''
for key in param_keys:
param_str += key + '=' + str(param[key]) + '&'
param_str = param_str[:-1]
sign_str = SMS_KEY + '&' + param_str + '&' + SMS_KEY
signature = hashlib.md5(sign_str).hexdigest()
提示: 所有的 API 都支持 HTTPS.
timestamp 时间戳 ( 提升逼格 )
用户可以在每个 API 请求中加入 timestamp 参数, SendCloud 会检查 timestamp 和 服务器当前时间, 如果两者相差大于60秒, 则请求会被拒绝.
用户需要通过调用 API 来获取 SendCloud 服务器的时间戳, 而不是自己的本地时间.
timestamp 参数需要被包含在 signature 中, 参与生成数字签名.
SMSHook 机制
用户将短信、语音请求发送给 SendCloud 之后, SendCloud 会把「请求结果」同步返回给用户, 而短信、语音的「发送结果」和 「其他事件结果」是通过 SMSHook 异步返回给用户的.
SendCloud 为客户提供了一些事件, 客户可以选择关注某些事件
当某事件发生, 就会触发 SendCloud 向客户设置的 URL 发送数据 ( POST )
客户收到数据, 解析出事件和数据, 做后续的处理
目前 SendCloud 支持的事件如下:
请求(request)
送达(deliver)
处理失败(workererror)
发送失败(delivererror)
回复(reply)
用户回复(仅短信有)
用户自行编写 HTTP 服务, 使之能够处理相应的事件, 解析相关数据, 并开放出相应URL
用户在 SendCloud 的 【短信语音】- 【发送设置】-【SMSHook】 中选择关注的事件, 配置接收数据的 URL
注意: 我们会对用户提供的 URL 做检测. 需要此 HTTP 服务能够正确响应 get | post 请求, 并且保证返回的 HTTP 状态码 为 200
数字签名验证
为了确保消息的来源身份是 SendCloud,
你可以选择对 POST 数据的来源进行安全认证. ( 不验证, 直接解析 POST 的数据也可以 ).
安全认证的方法如下:
通过【短信语音】- 【发送设置】-【SMSHook】获取 APP KEY
解析出 POST 数据中的 token, timestamp 和 signature
使用 APP KEY, token 和 timestamp 生成数字签名 signature, 与 POST 数据中的 signature 进行校验 ( 签名算法: )
python 代码示例
import hashlib, hmac
def verify(appkey, token, timestamp, signature):
return signature == hmac.new(
key=appkey,
msg='{}{}'.format(timestamp, token),
digestmod=hashlib.sha256).hexdigest()
Java 代码示例 (依赖 )
import javax.crypto.M
import javax.crypto.spec.SecretKeyS
import org.apache.commons.codec.binary.H
public boolean verify(String appkey, String token, long timestamp,
String signature) throws NoSuchAlgorithmException, InvalidKeyException {
Mac sha256HMAC = Mac.getInstance(&HmacSHA256&);
SecretKeySpec secretKey = new SecretKeySpec(appkey.getBytes(),&HmacSHA256&);
sha256HMAC.init(secretKey);
StringBuffer buf = new StringBuffer();
buf.append(timestamp).append(token);
String signatureCal = new String(Hex.encodeHex(sha256HMAC.doFinal(buf
.toString().getBytes())));
return signatureCal.equals(signature);
php 代码示例
function verify($appkey,$token,$timestamp,$signature){
$hash=&sha256&;
$result=hash_hmac($hash,$timestamp.$token,$appkey);
return strcmp($result,$signature)==0?1:0;
目前 SMSHook 支持的事件类型包括: 请求, 送达, 处理失败, 发送失败, 用户回复.
请求 ( request )
事件类型:"request"
事件类型代码:1
短信(或语音)ID组成的数组
templateId
手机号组成的数组
随机产生的长度为50的字符串
数字签名字符串
预留, 暂不用
POST 数据示例
signature: 9eb24a034bc209b35b64b2a4ec5e894ed513cdc570aaaaa
event: request
userId: 19999
timestamp: 3
eventType: 1
templateId: 29999
message: request
smsUser: smsuser
phones: [&&]
token: nyFltYEluRVvYezFHJW1st2ewb71RVcVDiNN6GqvRnWtgDDDDD
smsIds: [&9_95_1_1_9m8888&]
labelId: 0
送达 ( deliver )
事件类型:"deliver"
事件类型代码:2
短信(或语音)ID
templateId
随机产生的长度为50的字符串
数字签名字符串
预留, 暂不用
POST 数据示例
signature: e784ed3fce422bbc2a2e2d90be7bba7b1689aaaaa
event: deliver
userId: 19999
timestamp: 3
smsUser: smsuser
templateId: 29999
message: Successfully delivered
eventType: 2
token: uBHSaB9Jj7jN7VN05u11jXuDZT4KIvfMnfrHlIxOOekwUaaaaa
smsId: 9_95_1_1_9m8888
labelId: 0
处理失败 ( workererror)
事件类型:"workererror"
事件类型代码:4
encodeMessage
base64编码的消息内容
statusCode
短信(或语音)ID
templateId
随机产生的长度为50的字符串
数字签名字符串
预留, 暂不用
POST 数据示例
event: workererror
eventType: 4
token: O9CDUhNXxw7y23hMCLSpveIS6VTDF7McFr0EMF0XuJleTAAAAA
signature: cddc66d39d357feaeeda165ea004d2fb67be5a1aaaaa
message: smsworker:address in unsubscribe list
encodeMessage: c21zd29ya2VyOmFkZHJlc3MgaW4gdW5zdWJzY3JpYmUgbGlzdA==
userId: 19999
smsUser: smsuser
templateId: 29999
statusCode: 430
smsId: 3_95_1_1_x3rfya$
timestamp: 2
labelId: 0
发送失败 ( delivererror)
事件类型:"delivererror"
事件类型代码:5
encodeMessage
base64编码的消息内容
statusCode
短信(或语音)ID
templateId
随机产生的长度为50的字符串
数字签名字符串
预留, 暂不用
POST 数据示例
event: delivererror
eventType: 5
token: ZqozWAlTLjosjb3yrCDxBttAQyfAdBFo5PxrhF5iGkqbCAAAAA
signature: 13ccf099b2b80a938e3cb7ec0e3c153b2fc8eaaaaa
message: 12
encodeMessage: MTI=
userId: 19999
smsUser: smsuser
statusCode: 500
smsId: 9_95_1_1_o9amg7$
timestamp: 6
labelId: 0
templateId: 29999
回复 (reply)
事件类型:"reply"
事件类型代码:6
templateId
随机产生的长度为50的字符串
数字签名字符串
预留, 暂不用
replyContent
encodeReplyContent
base64编码的回复内容
POST 数据示例
token: bNmTl6jfT0nmX8dnRPiZZzPBrtsnkhrVjd1SZTPyx1UhtbEXvG
timestamp: 6
labelId: 0
replyContent: test_reply
encodeReplyContent: dGVzdF9yZXBseQ==
replyTime:
userId: 19999
templateId: 0
smsUser: smsuser
event: reply
signature: 5ea667531adacf550c30fdcf44fce23fe806a561cc
eventType: 6

我要回帖

更多关于 验证码短信平台 的文章

 

随机推荐