Msgstatus (webhook)

메시지 전송 결과를 중계사로 전달한다.

post

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: 10Required

success:단말전달성공, fail:단말전달실패

Possible values:
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 · enumOptional

세션 메시지 (replyId 를 포함하여 발송된 메시지) 의 과금 여부. 세션 메시지에 대한 통신3사 과금 정책에 따른 세션시간(ex. 24시간) 기준, 최대 과금건수 N건 까지 과금되고 이후부터 과금되지 않음. 0 - 과금 안 된 메시지 1 - 과금 된 메시지

Possible values:
Responses
200
중계사는 webhook 을 정상적으로 받을 시 200 OK를 응답해야 함
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