company-logo
헬프센터

네이버페이(결제형) 검수요청 항목

네이버페이(결제형)은 다른 결제대행사와 다르게 별도의 검수절차가 존재합니다. 검수 진행은 포트원 기술지원팀을 통하여 진행해주셔야 하므로 아래 1번, 2번의 내용을 포트원 기술지원팀(support@portone.io)로 네이버페이 결제형 검수를 요청 주시기 바랍니다. (3번 내용은 참고) 참고로 아래(1,2번) 정보는 네이버페이(결제형) 검수 진행시에 네이버페이에서 필수로 요구하는 정보입니다.

1. 사업자 및 계약정보

  • 상호명 :
  • 사업자번호 :
  • 포트원 계정 :
  • 네이버페이 연동 개발자 연락처(이메일/전화번호) : 담당자님 정보를 적어주세요
  • 네이버페이 연동 검수 담당자 연락처(이메일/전화번호) : 담당자님 정보를 적어주세요
  • 네이버페이 결제형 파트너ID : 단건/반복(정기) 이용하실 방식에 따라 구분하여 전달 주세요.
  • 검수 진행가능한 URL :
  • 테스트 가능한 로그인계정 :

2. 질의사항

  • 적립금 적립방식(자체적립/네이버페이적립) :
  • 현금영수증 발급 방식(자체발행/네이버페이대행발행) :
  • 판매상품 과/면세 여부:
  • 에스크로 사용여부:
  • 모바일앱 보유 여부:
  • 부분취소 제공여부:
  • IMP.request_pay 함수 호출 시 naverProduct 파라미터 설정 셋팅 예시:
  • 개발진행 완료여부 : 포트원 연동가이드 바로가기↗
  • 금액위변조 기능 개발 여부 :
판매 상품의 실제 구매금액이 화면표시부터 네이버페이 도달까지 금액이 위변조 되지 않도록 조치 해야 합니다.
금액변조 방지 기능을 내부적으로 구현하기 어려우신가요?
포트원 에서 참조 및 제공할 수 있는 기능이 있어 소개드립니다.
(네이버페이) 결제창을 띄우기 직전에 결제금액을 미리 사전에 등록하는 api를 사용하실 수 있습니다.
인증방식의 결제를 진행할 때 결제금액 위변조시 결제진행자체를 block하기 위해 결제예정금액을 사전등록하는 기능입니다.
단, 해당 기능을 이용하실 때는  server-side에서 구현하시는 것이 바람직합니다.
추가적으로 포트원 연동 가이드의 결제정보 검증을 통해 취소 및 실패처리 로직을 구현하시는 것을 권해 드립니다.

3. 검수요청서 작성 가이드

💡
참고사항
아래 내용은 검수 요청서 작성 시 자세히 참고하실 수 있는 가이드입니다. 검수요청서 파일은 네이버페이로부터 안내받으실 수 있으며, 검수요청서 다운받기 링크를 통해서도 다운로드 가능합니다. (직접 편집 불가 하며 다운로드 후 이용가능)
연동 담당자
  • 연동 담당자(개발/검수 담당자):검수 요청 메일을 보낸 고객사 담당자의 이름<이메일 주소>형태로 기재합니다.
검수 환경
  • 계정: 고객사 담당자로부터 전달 받은 테스트 계정 / 테스트 계정 비밀번호를 기재합니다.
  • 과/면세 기준: IMP.request_pay 호출시 tax_free 파라미터 전달 여부로 판단합니다.
    (전달시 면세 , 비 전달시 과세)
  • 가맹점 타입: IMP.request_pay 호출시 escrow 파라미터 값으로 판단합니다.
    (true시 에스크로, false시 비 에스크로)
  • 포인트 적립 타입, 현금영수증 발행: 가맹점이 네이버페이와 계약한 내용을 기반으로 하므로 고객사 에서 포트원으로 검수 요청시 해당 정보를 제공합니다.
  • PC, Mobile Web, Mobile App, 관리자페이지: 제공하는 각 환경에 대해 테스트 가능한 URL, 지원하는 종류와 버전, 부분취소 제공 여부를 파악해 기재합니다.
간편 결제 플랫폼 연동 현황
  • 현금영수증 발행대상 금액조회, 거래완료, 네이버페이 포인트 적립 요청은 위 검수환경에 작성된 내용을 기반으로 작성합니다.
결제창 호출(NaverPay javascript SDK) 연동 현황
  • PC와 모바일에서 결제창이 호출되는 방식을 파악하고 맞는 값에 O 표시를 합니다.
  • layer 방식은 더이상 지원하지 않습니다.
  • page 방식이란, 네이버페이 URL로 리디렉션 되는 방식을 의미합니다.
productItems(상품 상세 정보) parameter 연동 현황
네이버페이 - 결제형의 경우,
결제창 호출(IMP.request_pay 함수)시 상품 정보를 의미하는 naverProducts 파라미터를 필수로 전달해야 합니다. 이 값이 없다고 해서 결제가 안되는 것은 아니지만, 네이버페이 측에서 데이터 수집을 위해 필수로 전달할 것을 요구하고 있습니다. naverProducts 파라미터는 상품 정보(객체)를 담고 있는 배열이며, 각 상품 정보는 아래 6가지 속성을 갖고 있습니다.
네이버페이 공식 매뉴얼 보러가기 ↗
  • categoryType (필수) : BOOK, MUCIC, MOVIE, PROCUCT 등등 (공식매뉴얼 참고)
  • categoryId (필수) : (공식매뉴얼 참고)
  • uid (필수) : 가맹점 내부의 상품 고유 ID를 활용하는 것이 일반적입니다만, 네이버페이 가이드 참고가 필요합니다. (공식매뉴얼 참고)
  • name (필수) : 주문상품의 명칭
  • count (필수) : 상품 주문 개수
  • payReferrer (선택) : 네이버 플랫폼의 타 서비스와 제휴계약 후 유입분석을 진행하는 경우에만 입력
해당 파라미터값을 “코드 예” 항목에 넣어주시면 됩니다.
사전 준비 항목
  • 자체 앱 보안 설정 항목을 제외한 모든 부분은 포트원에서 이미 처리하고 있으므로 확인 결과를 모두 "O"로 설정합니다.
  • 앱을 검수하는 경우에는 자체앱 보안 설정 항목이 처리되어 있는지 직접 확인하며, 웹을 검수하는 경우에는 모두 *(해당 사항 없음 의미) *로 설정합니다.
name 파라미터
name 파라미터는 주문명을 의미합니다.
간혹 2개 이상의 상품을 구매하는 경우, name값을 “XX외 X건”과 같은 형식으로 전달하는 경우가 있습니다.
네이버페이 - 결제형의 경우 2개 이상의 상품 구매시 주문명을 위와 같이 자동으로 생성하기 때문에 name 파라미터는 항상 naverProducts[0].name값과 동일한 값으로 설정해야 합니다.
해당 파라미터가 정상적으로 설정된 경우, 간편결제 API > 결제창 호출 > “No.6 productName(대표 상품명)은 상품명만 전달하는지 확인”에 정상으로 체크해주시면 됩니다.
에러 메시지 비 가공
결제창 호출(IMP.request_pay 함수)후 결제창 하단의 “취소" 버튼 클릭 등으로 결제 프로세스가 중단되거나 잔액 부족, 한도 초과, 10원 미만 결제 등의 사유로 결제에 실패하면 콜백 함수(popup 방식)/m_redirect_url(리디렉션 방식)로 전달되는 결제 결과(response 객체/쿼리 파라미터)에 실패 사유(error_msg)가 전달됩니다.
이 에러 메시지는 사용자에게 가공 없이 그대로 노출되어야 합니다.
ex) error_msg가 “잔액 부족"이라고 가정할때, "결제에 실패하였습니다. 실패 사유:" + "잔액 부족"과 같은 형태로 가공되면 안됨
해당 내용이 정상적으로 반영되어있는 경우, 결제 화면 > “No.3 실패 응답에 대한 resultMessage를 받은 경우 서비스 시나리오에 따라 적절하게 처리되었는지 확인”에 정상으로 체크해주시면 됩니다.
10원 미만 결제 처리
네이버페이 - 결제형의 최소 결제 금액은 10원이기 때문에, 10원 미만 결제 요청에 대해 예외 처리가 되어있어야 합니다.
ex) 사용자에게 최소 결제 금액이 10원이라 결제를 할 수 없다는 의미를 담는 에러 메시지가 노출되어야 함
해당 내용이 정상적으로 반영되어있는 경우, 간편결제 API > “No.8 totalPayAmount 최소 결제금액(10원)에 대한 예외 처리 확인”에 정상으로 체크해주시면 됩니다.
결제 금액 위/변조
프론트엔드에서 javascript 함수를 호출해 결제창이 렌더링되는 만큼 결제 금액이 얼마든지 위/변조 될 수 있습니다. 결제 금액 위/변조시 승인 완료 후 가맹점 웹서버가 이를 감지해 주문 처리를 하지 않는지 체크해야 합니다. 정상적인 프로세스는 아래와 같습니다.
결제 금액 위/변조하여 결제창 호출 → 승인 완료 → 콜백 함수 호출(또는 m_redirect_url로 리디렉션) → 가맹점 웹서버로 HTTP 리퀘스트 → 전달된 포트원 번호(imp_uid)로 실제로 결제 된 금액(amount)을, 주문 번호(merchant_uid)로 결제를 의도한 금액(예) amountToBePaid)을 조회 → amount와 amountToBePaid가 일치하는 경우에만 주문 완료 처리 → 일치하지 않는 경우 위/변조 된 결제이므로 해당 결제 건을 취소하고 사용자에게 위/변조 된 결제라는 점 안내
해당 내용이 정상적으로 반영되어있는 경우, 결제로직 취약성 > No.3(총 결제금액은 동일하고, 수량만 변경하였을 경우 변조 유무를 체크하는지 확인), No. 4(결제금액과 관련된 기타 파라미터 변경시 결제금액이 변경되는지 확인)에 정상으로 체크해주시면 됩니다.
결제 취소 API 호출시 요청 본문
네이버페이 - 결제형 결제건의 경우, 결제 취소 API(POST /payments/cancel) 호출시 추가적으로 전달해야할 요청 본문 파라미터가 있습니다. 해당 파라미터는 아래와 같습니다.
  • reason: 결제 취소 사유, 실제 사유와 같아야 함
  • extra: { requester: “admin” 또는 “customer” }: 결제 취소 대상자를 구분하는 값으로 admin은 가맹점을, customer는 가맹점 고객을 의미

4. 연동시 참고사항

네이버페이는 크게 아래의 3단계에 걸쳐 심사가 완료됩니다.
  1. 네이버페이로부터 (결제형) 입점심사 결정
  2. 네이버페이(결제형) 연동 완료
  3. 네이버페이 심사
심사단계에서는 네이버페이가 여러 가지 UI/UX적인 체크와 기능 체크를 하게 됩니다.
  • 네이버페이 버튼이 네이버 내부의 디자인 가이드에 맞게 적용되어있는지
  • 결제금액을 변조해서 결제를 해봤을 때 주문완료처리를 하지 않고 걸러내는지
  • 부분취소 기능은 잘 동작하는지 등등 을 전반적으로 사이트 검수하게 됩니다.
    (네이버페이와 관련된 디자인 및 기능들을 점검하는데 통상적으로 2주 정도 소요되는 경향이 있습니다)
컨텐츠가 도움이 되었나요?