跳至內容

關於我們

API 簡介


超越訊息發送:您的客戶互動與增長引擎

歡迎來到 WINGSING 開發者中心。我們為您呈現的是一套企業級、多渠道的雲通訊 API,旨在成為您業務增長的核心引擎。我們的 API 設計不僅涵蓋了穩定可靠的全球 SMS 發送,更延伸至完整的營銷活動管理、智能化的聯絡人分群、自動化的帳戶工具,以及前瞻性的語音和驗證碼服務。

我們堅持以開發者體驗為核心,提供遵循 RESTful 原則的接口、純淨的 JSON 數據格式、可預測的行為模式,以及清晰詳盡的文檔。無論您是想提升用戶驗證的安全級別,還是策劃一場複雜的全球營銷活動,WINGSING API 都將是您最可靠的技術夥伴。

平台核心能力

  • 多渠道通訊: 整合 SMS、語音 TTS 及 2FA 驗證碼於一體,觸達不同場景的用戶。

  • 營銷活動管理: 從建立、排程、執行到分析,提供完整的營銷活動生命週期管理。

  • 聯絡人與範本: 透過 API 管理您的聯絡人列表和預審核訊息範本,實現高效營運。

  • 深度分析與洞察: 提供從單則訊息到整個營銷活動的多維度數據報告與統計。

  • 自動化與工具: 以 API 驅動帳戶管理、黑名單同步等,將通訊能力無縫嵌入您的自動化工作流。


核心概念


我們採用業界標準的 API Key 和 API Secret 進行認證。只需在每次 API 請求的 JSON 主體中,附上您在控制台獲取的 api_key 和 api_secret 即可。

請求格式 (Request Format)

我們所有的 API 端點均接受 Content-Type: application/json 的請求。所有 POST / PUT / DELETE 請求的參數都應置於 JSON 主體內。

Webhooks

Webhooks 是實現實時數據同步的關鍵。您可以在控制台設定一個或多個接收端點,並訂閱您感興趣的事件類型(如 sms.status_update, campaign.completed)。當事件觸發時,我們會立即將相關數據 POST 到您的 URL。


WINGSING 雲通訊平台 API 開發文檔 (V2.0)


1. 概述

歡迎使用 WINGSING 雲通訊平台 API。本文件旨在為開發者提供清晰、完整的接口說明,以實現您的應用系統與 WINGSING 平台之間的高效整合。

我們的 API 採用業界通用的 REST 風格設計,同時支持 HTTPHTTPS 協議,並兼容 GETPOST 請求方式。為保障帳戶安全,每次 API 請求均須攜帶 username 和 password 參數,否則將被視為未經授權的請求並被系統拒絕。

API 請求基礎 URL:

  • HTTP: http://%%SERVERIP:PORT%%/api

  • HTTPS: https://%%SERVERIP:PORT%%/api



2. 短信提交接口 (Submit SMS)

此接口用於向 WINGSING 平台提交單則或多則短信以進行發送。

2.1 請求參數說明

必填參數

參數名

類型

描述

username

String

您的 WINGSING 帳戶用戶名。

password

String

您的 WINGSING 帳戶密碼。

command

String

提交短信時,此參數值固定為 "submit"。

ani

String

發送方ID (Sender ID)。字母或字母數字組合長度不超過11位;純數字長度不超過21位。注意: 根據目的地運營商規則,部分地區的自定義 Sender ID 可能需要預先註冊。

dnis

String

目的地手機號碼,需為 E.164 格式。多個號碼請使用英文逗號 (,) 分隔,單次請求最多不超過100個號碼。

message

String

短信內容文本。

longMessageMode

String

長短信處理模式:<br> • cut (預設值): 短信將被截斷,僅發送前160個字節。<br> • split (推薦): 短信將被拆分,每個分片返回獨立的 message_id。<br> • single_id_split: 短信將被拆分,所有分片返回相同的 message_id。<br> (拆分規則詳見附錄)


選填參數

參數名

類型

描述

dataCoding

String

數據編碼格式。<br> • 0: GSM 7-bit (適用於純英文內容)。<br> • 8: UCS2 (適用於包含非英文字符的內容)。<br> 注意: 若不提交此參數,系統會根據您的 message 內容自動適配編碼。

serviceType

String

業務類型代碼,此參數由 WINGSING 在對接時提供,可留空。

incMsgid

String

客戶自定義的 Message ID (最長64字符)。此功能僅在 longMessageMode 為 cut 或 split 時適用。若長短信被拆分,系統將在您提供的ID後附加分片序號,如 your_id-1, your_id-2。

srcTon, srcNpi

Integer

SMPP 協議相關參數,對應 ani 的 TON 和 NPI。

dstTon, dstNpi

Integer

SMPP 協議相關參數,對應 dnis 的 TON 和 NPI。

priorityFlag

Integer

SMPP 協議相關參數 (0-255)。

esmClass

Integer

SMPP 協議相關參數 (0-255)。

registeredDelivery

Integer

SMPP 協議相關參數 (0-255)。

replaceIfPresentFlag

Integer

SMPP 協議相關參數 (0-255)。

silent

Integer

靜音短信標誌。<br> • 0: 非靜音 (預設)。<br> • 1: 靜音。<br> 注意: 最終效果取決於終端設備及運營商網絡的支持。

2.2 請求示例

GET 請求

http://%%SERVERIP:PORT%%/api?username=WS_USER_01&password=user_password&command=submit&ani=WINGSING&dnis=85291234567&message=Your%20verification%20code%20is%206688.&longMessageMode=split

POST 請求 (JSON)

curl -X POST 'http://%%SERVERIP:PORT%%/api?username=WS_USER_01&password=user_password&command=submit' \
-H 'Content-Type: application/json' \
-d '{
    "ani": "WINGSING",
    "dnis": "85291234567,85298765432",
    "message": "【WINGSING】This is a test message.",
    "longMessageMode": "split"
}'
2.3 響應格式

成功響應 (單號碼或群發) 系統返回 HTTP 200 OK,響應主體為 JSON 格式。

  • 單號碼:

    {
        "message_id": "ws-a1b2c3d4-e5f67890"
    }
    
  • 多號碼:

    [
        {
            "dnis": "85291234567",
            "message_id": "ws-c0d59d-908efa-515011"
        },
        {
            "dnis": "85298765432",
            "message_id": "ws-09c84c-226060-864263"
        }
    ]
    

成功響應 (長短信 split 模式)

[
    {
        "dnis": "85291234567",
        "message_id": "ws-3bef56819305-f55f-44b4",
        "segment_num": "1"
    },
    {
        "dnis": "85291234567",
        "message_id": "ws-7d4e5a0d14af-4a16-7ee6",
        "segment_num": "2"
    }
]

失敗響應

  • 無可用路由: HTTP/1.1 400 Bad Request NO ROUTES

  • 認證失敗: HTTP/1.1 401 Unauthorized Not authorized (check login and password)

  • (更多 HTTP 狀態碼詳見附錄)


3. 回執狀態推送接口 (Delivery Receipt Push - Webhook)

當短信的最終投遞狀態更新時,WINGSING 平台會主動將狀態報告推送到您預先設定的 URL 地址。

3.1 推送格式

平台將以 GET 或 POST 方式向您的 URL 發送請求。

GET 示例 http://your.server.com/dlr_receiver?msgid=ws-b159d0-8d0c77&state=DELIVRD&reasoncode=000&to=85291234567&time=2025-08-10T18:13:00Z&mcc=454&mnc=00

POST 示例 (JSON Body)

{
    "msgid": "ws-440896-49e938-838927",
    "state": "DELIVRD",
    "reasoncode": "000",
    "to": "85291234567",
    "time": "2025-08-10T17:45:00Z",
    "mcc": "454",
    "mnc": "00"
}

3.2 推送參數

參數名

必填

描述

msgid

消息 ID,對應短信提交時返回的 message_id。

state

回執狀態,DELIVRD 為成功,其他狀態詳見附錄。

reasoncode

錯誤碼。成功時為 000。

to

目的地手機號碼。

time

回執接收時間。

mcc

移動國家碼 (Mobile Country Code)。

mnc

移動網絡碼 (Mobile Network Code)。

rate

短信費用。

cur

價格幣種。

parts

短信分段數。

serviceType

您在提交時攜帶的 serviceType 參數。

net_name

網絡名稱。


4. 上行回覆推送接口 (MO Message Push - Webhook)

當用戶回覆您的短信時,WINGSING 平台會將上行內容實時推送到您預先設定的 URL 地址。

4.1 推送格式

平台將以 GET 或 POST 方式向您的 URL 發送請求。

GET 示例 http://your.server.com/mo_receiver?from=85291234567&to=WINGSING&time=250810192030&message=STOP&message_id=mo-xyz-789

4.2 推送參數

參數名

必填

描述

from

用戶的手機號碼。

to

您的接收號碼或 Sender ID。

time

系統接收到上行內容的時間 (YYMMDDHHMMSS)。

message

上行短信內容 (UTF-8)。

message_id

該上行訊息的唯一 ID。

serviceType

固定值為 "MO"。

result_code

固定值為 "000"。

network

網絡名稱。

udh

長短信的 UDH 標識頭 (十六進制)。


5. 回執狀態查詢接口 (Query Delivery Status)

此接口用於主動查詢特定短信的投遞狀態,狀態報告在提交後24小時內可供查詢。

5.1 請求格式

GET https://%%SERVERIP:PORT%%/api?username=WS_USER_01&password=user_password&messageid=ws-a1b2c3d4-e5f67890&command=query

5.2 請求參數

參數名

必填

描述

username

您的 WINGSING 帳戶用戶名。

password

您的 WINGSING 帳戶密碼。

messageid

您要查詢的 message_id。

command

查詢時,此參數值固定為 "query"。

5.3 響應結果
{
    "status": "DELIVRD",
    "delivery_time": "250810193309",
    "mccmnc": "45400",
    "error_code": "000",
    "system_delivery_time": "250810193309"
}


6. 附錄

6.1 長短信拆分規則
  1. 純 GSM 7-bit 字符 (如英文、數字): 內容長度(簽名+正文)不超過160字符,按1條計費。超過160字符,則按每153字符為一條進行拆分計費。

  2. 包含非 GSM 字符 (如中文、日文): 內容長度(簽名+正文)不超過70字符,按1條計費。超過70字符,則按每67字符為一條進行拆分計費。

6.2 回執狀態碼說明

狀態 (state)

描述

DELIVRD

短信已成功送達。

ENROUTE

短信正在路由中。

EXPIRED

短信因超時未送達而過期。

DELETED

短信已被刪除。

UNDELIV

短信無法送達。

ACCEPTD

短信已被運營商網絡接受。

UNKNOWN

未知狀態。

REJECTED

短信被拒絕。

6.3 HTTP 響應狀態碼

HTTP 狀態碼

描述

1xx (資訊性)


100

Continue

101

Switching Protocols

102

Processing

2xx (成功)


200

OK

201

Created

202

Accepted

203

Non-Authoritative Information

204

No Content

205

Reset Content

206

Partial Content

207

Multi-Status

226

IM Used

3xx (重定向)


300

Multiple Choices

301

Moved Permanently

302

Found / Moved Temporarily

303

See Other

304

Not Modified

305

Use Proxy

307

Temporary Redirect

4xx (客戶端錯誤)


400

Bad Request

401

Unauthorized

402

Payment Required

403

Forbidden

404

Not Found

405

Method Not Allowed

406

Not Acceptable

407

Proxy Authentication Required

408

Request Timeout

409

Conflict

410

Gone

411

Length Required

412

Precondition Failed

413

Request Entity Too Large

414

Request-URI Too Large

415

Unsupported Media Type

416

Requested Range Not Satisfiable

417

Expectation Failed

422

Unprocessable Entity

423

Locked

424

Failed Dependency

426

Upgrade Required

428

Precondition Required

429

Too Many Requests

431

Request Header Fields Too Large

451

Unavailable For Legal Reasons

5xx (伺服器錯誤)


500

Internal Server Error

501

Not Implemented

502

Bad Gateway

503

Service Unavailable

504

Gateway Timeout

505

HTTP Version Not Supported

507

Insufficient Storage

508

Loop Detected

511

Network Authentication Required