🔗 999플러스 통합 연동 가이드
이 문서는 999plus 통합 서비스 연동을 위한 기술 가이드입니다.
999plus는 N사 플레이스에 대한 각종 미션을 수행하고 보상을 받는 플리커 서비스와
영수증 기반 리뷰 작성 후 보상을 받는 리뷰챌린지로 구성되어 있습니다.
999플러스는 연동·테스트 편의를 위해 테스트 환경과 실서비스 환경이 완전히 분리되어 있습니다. 먼저 테스트 환경에서 연동해 주시고, 완료 후 라이브 서비스 전에 반드시 실서비스용 키로 전환해 주세요.
실서비스 환경에서 바로 연동 작업을 하셔도 문제 없지만, 실서비스 연동 시에는 미션을 올바르게 수행해 주세요.
⚠️리뷰챌린지 테스트 환경 주의사항
- 리뷰챌린지 미션 수행 시 N사 정식 리뷰 작성을 절대 하지 마세요.
- N플레이스 이동 후 아무 액션 없이 리뷰챌린지로 즉시 복귀해 주세요.
- 스크린샷 제출 시 임의의 이미지를 업로드해 주세요.
- 테스트 환경 승인 건은 실제 정산에 포함되지 않습니다.
- 빠른 승인이 필요하면 별도 문의 채널로 연락해 주세요.
테스트 환경 리뷰 참여 절차
- 리뷰챌린지의 광고에 참여합니다.
- 영수증 내려받기, 리뷰 복사, 포토 내려받기(필요한 경우) 등을 수행합니다.
- N플레이스로 이동합니다. 이후 아무런 액션 없이 바로 리뷰 사이트로 복귀합니다.
- 스크린샷 업로드 — 아무 이미지나 업로드합니다.
- 연락 채널을 통해 승인 요청 시 빠른 승인 처리가 가능합니다.
- 승인 시 테스트 환경에 등록된 포스트백을 통해 정식 포스트백이 전송됩니다.
1매체사 관리자 사이트
매체사 관리자 사이트는 연동 기본 설정, 보상 지급 이력, 정산 데이터 등을 확인할 수 있습니다. 안내 받으신 계정 정보로 접속해 주세요.
관리자 페이지에 접속하셔서 포스트백 주소와 각종 미션에 대한 이용자 지급 보상 정보값을 반드시 설정해 주세요.
접속 주소
기본 정보 설정
관리자 사이트의 기본 정보 설정 메뉴에서 아래 정보를 확인 및 설정할 수 있습니다.
| 이름 | 설명 |
|---|---|
| 매체사 키 | 매체사에 할당된 키. 999plus 미션 사이트 연동 시 지정합니다. |
| 포스트백 비밀키 | 포스트백 전송 시 헤더에 포함되는 비밀 키. 올바른 출처 검증에 사용됩니다. |
| 리워드 포스트백 주소 | 999plus 서버 → 매체사 서버로 보상 요청을 보낼 API 엔드포인트 주소. |
| 알림 포스트백 주소 | 999plus 서버 → 매체사 서버로 각종 알림 메시지를 보낼 API 엔드포인트 주소. |
| 리워드 이름 | 이용자에게 지급하는 리워드의 이름. 예) 포인트 단위가 P인 경우 P 입력. |
| 리워드 설정 | 계약된 서비스 항목별 유저지급리워드, 최대 지급가능리워드, 계약단가 등의 정보를 확인하거나 설정합니다. 미설정 시 서비스 이용이 불가능합니다. |
2999plus 미션 사이트 연동 필수
999plus 미션 수행은 당사의 웹사이트에서 진행됩니다. 아래 URL에 파라메터를 지정하여 외부 웹 브라우저로 오픈해 주세요.
앱 내 웹뷰로 오픈 시 일부 기능이 작동하지 않아 미션이 제대로 수행되지 않습니다. 반드시 외부 브라우저로 오픈해 주세요.
서버 주소
https://connect.999plus.kr?mkey=xxx&userId=xxx&adid=xxx&uname=xxx&wv=0&category=xxx
https://bridge.bravo6.kr/?mkey=xxx&userId=xxx&adid=xxx&uname=xxx&wv=0&category=xxx
쿼리 파라메터
| 파라메터 | 필수 | 설명 |
|---|---|---|
mkey | 필수 | 할당받은 매체사 키를 지정합니다. |
userId | 필수 | 귀사 앱 이용자를 구분할 수 있는 ID. 직접 지정 대신 암호화된 식별자 권고. 최대 45자, URL 인코딩 필요. |
adid | 필수 | 이용자 폰의 광고 ID (안드로이드 adid). 현재 안드로이드만 지원. 반드시 지정해야 합니다. |
uname | 선택 | 이용자 닉네임 (URL 인코딩). 생략 시 자동 생성되나 원활한 CS 처리를 위해 지정 권고. 최대 45자. |
wv | 필수 | 항상 0을 지정합니다. |
category | 선택 | plicker, review 중 하나가 될 수 있습니다. 지정 시 해당 서비스로 바로 이동하며, 미지정 시 플리커/리뷰챌린지를 이용자가 선택하여 접속하게 됩니다. |
3리워드 포스트백 연동 필수
이용자 미션 승인 시 999plus 서버에서 매체사 서버로 보상 지급을 요청합니다. 포스트백 수신을 위한 API 엔드포인트를 구현해 주셔야 합니다.
전송 타입 및 헤더
| 항목 | 값 |
|---|---|
| 전송 타입 | POST |
| Accept | application/json |
| Content-Type | application/x-www-form-urlencoded |
| pbkey |
포스트백 비밀키(비밀번호) — 관리자 기본설정에서 확인, 외부 노출 금지 포스트백이 유효한 소스로부터 온 것인지 확인하기 위한 비밀번호입니다. 더불어 포스트백 소스 안전성 강화를 위해서 서버 IP 화이트리스트 또한 검증 대상에 포함해 주시기 바랍니다. |
방화벽 사용 및 CIDR 기반 화이트리스트 처리를 하시는 것과 별개로, 포스트백 엔드포인트 자체에서 호출자 측 IP 주소가 아래 화이트리스트 목록에 포함되어 있는지도 같이 검사해 주시기를 권고드립니다.
Body 파라메터
| 파라메터명 | 타입 | 길이 | 설명 |
|---|---|---|---|
rewardKey | String(utf8) | 최대 100자 | 리워드 고유 키 값. 중복 지급 방지에 사용합니다. |
userId | String(utf8) | 최대 45자 | 리워드 지급 대상 이용자 ID. |
campaignName | String(utf8) | 최대 50자 | 참여 리뷰 캠페인명. |
cost | String(utf8) | 최대 7자 | 매체사에 정산되는 금액. |
reward | String(utf8) | 최대 7자 | 유저에게 지급하는 리워드. |
rewardDate | String(utf8) | 최대 8자 | YYYYMMDD 형식의 리워드 발생일. 정산기준월 산정에 사용합니다. |
통신 불안정 시 포스트백이 중복 발송될 수 있습니다. rewardKey를 통해 중복 지급 여부를 반드시 확인하고, 이미 처리된 경우 중복 지급하면 안됩니다.
포스트백 수신 시점이 아닌 rewardDate 기준으로 정산 월을 산정해야 관리자 데이터와 일치합니다.
예) rewardDate=20251130 → 2025년 11월 정산 포함 / 포스트백은 12월 1일 도착 가능
처리 결과 응답
JSON 형식으로 처리 결과를 반환해 주세요. (HTTP 상태코드가 아닌 JSON 결과값으로 판단합니다)
{ "result": "success" } // 또는 "duplicate" | "invaliduserid" | "failed"
4알림 포스트백 구현 선택
이용자에게 발송되는 각종 알림 메시지를 매체사 서버로 전송합니다. 관리자 페이지의 알림 포스트백 수신 주소 설정 시 활성화됩니다.
수신된 알림 메시지를 귀사의 앱 알림 시스템 또는 푸시 알림으로 표시해 주세요. 메시지 길이가 앱 시스템 한도를 초과하면 허용 범위까지만 표시하면 됩니다.
전송 타입 및 헤더
| 항목 | 값 |
|---|---|
| 전송 타입 | POST |
| Accept | application/json |
| Content-Type | application/x-www-form-urlencoded |
| pbkey | 포스트백 비밀키 (관리자 기본설정에서 확인, 외부 노출 금지) |
Body 파라메터
| 파라메터명 | 타입 | 길이 | 설명 |
|---|---|---|---|
msgKey | String(utf8) | 최대 100자 | 메시지 고유 키 값. 중복 처리 확인에 사용합니다. |
userId | String(utf8) | 최대 45자 | 대상 이용자 ID. |
message | String(utf8) | 최대 500자 | 발송된 알림 메시지. |
date | String(utf8) | 최대 20자 | 메시지 발송일자. YYYY-MM-DD hh:mm:ss 형식. |
처리 결과 응답
JSON 형식으로 처리 결과를 반환해 주세요.
{ "result": "success" } // 또는 "duplicate" | "invaliduserid" | "failed"
5포스트백 테스트
포스트백 연동이 올바르게 구현되었는지 관리자 사이트에서 테스트할 수 있습니다.
테스트 방법
- 사전 준비: 관리자 기본설정 페이지에서 포스트백 주소, 리워드 이름, 유저지급 리워드 수치를 올바르게 설정
- 메뉴 진입: 관리자 → "포스트백 테스트" 메뉴
- 유저 ID 지정: 999plus 미션 사이트 연동 시 사용한 이용자 ID를 입력
- 테스트 발송: 리워드 포스트백 / 알림 포스트백 각각 발송 가능
- 내역 확인: 포스트백 발송 내역에서 최근 발송된 테스트 포스트백 3건 확인 가능
6서버 IP 목록
귀사 보안 시스템에 999plus 서버 IP 등록이 필요한 경우 아래 IP를 화이트리스트에 추가해 주세요.
3.36.239.247
52.78.146.233
52.78.27.143
119.198.9.10
테스트 환경 전용
위 IP 목록은 변경될 수 있습니다. IP 변동 또는 추가 시 사전에 안내드리겠습니다.
7웹뷰 연동 안내
999plus는 기본적으로 웹브라우저에서 실행되는 환경으로 작업되어 있습니다. 하지만 제한적으로 웹뷰 연동은 가능합니다.
웹뷰 연동 시 웹뷰 내 사이트 이동을 감지하고, URL에 따라서 별도 처리를 하지 않으면 제대로 작동하지 않습니다.
웹뷰 내에서 이동 처리해도 되는 URL
이동할 URL이 다음과 같이 시작하는 경우에는 웹뷰 내에서 이동 처리하면 됩니다.
https://connect.999plus.krhttps://bridge.bravo6.krhttps://plicker.999plus.krhttps://testplicker.bravo6.kr위에 나열되지 않은 URL 주소인 경우에는 반드시 웹브라우저에 오픈(http, https) 하거나 인텐트 호출인 경우에는 인텐트를 실행해 주셔야 합니다.
특히 플리커 서비스의 경우 인텐트를 통해서 N사 앱 오픈을 시도합니다. URL이 인텐트 호출인 경우 인텐트가 실행될 수 있도록 처리해야 하며, 인텐트가 실행하려는 앱이 없을 때(인텐트 실행 실패 시) 인텐트의 폴백 주소를 제대로 처리하지 않으면 플리커 서비스가 작동하지 않습니다.
AndroidManifest.xml 설정
안드로이드일 경우 AndroidManifest.xml 내에 다음의 쿼리를 추가해야 합니다.
<queries>
<package android:name="com.nhn.android.search" />
<package android:name="com.nhn.android.nmap" />
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="intent" />
</intent>
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="naversearchapp" />
</intent>
</queries>