跳转至

回调通知(Webhook)配置指南

概述

回调通知(Webhook)提供一种实时事件推送机制。当传真任务状态发生变化时,系统会主动向您配置的回调地址发送 HTTP POST 请求,通知您任务的最新状态和详细信息。

使用 Webhook 可以避免频繁轮询 API,实现更高效、实时的状态监控。

API 端点: http://api.globfax.com

快速开始

1. 设置回调地址

  1. 登录 GlobFax 管理后台。
  2. 进入「开发者」菜单 → 「API 设置」页面。
  3. 在「回调网址(Webhook Url)」字段填写完整的回调地址。
  4. 点击保存,完成配置。

回调地址示例:

http://example.com/api/globfax-webhook
https://yourdomain.com/webhook/fax-notifications

2. 查看通知历史

进入「开发者」菜单 → 「回调通知」页面,可以查看所有历史通知记录,包括发送状态和响应详情。

回调地址要求

  • 必须是公网可访问的 HTTP/HTTPS 地址。
  • 地址长度不超过 255 个字符。
  • 服务器必须在 30 秒 内返回响应,否则系统会标记为超时并触发重试。

回调通知格式

请求方式

  • 方法:POST
  • Content-Typeapplication/json
  • 字符编码:UTF‑8
  • 超时时间:30 秒

通知数据结构

{
  "task_ref": "fax_789xyz",
  "name": "2025年2月客户账单",
  "status": "completed",
  "scheduled_at": "2025-02-22 14:30:00",
  "created_at": "2025-02-22 10:00:00",
  "recipients": [
    {
      "rcpt_ref": "rcpt_111aaa",
      "phone_number": "8613812345678",
      "unit_price": 0.5,
      "page_count": 3,
      "charged_amount": 1.5,
      "status": "success",
      "failed_code": null,
      "failed_reason": null,
      "completed_at": "2025-02-22 14:31:20",
      "created_at": "2025-02-22 10:00:00"
    },
    {
      "rcpt_ref": "rcpt_222bbb",
      "phone_number": "8613912345678",
      "unit_price": 0.5,
      "page_count": 3,
      "charged_amount": 1.5,
      "status": "failed",
      "failed_code": "BUSY",
      "failed_reason": "Recipient line is busy",
      "completed_at": "2025-02-22 14:35:10",
      "created_at": "2025-02-22 10:00:00"
    }
  ]
}

字段说明

任务信息

字段名 类型 说明
task_ref string 传真任务唯一标识符
name string 任务名称
status string 任务整体状态:done(已完成)、failed(已失败)
scheduled_at string 预约发送时间(Y‑m‑d H:i:s 格式,未预约则为创建时间)
created_at string 任务创建时间(Y‑m‑d H:i:s 格式)
recipients array[object] 收件人列表,包含所有收件人的详细信息

收件人信息(recipients 数组中的对象)

字段名 类型 说明
rcpt_ref string 收件人唯一标识符
phone_number string 收件人传真号码
unit_price float 单页发送费用(元/页)
page_count int 实际发送页数
charged_amount float 总费用(unit_price × page_count)
status string 收件人发送状态:success(成功)、failed(失败)、canceled(已取消)
failed_code string 失败代码(仅失败状态有效)
failed_reason string 失败原因描述(仅失败状态有效)
completed_at string 发送完成时间(Y‑m‑d H:i:s 格式,未完成则为 null
created_at string 收件人记录创建时间(Y‑m‑d H:i:s 格式)

状态说明

任务整体状态及收件人发送状态的详细定义,请参考 API 概述 中的「状态说明」章节。

处理通知

服务器响应要求

您的回调服务器接收到通知后,必须返回标准的 HTTP 响应:

响应状态码 系统处理方式
200 OK 通知处理成功,系统标记为已送达
4xx/5xx 通知处理失败,系统会根据重试策略重新发送

响应示例

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 23

{"status": "received"}

处理建议

  1. 快速响应:处理逻辑应尽量简单快速,在 3 秒 内返回响应。
  2. 异步处理:如需复杂处理,可先存储通知数据,再异步处理。
  3. 幂等性:确保相同通知多次发送不会导致重复处理。
  4. 验证数据:检查接收到的数据格式和完整性。

重试机制

系统为确保通知可靠送达,内置了以下重试策略:

  • 重试次数:最多 5 次。
  • 重试间隔:指数退避策略,依次为 1、2、3、4、5 分钟。
  • 触发条件:服务器返回 4xx/5xx 状态码,或响应超时(30 秒)。
  • 最终处理:5 次重试均失败后,通知标记为“发送失败”,可在管理后台查看详情。

重试策略详情

关于重试机制的更多说明,请参考 API 概述 中的「频率限制与重试」章节。

测试与调试

1. 配置测试

  • 设置并保存回调地址。
  • 测试通知包含标准的任务数据结构。
  • 确保您的服务器能正确接收并返回 200 响应。

2. 手动测试

  1. 在「回调通知」页面点击「发送测试通知」按钮。
  2. 系统会立即发送一条测试通知到您的回调地址。
  3. 观察服务器接收情况和处理结果。

3. 调试建议

  • 查看日志:在服务器端记录接收到的原始通知数据。
  • 模拟请求:使用 Postman 等工具模拟 Webhook 请求,测试处理逻辑。
  • 监控响应:确保服务器在 3 秒内返回响应,避免超时。
  • 检查网络:确保回调地址公网可访问,无防火墙限制。

常见问题

1. 通知发送频率如何?

  • 每个状态变化事件只发送一次通知。
  • 如果发送失败,系统会按重试策略重新发送(最多 5 次)。
  • 成功送达后不再重复发送相同状态的通知。

2. 如何更改回调地址?

  • 在「API 设置」页面直接修改回调地址并保存。
  • 修改后,系统会发送测试通知验证新地址。
  • 旧地址将不再接收新通知。

3. 重试机制会影响业务吗?

  • 重试机制确保通知的可靠送达。
  • 指数退避策略避免对您的服务器造成压力。
  • 您可以随时在管理后台查看重试状态。

故障排查

如果遇到问题,按以下步骤排查:

  1. 检查配置:确认回调地址配置正确且可公网访问。
  2. 查看日志:检查服务器访问日志,确认是否收到请求。
  3. 验证响应:确保服务器返回正确的 HTTP 状态码(200)。
  4. 检查网络:确认无防火墙或网络策略限制。
  5. 测试连接:使用 curl 或 Postman 手动测试回调地址。

下一步

  • 需要配置回调地址?前往「API 设置」页面。
  • 需要查看历史通知?前往「回调通知」页面。
  • 需要 API 集成?参考其他 API 接口文档。
  • 遇到问题?联系技术支持获取帮助。