Skip to content

Taifa 短信发送(SMS v2)接口整理 ​

文档信息 ​

  • 供应商:Taifa Mobile Ltd(肯尼亚 SMS 中间商)
  • 依据:官方 API Reference(Taifa Mobile Ltd - API Reference.html)
  • 厂商页:Taifa Mobile
  • 接入结论:v2(官方推荐,响应与 Legacy PHP 完全一致,切换仅改 Base URL)

1. 环境与认证 ​

项取值
生产 Base URLhttps://api.taifamobile.co.ke
测试 Base URL文档未提供(暂用生产地址 + 不同 API Key 区分,待向供应商确认)
认证API Key(64 位 hex)放 Header h_api_key,无签名
Content-Typeapplication/json
加解密无,明文 JSON over HTTPS
HTTP 状态恒为 200,业务结果看响应体 status_code

认证 Header:

http
h_api_key: 27f904b1f2f929ddeb0d4dab0a44af96bd25b73e9e5d605f
Content-Type: application/json
  • API Key 从控制台 My Account → API Key 获取,每个请求必带;禁止进前端 / 公开仓库。

v2 vs Legacy ​

项Legacy(PHP)v2(推荐)
Base Path/api/sms//v2/sms/
发送/api/sms/sendsms.php/v2/sms/sendsms
余额/api/sms/units.php/v2/sms/units
额外无health、smpp-credentials
响应结构数组 + status_code完全一致

2. 发送短信 ​

http
POST https://api.taifamobile.co.ke/v2/sms/sendsms
h_api_key: <API_KEY>
Content-Type: application/json

入参 ​

字段类型必填说明
mobilestring是目标号码,多个逗号分隔;支持 07xx / 01xx / 254xxxxxxxxx,建议统一 254xxxxxxxxx
sender_namestring是已注册 Sender ID(如 TaifaMobile),未注册返回 1001
messagestring是短信内容,最大 920 字符(6 条 SMS 拼接)
response_typestring否json(默认)/ plain,固定用 json
service_idstring/int否批量发送固定 0;短码业务时为短码服务标识
link_idstring否短码回复场景必填;批量发送留空

号码格式:

格式示例备注
本地 07xx0702739804Safaricom / Airtel / Telkom
本地 01xx0102739804Airtel 短格式
国际254702739804E.164,不带 +

请求示例 ​

bash
curl -X POST https://api.taifamobile.co.ke/v2/sms/sendsms \
  -H "h_api_key: <你的API_KEY>" \
  -H "Content-Type: application/json" \
  -d "{\"mobile\":\"254707556633\",\"sender_name\":\"TaifaMobile\",\"message\":\"Hello from Taifa\",\"response_type\":\"json\"}"

成功响应(数组,每号码一条) ​

json
[
  {
    "status_code": "1000",
    "status_desc": "Success",
    "message_id": "45766",
    "recipient_id": "52532",
    "mobile_number": "254707556633",
    "network_id": "1",
    "message_cost": "1.00",
    "credit_balance": "498.00"
  }
]

成功判断:HTTP 200 且 status_code == "1000"。多接收人时数组多条,需逐条判断。

3. 辅助接口 ​

3.1 查余额 ​

http
GET https://api.taifamobile.co.ke/v2/sms/units
h_api_key: <API_KEY>
json
{
  "credit_balance": "498.00",
  "date": "2026-07-10 12:55:58"
}

3.2 健康检查 ​

http
GET https://api.taifamobile.co.ke/v2/sms/health

部署环境联通性探测用(443 出站 + DNS 解析 api.taifamobile.co.ke)。

3.3 SMPP(可选) ​

  • 高吞吐(千级 TPS)场景走 SMPP,TCP 2775。
  • SMPP 凭据与 REST API Key 相互独立,需 POST /v2/sms/smpp-credentials 单独注册。
  • 常规通知/OTP 场景不需要,默认 REST v2。

4. 全量错误码与重试语义 ​

status_code含义发送结果可重试处理建议
1000SuccessSENT—记录 message_id
1001Invalid sender ID / short codeFAILED否校验 sender_name 注册
1002Network not allowedFAILED否运营商未授权,剔除号码
1003Invalid mobile numberFAILED否校验号码格式
1004Insufficient creditFAILED充值后告警充值,余额恢复可重投
1005Database / internal errorFAILED是重试 1 次,持续联系支持
1006Invalid API key / credentialsFAILED否检查 h_api_key(人工介入)
1007Db connection failedFAILED是重试
1008Db selection failedFAILED是重试
1009Invalid JSON bodyFAILED否校验请求体(客户端 Bug)
1010Request type not supportedFAILED否检查版本/请求方式
1011Account suspended / invalid user stateFAILED否联系支持
1012Mobile number in DNDFAILED否免打扰名单,跳过
1013Invalid API KeyFAILED否同 1006
1014IP not allowedFAILED否补配 IP 白名单

归类速查:

  • SENT:1000
  • FAILED-参数类(不重试):1001 1002 1003 1009 1010 1012
  • FAILED-账户/配置(不重试,告警):1004 1006 1011 1013 1014
  • FAILED-供应商系统(可重试):1005 1007 1008

5. 接入注意事项 ​

  1. 不要用 HTTP 状态码判断成败:恒 200,必须解析 status_code。
  2. 多号码逐条处理:响应是数组,每个号码一条结果,部分失败需按号码明细回传。
  3. 余额监控:预付费模式,建议接 /v2/sms/units 定时巡检 + 1004 告警充值。
  4. 可重试错误码(1005/1007/1008)配重试次数上限,避免打爆供应商。
  5. 敏感信息:API Key 禁止打印日志;短信内容视业务评估脱敏。

接入待确认 ​

编号问题默认假设
Q1是否有独立测试环境 Base URL暂用生产地址 + 不同 API Key 区分
Q2IP 白名单是否必须(1014 暗示存在)默认需要,提前报出口 IP
Q3Rate Limit / QPS 上限暂按保守并发控制
Q4Sender ID 注册流程与审批周期接入前必须完成注册
Q5余额预检(发送前查 units)还是 1004 兜底建议直接发送 + 1004 告警,省一次调用