사용자에게 보상을 지급하기 위해서 포스트백(Postback) 연동이 필요합니다. 포스트백 요청은 보안을 위해 서버 간 통신(Server-to-server) 형태로 진행됩니다.
매체사의 상황에 따른 연동 방법
Expand |
---|
|
아래의 절차에 따라 진행합니다. Panel |
---|
panelIconId | atlassian-info |
---|
panelIcon | :info: |
---|
bgColor | #F4F5F7 |
---|
|
절차 요약 버즈빌의 포인트 적립 요청을 받을 수 있는 서버 endpoint 구축 (해당 endpoint 의 URL을 postback url 로 지칭) 본 가이드에 따라 Server-To-Sever 연동 버즈빌 BD 매니저에게 postback url 전달
|
Expand |
---|
|
매체사 앱에 버즈빌의 포인트 시스템 (BuzzStore) 을 연동합니다. 해당 문서의 연동 가이드에 따라 진행해주세요.
|
Index
...
Expand |
---|
|
준비물 진행 절차 버즈빌 서버에서 HTTP Request parameter를 암호화 JSON serialized parameters(string)에 해당 string을 UTF-8 인코딩 적용 해당 string에 PKCS7 패딩 적용 및 AES 암호화 진행 암호화된 값을 base64 encoding을 진행
암호화 된 데이터를 HTTP POST request에 파라미터 data 라는 이름으로 추가하여 전송 e.g Code Block |
---|
| {
"data": "cg087LiIp30jCWpc3MVLfxPL4F05OFGGCkQwwpS6pRVMZhkumzfTFxc8iBoZ8unI15uk0cmY+CbSeOaLHsd7PaxsbyKISiJ31WJJ1OwfaYttoMwFysKNfL7pSz2HB9ULWZicG8MSPxCPKr9RDqgOXpuEoVm9YR3I4yNE5M0LNltpCTdXRBjTrOcjp+RtEZ1VENtHqTICK18nDqO+91BUt3AJsf4VmzogJ8UpA0izEbY="
} |
수신 측 (매체사) 에서는 HTTP POST request에서 data 파라미터를 가져와 아래와 같은 순서로 복호화 암호화된 값을 base64 decoding 진행 해당 decoding된 string을 복호화 진행 이후 PKCS7 패딩 제거 해당 string을 UTF-8 디코딩
예제 Code Block |
---|
| {
"unit_id":"12345",
"transaction_id":"10000000_1",
"user_id":"buzzvil",
"point": 1,
"action_type":"won",
"event_at": 1599622182,
"title":"title",
"extra": "{}"
} |
|
...
Expand |
---|
|
준비물 진행 절차 전달받은 포스트백 파라미터 중 transaction_id , user_id , point , event_at 값으로 아래 형식대로 String을 생성 (이하 "msg" ) 주의사항 : msg 값은 인코딩되어야 하며, 각 파라미터 string 과 colon 사이에는 띄어쓰기가 없습니다. Code Block |
---|
msg=u'{0}:{1}:{2}:{3}'.format(
params['transaction_id'],
params['user_id'],
params['point'],
params['event_at'],
).encode('utf-8') |
HMAC SHA-256 알고리즘을 사용하여 msg 값을 암호화 key: 1번에서 발급받은 hmac_key data: 2번에서 생성한 msg
전달받은 포스트백 파라미터 중 c 필드의 값과 비교, 일치 여부를 확인
예제 |