Tentukan URL HTTP untuk menerima pesan Mobile Originated (MO).
Spesifikasi protokol
Parameter | Description |
Protocol | HTTP + JSON |
Encoding | UTF-8 |
Prasyarat
Anda telah mendaftarkan Akun Alibaba Cloud dan membuat Pasangan Kunci Akses. Untuk informasi lebih lanjut, lihat Create an AccessKey pair.
Anda telah meninjau tinjauan dan konfigurasi tanda terima paket serta memahami mode, jenis, dan proses konfigurasinya. Selanjutnya, konfigurasikan tanda terima paket secara tepat.
Untuk prosedur mengonfigurasi pesan MO, lihat Mengonfigurasi tanda terima pesan.
Format permintaan
Satu permintaan dapat berisi beberapa pesan MO.
Contoh permintaan ketika Type bernilai TEXT:
[
{
"MessageId": "1000000000000001",
"From": "861388888****",
"To": "86137888****",
"DisplayName": "Mr Liu",
"Type": "TEXT",
"Message": "hello,it's me",
"Timestamp": 1662104191973,
"Name": "jack"
},
{
"MessageId": "1000000000000002",
"From": "861388888****",
"To": "86139123****",
"DisplayName": "Mr Wang",
"Type": "TEXT",
"Message": "hello,it's me",
"Timestamp": 1662104191973,
"Name": "Jones"
}
]Contoh permintaan ketika Type bernilai AUDIO:
[
{
"MessageId": "1000000000000003",
"CustSpaceId": "cams-83m8j9xxxxadc",
"From": "+861388888****",
"DisplayName": "Mr Liu",
"NoticeType": "inbound",
"To": "+861378886****",
"Type": "AUDIO",
"Message":
"{
\"filename\":\"File.ogg\",
\"animated\":false,
\"id\":\"3214520xxxx75431\",
\"mimeType\":\"audio/ogg\",
\"url\":\"https://whatsapp-prod-oss-bucket.oss-ap-southeast-1.aliyuncs.com/1161931534xxxx19904.ogg\"
}",
"Timestamp ": 1662104191973,
"Name": "jack",
"WabaId": "95271863xxxx233",
},
{
"MessageId": "1000000000000004",
"CustSpaceId": "cams-83m8j9xxxxadc",
"From": "+861388888****",
"DisplayName": "Mr Wang",
"NoticeType": "inbound",
"To": "+861378886****",
"Type": "AUDIO",
"Message":
"{
\"filename\":\"File.ogg\",
\"animated\":false,
\"id\":\"3214520xxxx75431\",
\"mimeType\":\"audio/ogg\",
\"url\":\"https://whatsapp-prod-oss-bucket.oss-ap-southeast-1.aliyuncs.com/1161931534xxxx19904.ogg\"
}",
"Timestamp ": 1662104191973,
"Name": "John",
"WabaId": "95271863xxxx233",
}
]Contoh permintaan ketika Type bernilai DOCUMENT:
[
{
"MessageId": "1000000000000005",
"From": "+861388888****",
"DisplayName": "Mr Liu",
"NoticeType": "inbound",
"To": "+861378889****",
"Type": "DOCUMENT",
"Message":
"{
\"filename\":\"eventlog_20251211_155722_GMT.jsonl\",
\"animated\":false,
\"id\":\"275171383xxxx878\",
\"mimeType\":\"application/octet-stream\",
\"url\":\"https://bucket-chatapp-file-internal.oss-ap-southeast-1.aliyuncs.com/1161931xxxxx8375296.jsonl\"
}",
"Timestamp ": 1662104191973,
"Name": "jack",
"WabaId": "212506738xxxx650",
"CustSpaceId": "cams-85sglhxxxxkw"
},
{
"MessageId": "1000000000000006",
"From": "+861388888****",
"DisplayName": "Mr Liu",
"NoticeType": "inbound",
"To": "+861378882****",
"Type": "DOCUMENT",
"Message":
"{
\"filename\":\"eventlog_20251211_155722_GMT.jsonl\",
\"animated\":false,
\"id\":\"275171383xxxx878\",
\"mimeType\":\"application/octet-stream\",
\"url\":\"https://bucket-chatapp-file-internal.oss-ap-southeast-1.aliyuncs.com/1161931xxxxx8375296.jsonl\"
}",
"Timestamp ": 1662104191973,
"Name": "Jone",
"WabaId": "212506738xxxx650",
"CustSpaceId": "cams-85sglhxxxxkw"
}
]Contoh permintaan ketika Type bernilai REPLY:
[
{
"MessageId": "1000000000000007",
"From": "861388888****",
"DisplayName": "Mr Liu",
"To": "861378886****",
"Type": "REPLY",
"Message": "{ \"text\": \"click me\",\"payload\": \"1000000\" }" ,
"Timestamp ": 1662104191973
},
{
"MessageId": "1000000000000008",
"From": "861388888****",
"DisplayName": "Mr Wang",
"To": "861378883****",
"Type": "REPLY",
"Message": "{ \"text\": \"click me\",\"payload\": \"1000000\" }" ,
"Timestamp ": 1662104191973
}
]Contoh permintaan ketika Type bernilai LOCATION:
[
{
"MessageId": "1000000000000009",
"From": "861388888****",
"DisplayName":"Mr Liu",
"To": "861378868****",
"Type": "LOCATION",
"Message":
"{
\"address \": \"changsha yuelu street \",
\"latitude \": \"39.999137107913\",
\"longitude \": \"116.48074005043\",
\"name \": \"this is firest location message\"
}",
"Timestamp ": 1662104191973,
"Name": "jack"
},
{
"MessageId": "1000000000000010",
"From": "861388888****",
"DisplayName":"Mr Wang",
"To": "861378168****",
"Type": "LOCATION",
"Message":
"{
\"address \": \"changsha yuelu street \",
\"latitude \": \"39.999137107913\",
\"longitude \": \"116.48074005043\",
\"name \": \"this is firest location message\"
}",
"Timestamp ": 1662104191973,
"Name": "Jone"
}
]Deskripsi field
Parameter | Type | Required | Description |
MessageId | String | Yes | Identifier unik untuk pesan tersebut. |
CustSpaceId | String | Yes | ID channel. |
WabaId | String | Yes | ID WhatsApp Business Account (WABA). |
From | String | Yes | Nomor telepon pengirim. |
To | String | Yes | Nomor telepon penerima. |
FromUserId | String | No | BSUID |
FromParentUserId | String | No | Parent BSUID (jika ada) |
FromUserName | String | No | Akun pengguna (jika ada) |
Timestamp | Long | Yes | Unix timestamp saat pesan dikirim, dalam milidetik. |
DisplayName | String | Yes | Nama tampilan pengirim. |
Type | String | Yes | Jenis pesan. Nilai yang valid:
|
Message | Object | Yes | Konten pesan.
|
Name | String | Yes | Nama pengguna. |
LOCATION object
Parameter | Type | Required | Description |
address | String | Yes | Informasi alamat. |
latitude | String | Yes | Lintang. |
longitude | String | Yes | Bujur. |
name | String | Yes | Deskripsi lokasi. |
VIDEO object
Parameter | Type | Required | Description |
name | String | Yes | Deskripsi file video. |
id | String | Yes | ID file video. |
mimeType | String | Yes | Nilai tetap: Catatan Parameter ini dapat diabaikan jika |
url | String | Yes | URL file video. Catatan URL berlaku selama 7 hari. |
IMAGE object
Parameter | Type | Required | Description |
caption | String | No | Deskripsi gambar. |
id | String | Yes | ID gambar. |
mimeType | String | Yes | Tipe MIME gambar. |
url | String | Yes | URL gambar. Catatan URL berlaku selama 7 hari. |
AUDIO object
Parameter | Type | Required | Description |
name | String | Yes | Deskripsi file audio. |
id | String | Yes | ID file audio. |
mimeType | String | Yes | Nilai tetap: Catatan Parameter ini dapat diabaikan jika |
url | String | Yes | URL file audio. Catatan URL berlaku selama 7 hari. |
DOCUMENT object
Parameter | Type | Required | Description |
name | String | Yes | Deskripsi dokumen. |
id | String | Yes | ID dokumen. |
filename | String | Yes | Nama file dokumen. |
mimeType | String | Yes | Nilai tetap: |
url | String | Yes | URL dokumen. Catatan URL berlaku selama 7 hari. |
REPLY object
Parameter | Type | Required | Description |
text | String | Yes | Label teks tombol yang diklik pengguna. |
payload | String | Yes | Muatan yang dikembalikan saat pengguna mengklik tombol. Nilai ini sesuai dengan payload yang Anda definisikan dalam pesan terkirim. |
SYSTEM object
Parameter | Type | Required | Description |
body | String | Yes | Menjelaskan perubahan identitas atau nomor telepon pengguna. |
wa_id | String | Yes | ID WhatsApp baru pengguna setelah nomor teleponnya diperbarui. |
type | String | Yes | Jenis pembaruan sistem. Nilai yang valid:
|
Respons
Untuk mengonfirmasi penerimaan callback, endpoint Anda harus mengembalikan kode status HTTP 200 dalam waktu 3 detik. Badan respons harus berupa objek JSON dengan format berikut. Jika tidak, platform menganggap pengiriman gagal dan akan mencoba ulang permintaan tersebut.
Contoh respons
{
"code": 0,
"msg": "Success"
}Deskripsi field
Field | Type | Required | Description |
code | Number | Yes | Kode respons. |
msg | String | No | Pesan deskriptif. |
Kebijakan percobaan ulang
Jika upaya dorong awal gagal, layanan akan mencoba ulang permintaan setelah 1 menit dan sekali lagi setelah 5 menit. Upaya dianggap gagal jika endpoint Anda mengembalikan kode status HTTP selain 200 atau jika permintaan mengalami timeout. Setelah tiga kali upaya gagal, layanan akan berhenti mencoba ulang.