Server to Server 설정

Prev Next

Classic/VPC 환경에서 이용 가능합니다.

아이템 지급, 로그인 검증을 위해 서버에서 서버로 요청을 발송하도록 설정하는 방법을 설명합니다.

결제 아이템 지급 요청

웹훅을 통해 HTTP 요청을 발송하여 결제 또는 쿠폰 사용에 따른 아이템 지급을 진행하도록 설정할 수 있습니다.

아이템 지급을 위해 웹훅으로 HTTP 요청을 발송하도록 설정하는 방법은 아래와 같습니다.

  1. 관리자 계정으로 대시보드에 로그인해 주십시오.
  2. 프로젝트 설정 > 일반 메뉴를 차례대로 클릭해 주십시오.
  3. Webhook 영역의 결제 아이템 (서비스) 또는 쿠폰 아이템 (서비스) 입력란에 아래 가이드를 참조하여 HTTP/ HTTPS URL 를 입력해 주십시오.
    • 결제 후 아이템 지급은 결제 후 요청 및 응답을 참조해 주십시오.
    • 쿠폰 사용 후 아이템 지급은 쿠폰 사용 후 요청 및 응답을 참조해 주십시오.
    • 테스트 사용자에게 아이템을 지급하는 경우 (테스트사용자) 표시가 있는 입력란에 요청을 입력해 주십시오.
  4. [수정] 버튼을 클릭해 주십시오.

결제 후 요청 및 응답

아래 표 및 코드를 참조하여 HTTP 요청 및 응답을 설정해 주십시오.

  • 요청
    https://{domain}?
    userId={uuid}&orderId={orderId}&projectId={projectId}&platform={platform}&productId={productId}&store={store}&payment={payment}&transactionId={transactionId}&gamepotOrderId={gamepotOrderId}&uniqueId={uniqueId}&tp={tp}
    
    속성 타입 최대 길이 설명
    userId String 128 사용자 ID
    transactionId String 512 주문번호(GPA-xxxx-xxxx-)
    store String 64 스토어 정보(apple, google, one)
    projectId String 128 프로젝트ID
    productId String 256 구글/애플/원스토어에 등록된 상품 ID
    platform String 128 운영 Platform 정보 (android, ios)
    payment String 64 결제 방식
    uniqueId String 512 Unique id (purchase api 호출 시 입력한 uniqueId)
    gamepotOrderId String 512 GAMEPOT Order ID
    serverId String - serverId (purchase api 호출 시 입력한 serverId)
    playerId String - playerId (purchase api 호출 시 입력한 playerId)
    tp Integer - 1: 테스트 결제
    0: 일반 결제
    etc String - etc (purchase api 호출 시 입력한 etc)


  • 응답
    {
        "status": 1,
        "message" : ""
    }
    
    속성 타입 설명
    status Integer 결과값
    0: 실패, 1: 성공
    message String 오류 내용

선물하기 및 쿠폰 사용 후 요청 및 응답

아래 표 및 코드를 참조하여 HTTP 요청 및 응답을 설정해 주십시오.

  • 요청

    https://{domain}?
    userId={userId}&projectId={projectId}&platform={platform}&store={store}&userData={userData}&itemId=[{itemData}, {itemData}, ...]
    
    속성 타입 최대 길이 설명
    userId String 128 사용자 ID (대시보드에서 게임 > 선물하기 > 대상 값이 전체인 경우 all )
    projectId String 128 프로젝트 ID
    platform String 128 운영 Platform 정보 (android, ios)
    store String 64 스토어 정보(apple, google, one)
    title String - 대시보드 > 게임 > 선물하기 > 제목에 입력한 값
    content String - 대시보드 > 게임 > 선물하기 > 설명에 입력한 값
    target String - 게임팟 대시보드 > 게임 > 선물하기 > 대상 값 - 전체 : all / 사용자ID : user
    expireMs String - 대시보드 > 게임 > 선물하기 > 만료일에 입력한 값 Timestamp ( GMT+9 )
    userData String - 클라이언트 SDK 쿠폰 API 호출 시 두 번째 파라미터에 입력한 값 또는 대시보드 > 게임 > 선물하기 > UserData에 입력한 값
    itemId Array - itemData Array - itemData(JSON) {"item_id" : String, "store_item_id" : String, "count" : Number}

    item_id: 대시보드 게임 > 아이템에서 생성한 아이템 항목의 고유 ID
    store_item_id: 지급할 아이템 ID
    count: 지급할 아이템 수
  • 응답

    {
        "status": 1,
        "message" : ""
    }
    
    속성 타입 설명
    status Integer 결과값
    0: 실패, 1: 성공
    message String 오류 내용

로그인 검증 요청 (선택)

회원이 로그인을 완료할 때 얻은 정보로 GAMEPOT 서버에 로그인 검증을 요청할 수 있습니다.

로그인 검증은 1단계 GAMEPOT 토큰 검증, 그리고 2단계 소셜 미디어 계정 검증 순서로 진행됩니다. 2단계 검증 절차에서 검증에 실패한 경우 GAMEPOT 이용 정지 기능이 동작하여 해당 계정이 이용 정지 처리됩니다.

주의

1단계 GAMEPOT 토큰 검증 기능을 동기 처리하지 마십시오. 1단계 토큰 검증 기능을 동기 처리할 경우 네트워크 통신이 원활하게 이루어지지 않을 가능성이 매우 높으며, 이로 인해 회원이 정상적으로 게임을 이용하지 못할 수 있습니다. 따라서 1단계 토큰 검증 기능을 비동기로 처리한 후, 그 이후 과정에서 이용 정지 기능이 적용되도록 구현해 주십시오.

  1. 관리자 계정으로 대시보드에 로그인해 주십시오.
  2. 프로젝트 설정 > 일반 메뉴를 차례대로 클릭한 후 Auth Key 영역에 각 개발 콘솔에서 획득한 ID와 키 값을 입력해 주십시오.
    • 2단계 검증 절차 및 이용 정지 기능을 사용하지 않고자 할 경우 이 절차를 생략해 주십시오.
  3. 아래 요청, 응답 및 오류 코드를 참조하여 로그인 검증을 요청해 주십시오.

요청, 응답 및 오류 코드

아래 표 및 코드를 참조하여 로그인 검증 요청, 응답 및 오류 코드를 설정해 주십시오.

  • 요청

    POST
    url : https://gamepot.apigw.ntruss.com/gpapps/v1/loginauth
    Header : 'content-type: application/json'
    data:
    {
        "projectId": {GamePot SDK의 projectId},
        "memberId": {GamePot SDK의 memberid(사용자ID)},
        "token": {GamePot SDK의 Token},
        "remoteip": {로그인한 계정의 아이피 정보},
        "platform": ""
    }
    
    속성 타입 최대 길이 설명
    projectId String 128 GAMEPOT SDK의 프로젝트 ID
    memberId String 128 GAMEPOT SDK의 사용자 ID
    token String 2048 GAMEPOT SDK의 Token
    remoteip String - 로그인한 계정의 아이피 정보 ( ex) XXX.XXX.XXX.XXX )
    platform String - pc 플랫폼 사용하는 경우에만 pc로 설정


  • 응답
    {
        "status": 1,
        "message" : ""
    }
    
    속성 타입 설명
    status Integer 결과값
    1: 성공
    실패는 아래 오류 코드 참조
    message String 오류 내용


  • 오류 코드
    코드 설명
    0 body에 누락된 데이터가 있는 경우.
    HTTP 요청 시 projectId, memberId, token을 모두 입력하였는지 확인
    -1 Token 검증 실패.
    Token이 조작된 경우
    -2 MemberId 검증 실패.
    Token의 사용자 ID 정보와 body의 사용자 ID가 일치하지 않은 경우
    -3 Token 만료.
    SDK login api가 성공한 시각과 해당 Authentication check를 요청한 시각에 60분 이상 차이가 있는 경우

외부 결제

외부 결제 연동을 위해 서버 간 요청을 설정할 수 있습니다.

해당 기능을 사용하기 전 반드시 네이버 클라우드 플랫폼에 자세한 사용법에 관해 문의해 주십시오.

요청, 응답 및 오류 코드

  • 요청

    POST
    url : https://gamepot.apigw.ntruss.com/gpapps/v2/thirdparty/purchase
    Header : 'content-type: application/json'
    Header : 'x-api-key: xxxxxxxxxxx'
    data:
    {
        "projectId": "e948e5bc-dccd-4729-b9b0-b547ae34b85d",
        "store": "tpay",
        "productId": "purchase_001",
        "transactionId": "t-123412812-sadl-2384-75847",
        "memberId":"89a907ed-0e1d-42fb-ae4d-75e95581220d",
        "currency": "KRW",
        "price":1000,
        "paymentId": "prepaid",
        "uniqueId": ""
    }
    
    헤더 타입 필수 여부 설명
    x-api-key String 필수 GAMEPOT에서 발급하는 인증 키
    속성 타입 최대 길이 설명
    projectId String 128 GAMEPOT SDK의 프로젝트 ID
    store String 64 결제 스토어
    productId String 256 결제한 아이템 ID
    transactionId String 512 결제 고유 ID
    memberId String 128 GAMEPOT SDK의 사용자 ID
    currency String 64 결제 통화
    price Number - 결제 금액
    paymentId String 64 결제 수단
    uniqueId String 512 게임 내 결제 고유 ID


  • 응답
    {
        "status": 1,
        "message" : ""
    }
    
    속성 타입 설명
    status Integer 결과값
    1: 성공
    실패는 아래 오류 코드 참조
    message String 오류 내용


  • 오류 코드
    코드 설명
    -1 body에 누락된 데이터가 있는 경우.
    HTTP 요청 시 projectId, transactionId, productId, store, memberId를 모두 입력하였는지 확인
    -2 price의 값이 number타입이 아닌 경우
    -3 projectId가 없는 경우
    -4 프로젝트가 해당 API를 지원하지 않는 경우.
    GAMEPOT에 문의
    -5 transactionId가 이미 존재하는 경우
    -6 DB 오류.
    GAMEPOT에 문의