Msgstatus (webhook)
MaaP FE에서 중계사에서 제공한 webhook 주소 하위의 /msgstatus로 데이터를 전달한다.예) http://clientservice/message/{SKT|KT|LGU}/msgstatus MaaP FE는 주기적(예, 100ms)으로, 혹은 최대 100건까지 array로 전송 결과를 전달한다. 최대 건수로 전달한 경우 즉시 다음 작업을 진행한다. 중계사는 MaaP FE의 IP를 방화벽 등록하여 정상적인 이통사 데이터만 받을 수 있도록 한다. 아래 예는 다음 케이스에 대한 예시임. 세션 메시지의 발송 실패의 경우 항상 비과금 처리됨.
- A: A2P 발송 성공
- B: A2P 발송 실패
- C: AutoReplyMsg 발송 성공 (과금)
- D: AutoReplyMsg 발송 성공 (비과금)
- E: AutoReplyMsg 발송 실패
- F: 중계사 발송 세션 메시지 발송 성공 (과금)
- G: 중계사 발송 세션 메시지 발송 성공 (비과금)
- H: 중계사 발송 세션 메시지 발송 실패
Authorizations
Bodyobject[]
clientMsgIdstring · max: 40Required
- 중계사에서 전달한 메시지 Id.
- autoReplyMsg 값이 존재할 경우 이통 MaaP 에서 자동으로 발송된 메시지로 clientMsgId 도 이통에서 생성한 값이 됨.
statusstring · enum · max: 10RequiredPossible values:
success:단말전달성공, fail:단말전달실패
timestampstring · date-timeRequired
메시지 상태 업데이트 시간. MaaP Core에서 전달하는 경우만 포함
autoReplyMsgIdstring · max: 40Optional
사전 정의된 autoReplyMsg 가 발송되었을 경우 포함함.
postbackIdstring · max: 40Optional
사전 정의된 autoReplyMsg 가 발송되었을 경우 trigger 시킨 persistentMenu - reply 의 postbackId를 포함함.
userContactstring · max: 40Optional
사전 정의된 autoReplyMsg 가 발송되었을 경우 발송된 유저 번호를 포함함.
chatbotIdstring · max: 40Optional
사전 정의된 autoReplyMsg 가 발송되었을 경우 chatbot Id 포함함.
billinteger · enumOptionalPossible values:
세션 메시지 (replyId 를 포함하여 발송된 메시지) 의 과금 여부. 세션 메시지에 대한 통신3사 과금 정책에 따른 세션시간(ex. 24시간) 기준, 최대 과금건수 N건 까지 과금되고 이후부터 과금되지 않음. 0 - 과금 안 된 메시지 1 - 과금 된 메시지
Responses
200
중계사는 webhook 을 정상적으로 받을 시 200 OK를 응답해야 함
default
fail
application/json
post
POST /ag/1.2/msgstatus (webhook) HTTP/1.1
Host: maapdomain.com
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 1098
[
{
"clientMsgId": "A",
"status": "success",
"timestamp": "2019-08-19T04:43:55.867+09"
},
{
"clientMsgId": "B",
"status": "fail",
"error": {
"code": "40000",
"message": "error reasone"
},
"timestamp": "2019-08-19T04:43:55.867+09"
},
{
"clientMsgId": "C",
"status": "success",
"timestamp": "2019-08-19T04:43:55.867+09",
"autoReplyMsgId": "auto_1",
"postbackId": "pid_1",
"userContact": "01012341234",
"chatbotId": "bot_1",
"bill": 1
},
{
"clientMsgId": "D",
"status": "success",
"timestamp": "2019-08-19T04:43:55.867+09",
"autoReplyMsgId": "auto_1",
"postbackId": "pid_1",
"userContact": "01012341234",
"chatbotId": "bot_1",
"bill": 0
},
{
"clientMsgId": "E",
"status": "fail",
"error": {
"code": "40000",
"message": "error reasone"
},
"timestamp": "2019-08-19T04:43:55.867+09",
"autoReplyMsgId": "auto_1",
"postbackId": "pid_1",
"userContact": "01012341234",
"chatbotId": "bot_1",
"bill": 0
},
{
"clientMsgId": "F",
"status": "success",
"timestamp": "2019-08-19T04:43:55.867+09",
"bill": 1
},
{
"clientMsgId": "G",
"status": "success",
"timestamp": "2019-08-19T04:43:55.867+09",
"bill": 0
},
{
"clientMsgId": "H",
"status": "fail",
"error": {
"code": "40000"
},
"timestamp": "2019-08-19T04:43:55.867+09",
"bill": 0
}
]
No content