短信发送
要从 Witime 发送短信,请使用以下参数。
EndPoint https://sms.witi.me/sms/send.aspx?chave=API_KEY
Method POST
Input 包含要发送消息集合的 JSON
Response 包含发送调度结果的 JSON
API 密钥可在 SMS > SMS Settings 菜单中找到。
:::danger 新功能 我们接受主要格式的请求,如 Zenvia、Movile、Twilio 等。详情请参阅 输入格式。 :::
CURL 示例
curl --location 'https://sms.witi.me/sms/send.aspx?chave=API_KEY&type=short&to=%2B5511987654321&msg=test%2Bmessage'
:::note 注意
在进行 CURL 调用之前,请替换 API_KEY 变量。
:::
:::note 注意
要测试其他路由,请在 CURL 调用中添加参数 &route=X。要查看活跃路由,请转到 SMS Settings > Preferred Route。
:::
异步短信发送
异步发送允许更快地发送消息,只需在端点中添加参数 async=true:
EndPoint https://sms.witi.me/sms/send.aspx?chave=API_KEY&async=true
:::tip 提示
保存 API 返回的 Key 以便稍后 检查异步批次状态。
:::
输入
Root 类
| 属性 | 内容 |
|---|---|
| tipo_envio | common | token | debug 默认: common |
| referencia | 发送名称以供参考,可选。 |
| rota | 用于发送短信的路由。如果未提供,使用默认路由。 |
| mensagens | 消息数组 |
Messages 类
| 属性 | 内容 |
|---|---|
| numero | 包含要发送消息的目标号码,格式为区号 + 号码 |
| mensagem | 消息文本 |
| DataAgendamento | 消息应该发送的日期和时间。 |
| Codigo_cliente | 自定义代码,可自由填写。 |
| template | 要发送的模板代码,代替 'message' 字段。 |
| TemplateWEBID | 要发送的模板的 WebId,代替 'message' 字段。 |
输入示例:
{
"tipo_envio": "common",
"reference": "api send",
//"rota": 99,
"mensagens": [
{
"numero": "11999999999",
"mensagem": "test message 1",
"DataAgendamento": "2020-07-26 14:30:00",
"Codigo_cliente": "0000001"
},
{
"numero": "11999999998",
"mensagem": "test message 2",
"DataAgendamento": "2020-07-26 14:30:00",
"Codigo_cliente": "0000002"
}
]
}
:::danger 注意路由 不要忘记告知所需的路由(在上述代码中已注释)。或在 SMS Settings 菜单中设置默认路由。 :::
输入示例(模板):
{
"tipo_envio": "common",
"referencia": "api send",
//"route": 99,
"mensagens": [
{
"template": 123,
"number": "11999999999"
},
{
"TemplateWEBID": "4095a269-5d88-4bbb-9ff4-db33404d4f52",
"number": "11999999998"
},
]
}
输出
响应将是具有以下特征的 JSON。
Root 类
| 属性 | 内容 |
|---|---|
| CodigoResultado | 0 (零) 如果一切正确 其他值 如果有任何错误 |
| Mensagem | 状态描述 |
| Chave | 此发送批次的唯一标识密钥。 |
| Cobrado | true 或 false |
| ValorCobrado | 发送费用 |
Messages 类
| 属性 | 内容 |
|---|---|
| numero | 包含要发送消息的目标号码,格式为区号 + 号码 |
| Mensagem | 消息文本 |
| UniqueID | 此单个消息的唯一标识号。 |
| DataAgendamento | 消息应该发送的日期和时间。 |
| Custo | 单个消息成本 |
| IdDisparo | 如果提供了 "reference" 值,包含发送的唯一参考号。 |
| Situacao | 根据消息状态的代码: 0 等待 1 准备发送 2 已发送到 API3 已屏蔽4 未发送到 API5 已取消调度6 未发送且未计费7 已拒绝8 HLR 已屏蔽9 发送错误10 已确认投递11 已回复 12 已返回(未发送) 13 因余额不足而拒绝15 审核中16 在路由中17 快速发送已屏蔽18 快速发送已暂停19 处理中20 标记为无效21 排队中22 暂停23 SMPP 拼接中24 标记为等待余额退款42 重定向到队列96 临时投递状态97 取消完成98 已请求取消99 其他错误101 禁止发送105 工作中106 已发送到工作队列107 在队列中处理 |
| MensagemSituacao | 消息状态的描述性消息 |
| Codigo_cliente | 客户端提供的代码。 |
| Rota | 指示消息的输出路由 |
输出示例:
{
"Resultado": {
"CodigoResultado": 0,
"Mensagem": "Messages sent successfully",
"Chave": "154d1f4d-2856-4913-80f8-084b20f3e9de",
"Cobrado": true,
"ValorCobrado": 0.20
},
"Mensagens": [
{
"numero": "+5511987654321",
"mensagem": "test message 1",
"UniqueID": "31b2c48f-2ea9-4979-a9dd-cbfb927de18f",
"DataAgendamento": "2020-07-26 14:35:08",
"Custo": 0.1000,
"idDisparo": 25,
"Situacao": 1,
"MensagemSituacao": null,
"Codigo_cliente": "0000001",
"Rota": 99
},
{
"numero": "+5511987654321",
"mensagem": "test message 2",
"UniqueID": "f795a269-5d88-4bbb-9ff4-db33404d4f52",
"DataAgendamento": "2020-07-26 14:35:08",
"Custo": 0.1000,
"idDisparo": 26,
"Situacao": 1,
"MensagemSituacao": null,
"Codigo_cliente": "0000002",
"Rota": 99
}
],
"Saldo": 5310.94
}
短信状态
检查异步批次
返回异步批次的状态。
EndPoint https://sms.witi.me/sms/consultalote.aspx?chave=API_KEY&batch=BATCH_KEY
Method GET
Response 包含消息状态的 JSON
简单检查
根据提供的 ID 返回消息的当前状态。
EndPoint https://sms.witi.me/sms/getstatus.aspx?chave=API_KEY&messageid=MESSAGE_ID
SMPP EndPoint https://sms.witi.me/sms/getstatus.aspx?chave=API_KEY&messageid=MESSAGE_ID&type=smpp
Method GET
Response 包含消息状态的 JSON
批次检查
根据提供的消息列表返回状态。
EndPoint https://sms.witi.me/sms/getstatus.aspx?chave=API_KEY
SMPP EndPoint https://sms.witi.me/sms/getstatus.aspx?chave=API_KEY&type=smpp
Method POST
Input 包含消息 ID 的 JSON 列表
Response 包含消息状态的 JSON
输入示例:
[
"c6f5fd19-124a-4035-983a-471e3c448183",
"2185b568-537c-4702-bc38-a29009aa91c7",
"f586866a-d16a-43c7-98ee-7b86421251d5"
]
]
SMPP 输入示例:
[
"2145172767744231",
"3019283749203872",
"6018023984723650"
]
响应示例:
{
"Resultado": {
"CodigoResultado": 0,
"Mensagem": "Data returned successfully, 3 records",
"Chave": "225f93c6-9a11-49ab-ad52-064cf509cae0",
"Cobrado": false,
"ValorCobrado": 0.0
},
"Mensagens": [
{
"IdEmpresa": 14274,
"IdCallback": 437526,
"Tipo": "DLR",
"IdMensagem": "c6f5fd19-124a-4035-983a-471e3c448183",
"Situacao": 10,
"IdRota": 0,
"IdDisparo": 9258,
"CodOper": 0,
"Mensagem": "By providing the token 488861 you confirm that you have read and agree...",
"Tag": null,
"Cliente_ref": "15||209||0",
"DataSituacao": "2021-11-11T16:01:56.86",
"DataDespacho": "2021-11-11T15:59:05.097",
"DataEntregue": "2021-11-11T16:01:56.923",
"DataResposta": "0001-01-01T00:00:00",
"Remote_Dlr_time": "2021-11-11T16:01:56.86",
"Remote_status": "4-DELIVERE",
"Callback_data_execucao": "2021-11-11T16:02:00",
"Callback_post_content": "[{\"Data\":\"2021-11-11T16:01:56.923\",\"Tipo\":\"DLR\",\"MensagemUniqueId\":\"c6f5fd19-124a-4035-983a-471e3c448183\",\"Situacao\":10,\"SituacaoDescricao\":\"Delivered\",\"Mensagem\":null,\"Cliente_ref\":\"15||209||0\"}]",
"Callback_return_content": "",
"Callback_url": "http://my-site.com/messages?id=1",
"Callback_return_code": 200,
"Callback_tempo_ms": 437
},
{
"IdEmpresa": 1,
"IdCallback": 0,
"Tipo": "DLR",
"IdMensagem": "2185b568-537c-4702-bc38-a29009aa91c7",
"Situacao": 10,
"IdRota": 0,
"IdDisparo": 0,
"CodOper": 55320,
"Mensagem": "Marcelo, thank you for talking to our agents.",
"Tag": null,
"Cliente_ref": "",
"DataSituacao": "2021-11-11T16:01:56.86",
"DataDespacho": "2021-11-11T15:59:18.24",
"DataEntregue": "2021-11-11T16:01:56.923",
"DataResposta": "0001-01-01T00:00:00",
"Remote_Dlr_time": "2021-11-11T16:01:56.86",
"Remote_status": "4-DELIVERE",
"Callback_data_execucao": "0001-01-01T00:00:00",
"Callback_post_content": "",
"Callback_return_content": "",
"Callback_url": "",
"Callback_return_code": 0,
"Callback_tempo_ms": 0
},
{
"IdEmpresa": 1,
"IdCallback": 0,
"Tipo": "DLR",
"IdMensagem": "f586866a-d16a-43c7-98ee-7b86421251d5",
"Situacao": 10,
"IdRota": 0,
"IdDisparo": 0,
"CodOper": 55320,
"Mensagem": "Jeferson, thank you for talking to our agents.",
"Tag": null,
"Cliente_ref": "",
"DataSituacao": "2021-11-11T16:01:56.86",
"DataDespacho": "2021-11-11T15:59:10.783",
"DataEntregue": "2021-11-11T16:01:56.923",
"DataResposta": "0001-01-01T00:00:00",
"Remote_Dlr_time": "2021-11-11T16:01:56.86",
"Remote_status": "4-DELIVERE",
"Callback_data_execucao": "0001-01-01T00:00:00",
"Callback_post_content": "",
"Callback_return_content": "",
"Callback_url": "",
"Callback_return_code": 0,
"Callback_tempo_ms": 0
}
],
"Saldo": 5310.94
}
取消短信发送
EndPoint https://sms.witi.me/sms/cancel.aspx?chave=API_KEY
Method POST
Input 包含要取消消息 ID 列表的 JSON
Response 包含发送调度结果的 JSON
:::danger 注意 取消可以在发送前 5 分钟 内完成。 :::
输入
[
"f586866a-d16a-43c7-98ee-7b86421251d5",
"c6f5fd19-124a-4035-983a-471e3c448183",
...
// maximum of 250 messages per request
]
输出
{
"Resultado": {
"CodigoResultado": 0,
"Mensagem": "Messages canceled successfully, 2 records",
"Chave": "325f93a6-9a12-49ab-ad52-064cf509cee0",
"Cobrado": false,
"ValorCobrado": 0.0
},
"Mensagens": [
...
]
}