为了在用户营销模块使用将第三方短信平台,当您进行第三方短信平台开发时,需要遵守下面的各功能接口规范。
短信请求通用参数
URL参数 | 含义 | 示例 |
timestamp | 秒级时间戳 | 1631865523 |
nonce | 32位随机字符串 | 2e6eceb5737b473284c930c8ef79090e |
请求URL示例:
{第三方短信所有接口的url}?timestamp=1631865523&nonce=2e6eceb5737b473284c930c8ef79090e
Header | 含义 | 说明 |
X-QA-Hmac-Signature | 权鉴签名 | 开启权鉴时使用,权鉴方式见下文。 未开启权鉴时,该Header填空字符串""。 |
短信请求权鉴
若短信需要鉴权,在配置第三方短信接口时开启权鉴并填写密钥,参见新建第三方短信平台接口。
QuickAudience会根据用户填写的密钥与URL请求参数timestamp和nonce进行HmacSHA256Hex签名并生成signature,并将此signature通过Request Header传递。您的服务接收到请求后,同样根据URL参数与webhook通道配置的密钥进行HmacSHA256Hex算法加密。如果计算的值与从Request Header中传过来的signature相同,则可以确定是此请求是从QuickAudience发出的,鉴权成功。
参数 | 含义 | 示例 |
key | webhook配置的密钥 | 123456789 |
签名算法示例:
public String makeSignature(String key, String timestamp, String nonce) {
String str = generateStr(key, timestamp, nonce);
return HmacUtils.hmacSha256Hex(key, str.replaceAll("\\s+", ""));
}
/**
* 签名待处理的字符串拼接
*/
public static String generateStr(String key, String timestamp, String nonce){
String[] array = new String[] { key, timestamp, nonce};
StringBuffer sb = new StringBuffer();
// 字符串排序
Arrays.sort(array);
for (int i = 0; i < 3; i++) {
sb.append(array[i]);
}
return sb.toString();
}
1、短信签名审核状态查询接口
接口描述 | 短信签名审核状态查询 | |||
URL | ${prefix}/sms/smsSign/{signName}?timestamp=&nonce= | |||
请求方式 | get | |||
请求类型 | application/json | |||
返回类型 | */* | |||
参数名 | 数据类型 | 参数类型 | 是否必填 | 说明 |
1.signName | string | path | 是 | 短信签名。 |
状态码 | 描述 | 说明 | ||
200 | OK | 请求成功。 | ||
401 | Unauthorized | 请求未经授权。 | ||
403 | Forbidden | 请求被拒绝。 | ||
404 | Not Found | 请求的资源不存在。 | ||
返回属性名 | 类型 | 说明 | ||
1.platformName | string | 短信服务方名称,与接口配置时填写的接口名称一致。 | ||
2.code | string | 请求状态码,200或OK表示成功。 | ||
3.createDate | string | 短信签名的创建日期和时间,如:2019-01-08 16:44:13。 | ||
4.message | string | 状态码描述。 | ||
5.reason | string | 审核备注。如果审核状态为审核通过或审核中,参数Reason显示为“无审核备注”;如果审核状态为审核未通过,参数Reason显示审核的具体原因。 | ||
6.requestId | string | 请求ID。 | ||
7.signName | string | 短信签名。 | ||
8.signStatus | integer(int32) | 签名审核状态。
| ||
示例 | ||||
请求参数 | 无示例 | |||
返回值 | {"reason":"string","code":"string","signName":"string","requestId":"string","signStatus":0,"platformName":"string","message":"string","createDate":"string"} |
2、文本短信模板创建接口
接口描述 | 短信模板审核 | |||
URL | ${prefix}/sms/smsTemplate?timestamp=&nonce= | |||
请求方式 | post | |||
请求类型 | application/json | |||
返回类型 | */* | |||
参数名 | 数据类型 | 参数类型 | 是否必填 | 说明 |
1.remark | string | body | 是 | 短信模板申请说明。在申请说明中描述业务使用场景,长度为1~100个字符。 |
2.templateContent | string | 是 | 模板内容,长度为1~500个字符。 | |
3.templateName | string | 是 | 模板名称,长度为1~30个字符。 | |
4.templateType | string | 是 | 短信类型。
| |
5.creatorAccount | string | 是 | 模板创建人Quick Audience账号,长度为1~255个字符。 | |
状态码 | 描述 | 说明 | ||
200 | OK | 请求成功。 | ||
401 | Unauthorized | 请求未经授权。 | ||
403 | Forbidden | 请求被拒绝。 | ||
404 | Not Found | 请求的资源不存在。 | ||
返回属性名 | 类型 | 说明 | ||
1.platformName | string | 短信服务方名称,与接口配置时填写的接口名称一致。 | ||
2.code | string | 请求状态码,200或OK表示成功。 | ||
3.message | string | 状态码描述。 | ||
4.requestId | string | 请求ID。 | ||
5.templateCode | string | 短信模板code,用于查看模板申请状态和结果。 | ||
示例 | ||||
请求参数 | -d '{"remark":"string","templateContent":"string","templateName":"string","templateSubject":"string","templateType":0,"creatorAccount":"string"}' | |||
返回值 | {"platformName":"string","code":"string","templateCode":"string","message":"string","requestId":"string"} |
3、文本短信模板修改接口
接口描述 | 短信模板修改 | |||
URL | ${prefix}/sms/smsTemplate/{templateCode}?timestamp=&nonce= | |||
请求方式 | put | |||
请求类型 | application/json | |||
返回类型 | */* | |||
参数名 | 数据类型 | 参数类型 | 是否必填 | 说明 |
1.remark | string | body | 是 | 短信模板申请说明。在申请说明中描述业务使用场景,长度为1~100个字符。 |
2.templateContent | string | 是 | 模板内容,长度为1~500个字符。 | |
3.templateName | string | 是 | 模板名称,长度为1~30个字符。 | |
4.templateType | string | 是 | 短信类型。
| |
5.modifierAccount | string | 是 | 模板修改人Quick Audience账号,长度为1~255个字符。 | |
状态码 | 描述 | 说明 | ||
200 | OK | 请求成功。 | ||
401 | Unauthorized | 请求未经授权。 | ||
403 | Forbidden | 请求被拒绝。 | ||
404 | Not Found | 请求的资源不存在。 | ||
返回属性名 | 类型 | 说明 | ||
1.platformName | string | 短信服务方名称,与接口配置时填写的接口名称一致。 | ||
2.code | string | 请求状态码,200或OK表示成功。 | ||
3.message | string | 状态码描述。 | ||
4.requestId | string | 请求ID。 | ||
5.templateCode | string | 短信模板code,用于查看模板申请状态和结果。 | ||
示例 | ||||
请求参数 | -d '{"remark":"string","templateContent":"string","templateName":"string","templateSubject":"string","templateType":0,"modifierAccount":"string"}' | |||
返回值 | {"platformName":"string","code":"string","templateCode":"string","message":"string","requestId":"string"} |
4、短信模板审核状态查询接口
接口描述 | 短信模板审核状态查询 | |||
URL | ${prefix}/sms/smsTemplate/{templateCode}?timestamp=&nonce= | |||
请求方式 | get | |||
请求类型 | application/json | |||
返回类型 | */* | |||
参数名 | 数据类型 | 参数类型 | 是否必填 | 说明 |
1.templateCode | string | path | 是 | 模板code。 |
状态码 | 描述 | 说明 | ||
200 | OK | 请求成功。 | ||
401 | Unauthorized | 请求未经授权。 | ||
403 | Forbidden | 请求被拒绝。 | ||
404 | Not Found | 请求的资源不存在。 | ||
返回属性名 | 类型 | 说明 | ||
1.platformName | string | 服务方名称,与接口配置时填写的接口名称一致。 | ||
2.code | string | 请求状态码,200或OK表示成功。 | ||
3.createDate | string | 模板的创建日期和时间,如:2019-01-08 16:44:13。 | ||
4.message | string | 状态码描述。 | ||
5.reason | string | 审核备注。如果审核状态为审核通过或审核中,参数Reason显示为“无审核备注”;如果审核状态为审核未通过,参数Reason显示审核的具体原因。 | ||
6.requestId | string | 请求ID。 | ||
7.templateCode | string | 模板code。 | ||
8.templateContent | string | 模板内容。 | ||
9.templateName | string | 模板名称。 | ||
10.templateStatus | integer(int32) | 模板审核状态。
| ||
11.templateType | integer(int32) | 短信模板类型。
| ||
示例 | ||||
请求参数 | 无示例 | |||
返回值 | {"templateStatus":0,"templateType":0,"reason":"string","code":"string","templateName":"string","requestId":"string","templateContent":"string","platformName":"string","templateCode":"string","message":"string","createDate":"string"} |
5、批量短信发送接口1(不建议使用)
本批量短信发送接口通过将手机号码文件存放在OSS来指定要发送的手机号码。后续将逐渐减少使用本接口,转为使用6、批量短信发送接口2(推荐使用)。
接口描述 | 批量短信发送,手机号存储于OSS。 | |||
URL | ${prefix}/sms/sendBatch?timestamp=&nonce= | |||
请求方式 | post | |||
请求类型 | application/json | |||
返回类型 | */* | |||
参数名 | 数据类型 | 参数类型 | 是否必填 | 说明 |
1.limit | integer(int64) | body | 否 | 发送人数限制。 |
2.outId | string | 是 | 外部流水扩展字段。 | |
3.phoneOssUrl | string | 是 | 接收短信的手机号码文件所在的OSS路径。文件格式txt。 国内短信:11位手机号码,例如159********;国际/中国香港、中国澳门和中国台湾消息:国际区号+号码,例如85200******。每个号码一行。变量短信会在每行手机号后面加上变量名称与替换值内容。例如:{"name":"TemplateParamJson","age":"age"}。 | |
4.signName | string | 是 | 短信签名名称。 | |
5.templateCode | string | 是 | 模板code。 | |
6.isVariable | integer(int64) | 是 | 是否是变量短信。
| |
状态码 | 描述 | 说明 | ||
200 | OK | 请求成功。 | ||
401 | Unauthorized | 请求未经授权。 | ||
403 | Forbidden | 请求被拒绝。 | ||
404 | Not Found | 请求的资源不存在。 | ||
返回属性名 | 类型 | 说明 | ||
1.bizId | string | 发送回执ID。 | ||
2.platformName | string | 服务方名称,与接口配置时填写的接口名称一致。 | ||
3.code | string | 请求状态码,200或OK表示成功。 | ||
4.message | string | 状态码描述。 | ||
5.requestId | string | 请求ID。 | ||
示例 | ||||
请求参数 | -d '{"limit":0,"outId":"string","phoneOssUrl":"string","signName":"string","templateCode":"string","isVariable":"string"}' | |||
返回值 | {"bizId":"string","platformName":"string","code":"string","message":"string","requestId":"string"} |
6、批量短信发送接口2(推荐使用)
本批量短信发送接口直接发送手机号码列表。
接口描述 | 批量短信发送 | |||
URL | ${prefix}/sms/sendBatchList?timestamp=&nonce= | |||
请求方式 | post | |||
请求类型 | application/json | |||
返回类型 | */* | |||
参数名 | 数据类型 | 参数类型 | 是否必填 | 说明 |
1.limit | integer(int64) | body | 否 | 发送人数限制。 |
2.outId | string | 是 | 外部流水扩展字段。 | |
3.phoneNumberJson | List | 是 | 接收短信的手机号码列表。例如:["1390000****","1390001****"]。(备注:****为本文档脱敏使用,实际使用过程中请使用11位明文数字手机号) | |
4.templateParamJson | string | 否 | 短信模板变量对应的实际值列表。例如:[{"name":"aaa","age":123},{"name":"bbb","age":456}]。 一个{}内为一个手机号对应的所有变量值,顺序与手机号相同。 | |
5.signName | string | 是 | 短信签名名称。 | |
6.templateCode | string | 是 | 模板code。 | |
7.relatedAudienceId | string | 否 | 关联人群ID,当关联营销活动类型为自动化营销活动时,如果是行为事件组件开始的活动,则人群ID传null;如果是目标人群组件开始的活动,人群ID可能存在多个,多个之间用“,”分隔。注意:仅为关联的人群ID,不表示真实短信发送的数量。 | |
8.relatedTaskId | string | 否 | 关联营销活动ID。 | |
9.relatedTaskType | integer(int64) | 否 | 关联营销活动类型。
| |
10.taskCreatorAccount | string | 否 | 关联营销活动创建人Quick Audience账号,最大长度为36个字符。 | |
状态码 | 描述 | 说明 | ||
200 | OK | 请求成功。 | ||
401 | Unauthorized | 请求未经授权。 | ||
403 | Forbidden | 请求被拒绝。 | ||
404 | Not Found | 请求的资源不存在。 | ||
返回属性名 | 类型 | 说明 | ||
1.bizId | string | 发送回执ID。 | ||
2.platformName | string | 服务方名称,与接口配置时填写的接口名称一致。 | ||
3.code | string | 请求状态码,200或OK表示成功。 | ||
4.message | string | 状态码描述。 | ||
5.requestId | string | 请求ID。 | ||
示例 | ||||
请求参数 | -d '{"limit":0,"relatedAudienceId":"string","relatedTaskId":"string","relatedTaskType":1,"taskCreatorAccount":"string","outId":"string","signName":"string","templateCode":"string","phoneNumberJson":["1390000****","1390001****"],"templateParamJson":[{"name":"aaa","age":123},{"name":"bbb","age":456}]}' (备注:手机号中****为本文档脱敏使用,实际使用过程中请使用11位明文数字手机号) | |||
返回值 | {"bizId":"string","platformName":"string","code":"string","message":"string","requestId":"string"} |
7、创建数字短信模板接口
本批量短信发送接口直接发送手机号码列表。
接口描述 | 数字短信模板创建 | |||
URL | ${prefix}/sms/digitalSmsTemplate?timestamp=&nonce= | |||
请求方式 | post | |||
请求类型 | application/json | |||
返回类型 | */* | |||
参数名 | 数据类型 | 参数类型 | 是否必填 | 说明 |
1.remark | string | body | 是 | 短信模板申请说明。在申请说明中描述业务使用场景,长度为1~100个字符。 |
2.templateContent | string | 是 | 模板内容,是一个列表,包含文本、图片、视频。列表中每个元素是key-value。如:"[{"fileSuffix":"jpg","fileName":"文件名称","fileSize":"23","fileContents":"url","index","1"},{"fileSuffix":"txt","fileName":"","fileSize":"10","fileContents":"文字","index","2"}]" | |
3.templateTheme | string | 是 | 模板主题,长度为1~30个字符。 | |
4.smsSignName | 是 | 短信签名 | ||
5.creatorAccount | string | 是 | 模板创建人Quick Audience账号,长度为1~255个字符。 | |
6.isVariable | boolean | 是 | 是否带变量。true为含变量模板,false为不含变量模板 | |
状态码 | 描述 | 说明 | ||
200 | OK | 请求成功。 | ||
401 | Unauthorized | 请求未经授权。 | ||
403 | Forbidden | 请求被拒绝。 | ||
404 | Not Found | 请求的资源不存在。 | ||
返回属性名 | 类型 | 说明 | ||
1.platformName | string | 短信服务方名称,与接口配置时填写的接口名称一致。 | ||
2.code | string | 请求状态码,200或OK表示成功。 | ||
3.message | string | 状态码描述。 | ||
4.requestId | string | 请求ID。 | ||
5.templateCode | string | 短信模板code,用于查看模板申请状态和结果。 | ||
示例 | ||||
请求参数 | -d '{"remark":"string","templateContent":"[{"fileSuffix":"jpg","fileName":"文件名称","fileSize":"23","fileContents":"url","index","1"},{"fileSuffix":"txt","fileName":"","fileSize":"10","fileContents":"文字","index","2"}]","templateTheme":"string","templateSubject":"string","creatorAccount":"string","isVariable":true}' 备注:templateContent是list转成的String,fileSuffix是文件后缀,fileName是文件名称, fileSize是文件大小,fileContents是文件内容(文本就是文本,图片视频音频则是QA的公网可访问的oss地址,有效期一年,可以根据这个url下载),index是文件的顺序。 | |||
返回值 | {"platformName":"string","code":"string","templateCode":"string","message":"string","requestId":"string"} |
8、编辑数字短信模板接口
接口描述 | 数字短信模板创建 | |||
URL | ${prefix}/sms/digitalSmsTemplate/{templateCode}?timestamp=&nonce= | |||
请求方式 | put | |||
请求类型 | application/json | |||
返回类型 | */* | |||
参数名 | 数据类型 | 参数类型 | 是否必填 | 说明 |
1.remark | string | body | 是 | 短信模板申请说明。在申请说明中描述业务使用场景,长度为1~100个字符。 |
2.templateContent | string | 是 | 模板内容,是一个列表,包含文本、图片、视频。列表中每个元素是key-value。如:"[{"fileSuffix":"jpg","fileName":"文件名称","fileSize":"23","fileContents":"url","index","1"},{"fileSuffix":"txt","fileName":"","fileSize":"10","fileContents":"文字","index","2"}]" | |
3.templateTheme | string | 是 | 模板主题,长度为1~30个字符。 | |
4.smsSignName | 是 | 短信签名 | ||
5.creatorAccount | string | 是 | 模板创建人Quick Audience账号,长度为1~255个字符。 | |
6.isVariable | boolean | 是 | 是否带变量。true为含变量模板,false为不含变量模板 | |
状态码 | 描述 | 说明 | ||
200 | OK | 请求成功。 | ||
401 | Unauthorized | 请求未经授权。 | ||
403 | Forbidden | 请求被拒绝。 | ||
404 | Not Found | 请求的资源不存在。 | ||
返回属性名 | 类型 | 说明 | ||
1.platformName | string | 短信服务方名称,与接口配置时填写的接口名称一致。 | ||
2.code | string | 请求状态码,200或OK表示成功。 | ||
3.message | string | 状态码描述。 | ||
4.requestId | string | 请求ID。 | ||
5.templateCode | string | 短信模板code,用于查看模板申请状态和结果。 | ||
示例 | ||||
请求参数 | -d '{"remark":"string","templateContent":"[{"fileSuffix":"jpg","fileName":"文件名称","fileSize":"23","fileContents":"url","index","1"},{"fileSuffix":"txt","fileName":"","fileSize":"10","fileContents":"文字","index","2"}]","templateTheme":"string","templateSubject":"string","creatorAccount":"string","isVariable":true}' 备注:templateContent是list转成的String,fileSuffix是文件后缀,fileName是文件名称, fileSize是文件大小,fileContents是文件内容(文本就是文本,图片视频音频则是QA的公网可访问的oss地址,有效期一年,可以根据这个url下载),index是文件的顺序。 | |||
返回值 | {"platformName":"string","code":"string","templateCode":"string","message":"string","requestId":"string"} |
9、删除数字短信模板接口
接口描述 | 数字短信模板创建 | |||
URL | ${prefix}/sms/digitalSmsTemplate/{templateCode}?timestamp=&nonce= | |||
请求方式 | delete | |||
请求类型 | application/json | |||
返回类型 | */* | |||
参数名 | 数据类型 | 参数类型 | 是否必填 | 说明 |
templateCode | string | 是 | 模板code。创建模板时返回的code | |
状态码 | 描述 | 说明 | ||
200 | OK | 请求成功。 | ||
401 | Unauthorized | 请求未经授权。 | ||
403 | Forbidden | 请求被拒绝。 | ||
404 | Not Found | 请求的资源不存在。 | ||
返回属性名 | 类型 | 说明 | ||
1.platformName | string | 短信服务方名称,与接口配置时填写的接口名称一致。 | ||
2.code | string | 请求状态码,200或OK表示成功。 | ||
3.message | string | 状态码描述。 | ||
4.requestId | string | 请求ID。 | ||
5.templateCode | string | 短信模板code,用于查看模板申请状态和结果。 | ||
示例 | ||||
请求参数 | 无示例 | |||
返回值 | {"platformName":"string","code":"string","templateCode":"string","message":"string","requestId":"string"} |
10、数字短信模板审核状态查询接口
接口描述 | 短信模板审核状态查询 | |||
URL | ${prefix}/sms/digitalSmsTemplate/{templateCode}?timestamp=&nonce= | |||
请求方式 | get | |||
请求类型 | application/json | |||
返回类型 | */* | |||
参数名 | 数据类型 | 参数类型 | 是否必填 | 说明 |
1.templateCode | string | path | 是 | 模板code。 |
状态码 | 描述 | 说明 | ||
200 | OK | 请求成功。 | ||
401 | Unauthorized | 请求未经授权。 | ||
403 | Forbidden | 请求被拒绝。 | ||
404 | Not Found | 请求的资源不存在。 | ||
返回属性名 | 类型 | 说明 | ||
1.platformName | string | 服务方名称,与接口配置时填写的接口名称一致。 | ||
2.code | string | 请求状态码,200或OK表示成功。 | ||
3.createDate | string | 模板的创建日期和时间,如:2019-01-08 16:44:13。 | ||
4.message | string | 状态码描述。 | ||
5.reason | string | 审核备注。如果审核状态为审核通过或审核中,参数Reason显示为“无审核备注”;如果审核状态为审核未通过,参数Reason显示审核的具体原因。 | ||
6.requestId | string | 请求ID。 | ||
7.templateCode | string | 模板code。 | ||
8.supportFactory | string | 各运营商的审核状态,是个map,key为运营商的名称,比如联通是UNICOM、移动是MOBILE、电信是TELCOM。如:{"UNICOM":"成功","MOBILE":"失败原因","TELCOM":"失败原因"} | ||
9.templateName | string | 模板名称。 | ||
10.templateStatus | integer(int32) | 模板审核状态。
| ||
示例 | ||||
请求参数 | 无示例 | |||
返回值 | {"templateStatus":0,"reason":"string","code":"string","templateName":"string","requestId":"string","supportFactory":"{"UNICOM":"成功","MOBILE":"失败原因","TELCOM":"失败原因"}","platformName":"string","templateCode":"string","message":"string","createDate":"string"} |
11、数字短信批量发送接口
本批量短信发送接口直接发送手机号码列表。
接口描述 | 批量短信发送 | |||
URL | ${prefix}/sms/sendDigitalBatchList?timestamp=&nonce= | |||
请求方式 | post | |||
请求类型 | application/json | |||
返回类型 | */* | |||
参数名 | 数据类型 | 参数类型 | 是否必填 | 说明 |
1.limit | integer(int64) | body | 否 | 发送人数限制。 |
2.outId | string | 是 | 外部流水扩展字段。 | |
3.phoneNumberJson | List | 是 | 接收短信的手机号码列表。例如:["1390000****","1390001****"]。(备注:手机号中****为本文档脱敏使用,实际使用过程中请使用11位明文数字手机号) | |
4.templateParamJson | string | 否 | 短信模板变量对应的实际值列表。例如:[{"name":"aaa","age":123},{"name":"bbb","age":456}]。 一个{}内为一个手机号对应的所有变量值,顺序与手机号相同。 | |
5.signName | string | 是 | 短信签名名称。 | |
6.templateCode | string | 是 | 模板code。 | |
7.relatedAudienceId | string | 否 | 关联人群ID,当关联营销活动类型为自动化营销活动时,如果是行为事件组件开始的活动,则人群ID传null;如果是目标人群组件开始的活动,人群ID可能存在多个,多个之间用“,”分隔。注意:仅为关联的人群ID,不表示真实短信发送的数量。 | |
8.relatedTaskId | string | 否 | 关联营销活动ID。 | |
9.relatedTaskType | integer(int64) | 否 | 关联营销活动类型。
| |
10.taskCreatorAccount | string | 否 | 关联营销活动创建人Quick Audience账号,最大长度为36个字符。 | |
状态码 | 描述 | 说明 | ||
200 | OK | 请求成功。 | ||
401 | Unauthorized | 请求未经授权。 | ||
403 | Forbidden | 请求被拒绝。 | ||
404 | Not Found | 请求的资源不存在。 | ||
返回属性名 | 类型 | 说明 | ||
1.bizId | string | 发送回执ID。 | ||
2.platformName | string | 服务方名称,与接口配置时填写的接口名称一致。 | ||
3.code | string | 请求状态码,200或OK表示成功。 | ||
4.message | string | 状态码描述。 | ||
5.requestId | string | 请求ID。 | ||
示例 | ||||
请求参数 | -d '{"limit":0,"relatedAudienceId":"string","relatedTaskId":"string","relatedTaskType":1,"taskCreatorAccount":"string","outId":"string","signName":"string","templateCode":"string","phoneNumberJson":["1390000****","1390001****"],"templateParamJson":[{"name":"aaa","age":123},{"name":"bbb","age":456}]}' (备注:手机号中****为本文档脱敏使用,实际使用过程中请使用11位明文数字手机号) | |||
返回值 | {"bizId":"string","platformName":"string","code":"string","message":"string","requestId":"string"} |
12、短信发送明细查询接口(不推荐使用)
说明:此接口不推荐使用,推荐使用下面的接口13、短信回执主动推送(推荐使用)。
接口描述 | 短信发送明细查询 | |||
URL | ${prefix}/sms/sendDetails?timestamp=&nonce= | |||
请求方式 | post | |||
请求类型 | application/json | |||
返回类型 | */* | |||
参数名 | 数据类型 | 参数类型 | 是否必填 | 说明 |
1.outId | string | body | 是 | 外部流水扩展字段。 |
2.currentPage | integer(int64) | 是 | 分页查看发送记录,指定发送记录的当前页码。 | |
3.pageSize | integer(int64) | 是 | 分页查看发送记录,指定每页显示的短信记录数量。取值范围为1~1000。 | |
4.startDate | string | 是 | 起始时间,与结束时间的跨度不能超出30天,格式yyyy-MM-dd HH:mm:ss。 | |
5.endDate | string | 是 | 结束时间,与起始时间的跨度不能超出30天,格式yyyy-MM-dd HH:mm:ss。 | |
状态码 | 描述 | 说明 | ||
200 | OK | 请求成功。 | ||
401 | Unauthorized | 请求未经授权。 | ||
403 | Forbidden | 请求被拒绝。 | ||
404 | Not Found | 请求的资源不存在。 | ||
返回属性名 | 类型 | 说明 | ||
1.platformName | string | 短信服务方名称,与接口配置时填写的接口名称一致 | ||
2.code | string | 请求状态码,200或OK表示成功。 | ||
3.message | string | 状态码描述。 | ||
4.requestId | string | 请求ID。 | ||
5.sendDetailDTOs | array:SmsSendDetailDTO | 短信发送明细。 | ||
5.1.content | string | 短信内容。 | ||
5.2.errCode | string | 运营商短信状态码。短信发送成功:DELIVERED。短信发送失败:给出错误码。 | ||
5.3.outId | string | 外部流水扩展字段。 | ||
5.4.phoneNum | string | 接收短信的手机号码。 | ||
5.5.receiveDate | string | 短信接收日期和时间。 | ||
5.6.sendDate | string | 短信发送日期和时间。 | ||
5.7.sendStatus | integer(int64) | 短信发送状态。
| ||
5.8.templateCode | string | 短信模板ID。 | ||
6.totalCount | integer(int32) | 短信发送总条数。 | ||
示例 | ||||
请求参数 | -d '{"outId":"string","currentPage":0,"pageSize":0,"startDate":"string","endDate":"string"}' | |||
返回值 | {"platformName":"string","code":"string","message":"string","totalCount":0,"requestId":"string","sendDetailDTOs":[{"content":"string","errCode":"string","outId":"string","phoneNum":"string","receiveDate":"string","sendDate":"string","sendStatus":0,"templateCode":"string"}]} |
13、短信回执主动推送(推荐使用)
说明:
1、文本和数字的回执都可以使用此回调
2、一次接口调用,入参中回执列表的outId需一致
3、需要使用密钥、timestamp、nonce计算签名,填到header中。鉴权失败达到上限后,会拉黑IP。
URL:
环境前缀+/restapi/marketing2/third/sms/callback/send/details?timestamp=xxx&nonce=xxx
URL参数说明:
参数 | 类型 | 说明 |
环境前缀 | String | 回调到QA的地址。 |
timestamp | String | 时间戳。与nonce结合使用,用于防止请求重放攻击。 |
nonce | String | 随机数。与timestamp结合使用,用于防止请求重放攻击。 |
Header:
Header | 含义 | 说明 |
X-QA-Hmac-Signature | 权鉴签名 | 开启权鉴时使用,权鉴方式见下文。 未开启权鉴时,该Header填空字符串""。 |
Body:
{
"thirdSmsSendDetailModelList":[
{
"outId":"三方短信发送时传递的outId",
"phoneNum":"手机号",
"sendStatus":"短信发送状态,1:发送失败,2:发送成功",
"sendDate":"短信发送时间,格式为yyyy-MM-dd HH:mm:ss",
"receiveDate":"短信回执接收到的时间,格式为yyyy-MM-dd HH:mm:ss",
"errCode":"短信发送失败后的状态码",
"message":"短信发送失败后的错误信息"
}
]
}
14、短信上行回复消息回调接口
说明:
1、文本和数字的回执都可以使用此回调
URL:
环境前缀+/restapi/marketing2/third/sms/callback/send/reply?timestamp=xxx&nonce=xxx
URL参数说明:
参数 | 类型 | 说明 |
环境前缀 | String | 回调到QA的地址。 |
timestamp | String | 时间戳。与nonce结合使用,用于防止请求重放攻击。 |
nonce | String | 随机数。与timestamp结合使用,用于防止请求重放攻击。 |
Header:
Header | 含义 | 说明 |
X-QA-Hmac-Signature | 权鉴签名 | 开启权鉴时使用,权鉴方式见下文。 未开启权鉴时,该Header填空字符串""。 |
body:
{
"thirdSmsSendReplyModelList":[
{
"outId":"三方短信发送时传递的outId",
"phoneNum":"手机号",
"sendTime":"回复时间,格式为yyyy-MM-dd HH:mm:ss",
"content":"回复内容"
}
]
}