본문으로 건너뛰기

PSN 유저 토큰 발급

기본 정보​

  1. PSN 유저 토큰을 발급하는 API입니다. PSN 콘솔에서 획득한 authorization code(SDK를 통해 전달 받을 수 있음)를 게임서버가 전달하면 빌링 시스템이 access token을 발급받아 보관합니다.(토큰 값은 응답에 미포함)
  2. 구매 검증(verify) 전 선행 필수입니다. 토큰은 빌링 시스템이 보관하며(TTL 12시간), 만료 시 재발급이 필요합니다.
호출 시점
  • PSN 공식개발 문서에서 권고하는 호출 시점은 게임 시작 시점입니다
  • 구매 검증(verify)/완료(complete) 응답 body의 resultCode가 USER_ACCESS_TOKEN_NOT_VALID(HTTP 200)이면 토큰 미발급·만료·PSN 측 폐기 상태입니다.
  • PSN 콘솔에서 authorization code를 재취득해 이 API를 다시 호출한 뒤 verify/complete를 재시도하세요.
  • HTTP status가 아닌 resultCode로 분기해야 합니다.
  • EXTERNAL_API_ERROR·SYSTEM_ERROR는 토큰 재발급으로 복구되지 않습니다.
항목내용비고
호출주체게임서버(s2s API)
도메인각 환경별 도메인
인증 방식HTTP 헤더 인증 정보다른 게임서버 API와 동일
HTTP 메소드POST
Content-Typeapplication/x-www-form-urlencoded
응답 HTTP 코드성공·비즈니스 실패 모두 200 / 빌링 내부 오류(SYSTEM_ERROR) 500resultCode로 판단

Request​

HTTP Request end point​

POST https://각 환경별 빌링시스템 도메인/billing/api-game/v1/psn/auth/token

HTTP Request Header​

  • 아래의 HTTP Header들을 API 요청에 포함시켜야합니다.
이름값비고
X-Req-Pjid프로젝트ID기술 PM 등에게 전달받은 프로젝트ID
X-Auth-Access-Key인증용 키기술 PM 등에게 전달받은 해당 게임용 인증 키

HTTP Request Parameter​

  • 아래 파라미터들을 Content-Type: application/x-www-form-urlencoded 으로 호출하면 됩니다.
keytyperequired설명
pjidStringY프로젝트ID
playerIdStringY구매 검증/완료 요청과 동일한 유저 ID여야 함
authorizationCodeStringYPSN 콘솔 클라이언트에서 획득한 인가코드. 최대 128자
- redirect_uri: orbis://games

Response​

  • 별도 resultData 없이 resultCode로 성공 여부를 판단합니다.

Success sample​

{ "resultCode": "SUCCESS", "resultMessage": "success" }

실패 응답​

  • 비즈니스 실패도 HTTP 200으로 응답됩니다. HTTP status가 아닌 resultCode로 분기하세요. SYSTEM_ERROR(500)·NOT_ALLOW_AUTH(인증 헤더 오류)는 전 API 공통.
resultCodeHTTP발생 조건게임서버 처리
USER_ACCESS_TOKEN_NOT_VALID200인가코드 무효·만료·재사용(PSN invalid_grant)PSN 콘솔에서 새 인가코드 재취득 후 재호출. 인가코드는 1회용
INVALID_PARAMETER200필수값 누락, authorizationCode 128자 초과, pjid에 PSN 설정 없음요청값 수정 후 재요청
EXTERNAL_API_ERROR200PSN Auth API 오류(429 포함)·통신 실패잠시 후 재시도. 지속되면 traceId로 문의
{
"resultCode": "USER_ACCESS_TOKEN_NOT_VALID",
"resultMessage": "PSN Auth API invalid_grant. 새 인가코드 재발급 필요.",
"traceId": "billing_01H..."
}

요청 curl 샘플​

  • 샘플 curl 커맨드입니다. 요청 정보에 맞게 변경해서 호출하세요.
curl -X 'POST' \
'https://API도메인/billing/api-game/v1/psn/auth/token' \
-H 'X-Req-Pjid: PJID값' \
-H 'X-Auth-Access-Key: API 인증키' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'pjid=1201' \
--data-urlencode 'playerId=tester01' \
--data-urlencode 'authorizationCode=PSN에서 획득한 auth code'