For the complete documentation index, see llms.txt. This page is also available as Markdown.

서명 생성

팁 (TIP)

가맹점은 아래 단계에 따라 요청 서명을 생성할 수 있으며, 플랫폼은 요청을 받은 후 서명을 검증합니다. 서명 검증에 실패하면 요청이 거부되고 적절한 상태 코드(status code)가 반환됩니다.

준비 (Preparation)

가맹점은 가맹점 번호를 등록하고 가맹점 백스테이지를 통해 결제 애플리케이션을 생성하여 APP_IDAPP_SECRECT를 획득해야 합니다.

조건 (Condition)

이 문서에서 POST 메서드의 모든 인터페이스는 서명을 검증해야 하며, 다른 인터페이스는 현재 검증할 필요가 없습니다.

생성 (Generation)

서명 문자열은 4줄로 구성되며, 각 줄마다 하나의 매개변수가 있습니다. 줄은 \n(줄바꿈, ASCII 인코딩 값 0x0A)으로 끝나며, 마지막 줄에는 \n을 추가하지 마십시오. 매개변수 자체가 \n으로 끝나는 경우에도 \n을 추가로 붙여야 합니다.

URL\n
Request timestamp\n
Request random string\n
Request message body

주문 조회(order inquiry)를 예로 들어 보겠습니다.

첫 번째 단계는 요청의 절대 URL을 가져오고 도메인 이름 부분을 제거하여 참여 서명된 URL을 얻는 것입니다. 요청에 쿼리 매개변수가 있는 경우 URL에 '? '와 해당 쿼리 문자열을 추가해야 합니다.

/v1/transaction/query

두 번째 단계는 요청이 시작될 때 시스템의 현재 타임스탬프(밀리초)를 가져오는 것입니다. 즉, 1970년 1월 1일 00:00:00 GMT부터 현재까지의 총 초를 요청 타임스탬프로 사용합니다. 플랫폼은 오래전에 이루어진 요청의 처리를 거부하므로 가맹점 자체 시스템의 시간을 정확하게 유지하십시오.

세 번째 단계는 32비트 무작위 문자열 (random string)을 생성하는 것입니다.

네 번째 단계는 요청(request body)에서 요청 메시지 본문을 가져오는 것입니다.

다섯 번째 단계는 다음과 같이 이전 규칙에 따라 요청 서명 문자열을 구성하는 것입니다.

암호화 (Encryption)

자바스크립트 암호화 과정을 예로 들어 보겠습니다:

암호화 후 예시:

연결 (Concatenate)

서명 정보의 연결 형식은 다음과 같습니다. app_id=APP_ID, mch_id=가맹점 ID, nonce_str=3단계에서 생성된 무작위 문자열, timestamp=2단계에서 생성된 타임스탬프, signature=암호화된 서명 문자열.

HTTP 헤더 (HTTP header)

문서 API는 HTTP Authorization 헤더를 통해 서명을 전달합니다. Authorization인증 유형서명 정보의 두 부분으로 구성됩니다. 현재 인증 유형TTPAY-AES-256-ECB만 지원합니다.

Authorization 헤더는 다음과 같습니다. (참고: 조판상 줄바꿈이 포함될 수 있으므로 이는 예시이며 실제 데이터는 한 줄에 있어야 합니다.)

마지막으로 서명이 포함된 HTTP 요청을 생성할 수 있습니다.

데모 코드 (Demo code)

마지막 업데이트