CookiePay API 매뉴얼

비인증결제

비인증결제 요청전문

비인증결제 요청은 먼저 TOKEN 발행 API를 통해 TOKEN을 발급 받은 후 발행된 TOKEN을 가지고 결제취소 API와 통신하게 되어 있습니다.

요청 시 주의사항 (필독)

요청 시 ORDERNO는 유니크 한 값이어야 합니다. 결제 시 마다 새로 생성 된 ORDER KEY값을 넘겨주셔야 합니다. 중복 된 주문번호일 경우 결제 실패가 일어나거나 결제 데이터가 부정확할 수 있습니다.

TOKEN 발행 URL
https://www.cookiepayments.com/payAuth/token [POST]
TOKEN 요청 전문 파라미터
항목명 길이 내용 구분 비고
pay2_id 30 cookiepayments에서 발급받은 ID 필수 cookiepayments사에서 부여
pay2_key 50 cookiepayments에서 발급받은 연동키 필수 cookiepayments사에서 부여
URL
https://www.cookiepayments.com/keyin/payment [POST]

샘플예제

CURL
/* 토큰 발급 API */
curl -H "Content-Type: application/json" \
     -d '{
         "pay2_id": "cookiepayments에서 발급받은 ID",
         "pay2_key": "cookiepayments에서 발급받은 연동키"
         }' \
     -X POST "https://www.cookiepayments.com/payAuth/token"

/* 비인증결제 API */
curl -H "Content-Type: application/json" \
     -H "ApiKey: COOKIEPAY에서 발급받은 연동키" \
     -H "TOKEN: TOKEN API통해 발행된 TOKEN 값" \
     -d '{
         "API_ID": "COOKIEPAY에서 발급받은 가맹점연동 ID",
         "ORDERNO": "주문번호", "PRODUCTNAME": "상품명",
         "PRODUCTCODE": "상품코드",
         "AMOUNT": "결제금액",
         "CARDNO": "카드번호",
         "EXPIREDT": "카드유효기간",
         "BUYERNAME": "고객명",
         "BUYERID": "고객 ID",
         "BUYEREMAIL":"고객 E-MAIL",
         "BUYERPHONE":"고객 휴대폰번호",
         "QUOTA":"할부개월",
         "RETURNURL": "결제 결과 값 받는 주소"
         }' \
     -X POST "https://www.cookiepayments.com/keyin/payment"
PHP
/* 토큰 발행 API */
$tokenheaders = array(); 
array_push($tokenheaders, "content-type: application/json; charset=utf-8");

$token_url = "https://www.cookiepayments.com/payAuth/token";

$token_request_data = array(
    'pay2_id' => 'cookiepayments에서 발급받은 ID',
    'pay2_key'=> 'cookiepayments에서 발급받은 연동키',
);

$req_json = json_encode($token_request_data, TRUE);

$ch = curl_init(); // curl 초기화

curl_setopt($ch,CURLOPT_URL, $token_url);
curl_setopt($ch,CURLOPT_POST, false);
curl_setopt($ch,CURLOPT_POSTFIELDS, $req_json);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT ,3);
curl_setopt($ch,CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_HTTPHEADER, $tokenheaders);
$RES_STR = curl_exec($ch);
curl_close($ch);
$RES_STR = json_decode($RES_STR,TRUE);
/* 여기 까지 */
if($RES_STR['RTN_CD'] == '0000'){

$headers = array(); 
array_push($headers, "content-type: application/json; charset=utf-8");
array_push($headers, "ApiKey: COOKIEPAY에서 발급받은 연동키");
array_push($headers, "TOKEN: TOKEN API통해 발행된 TOKEN 값");

$cookiepayments_url = "https://www.cookiepayments.com/keyin/payment";

$request_data_array = array(
    'API_ID' => 'COOKIEPAY에서 발급받은 가맹점연동 ID',
    'ORDERNO'=> '주문번호',
    'PRODUCTNAME'=> '상품명',
    'AMOUNT'=> '결제금액',
    'BUYERNAME'=> '고객명',
    'BUYEREMAIL'=> '고객 E-MAIL',
    'CARDNO'=>'카드번호',
    'EXPIREDT'=>'카드유효기간',
    'PRODUCTCODE'=> '상품코드',
    'BUYERID'=> '고객 ID',
    'BUYERADDRESS'=> '고객 주소',
    'BUYERPHONE'=> '고객 휴대폰번호',
    'QUOTA'=> '할부개월',  
    'ETC1'=> '추가필드 1',
    'ETC2'=> '추가필드 2',
    'ETC3'=> '추가필드 3',
    'ETC4'=> '추가필드 4',
    'ETC5'=> '추가필드 5',
);

$cookiepayments_json = json_encode($request_data_array, TRUE);

$ch = curl_init(); // curl 초기화

curl_setopt($ch,CURLOPT_URL, $cookiepayments_url);
curl_setopt($ch,CURLOPT_POST, false);
curl_setopt($ch,CURLOPT_POSTFIELDS, $cookiepayments_json);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT ,3);
curl_setopt($ch,CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);

var_dump($response);
요청 전문 파라미터
항목명 길이 내용 구분 비고
ApiKey 제한없음 쿠키페이 결제 연동 key 필수(헤더) 쿠키페이에서 발급받은 결제 연동 key
TOKEN 제한없음 인증 TOKEN 필수(헤더) TOKEN 발급 API통해 발급 TOKEN 값
API_ID 20 쿠키페이 결제 연동 id 필수 쿠키페이에서 발급받은 결제 연동 id
ORDERNO 50 주문번호 필수 각 주문마다 유니크해야 합니다
PRODUCTNAME 40 상품명 필수 & 문자 포함시 오류 발생
AMOUNT 10 결제 금액 필수 숫자만 사용합니다
BUYERNAME 20 고객명 필수 결제자 이름
BUYEREMAIL 50 고객 e-mail 필수
CARDNO 16 카드번호 필수
EXPIREDT 4 카드유효기간 (YYMM) 필수
CARDPWD 2 카드비밀번호 앞 2자리 다날,토스 필수 카드 비밀번호 앞 2자리
CARDAUTH 10 카드소유자 생년월일(YYMMDD) 다날,토스 필수 생년월일 YYMMDD 혹은 사업자번호 10자리
PRODUCTCODE 10 상품코드 선택
BUYERID 20 고객 ID 선택
BUYERADDRESS 100 고객 주소 선택
BUYERPHONE 20 고객 휴대폰번호 선택
QUOTA 2 할부개월 선택 일시불: 00, 2개월: 02, ... 12개월: 12 (최대12개월)
ETC1 100 사용자 추가 필드1 선택 입력시 응답파라미터에 값을 전달합니다
ETC2 100 사용자 추가 필드2 선택 입력시 응답파라미터에 값을 전달합니다
ETC3 100 사용자 추가 필드3 선택 입력시 응답파라미터에 값을 전달합니다
ETC4 100 사용자 추가 필드4 선택 입력시 응답파라미터에 값을 전달합니다
ETC5 100 사용자 추가 필드5 선택 입력시 응답파라미터에 값을 전달합니다

비인증결제 응답전문

응답 전문 파라미터
항목명 길이 내용 구분 비고
RESULTCODE 4 결과 코드 필수(JSON) PG사 응답 코드 (성공시 "0000", 그외 에러)
RESULTMSG 100 결과 메시지 필수(JSON) PG사 응답 메시지 ("성공" 또는 오류 메세지)
ORDERNO 50 주문번호 필수(JSON) 결제한 주문번호
AMOUNT 10 결제 된 금액 필수(JSON) 결제 금액
TID 50 PG 거래 고유번호 필수(JSON) PG사 결제 거래고유번호 (전표출력 및 결제취소에 사용됩니다)
ACCEPTDATE 20 승인일시 필수(JSON) PG사 결제 승인일시
ACCEPTNO 10 승인번호 필수(JSON) PG사 결제 승인번호
ETC1 100 사용자 추가 필드1 선택
ETC2 100 사용자 추가 필드2 선택
ETC3 100 사용자 추가 필드3 선택
ETC4 100 사용자 추가 필드4 선택
ETC5 100 사용자 추가 필드5 선택

결제정보 검증

결제 요청은 클라이언트 상에서 이루어지기 때문에 클라이언트의 스크립트를 조작하여 금액을 위변조하여 결제요청을 할 수 있습니다. 이 경우 결제 완료 후 처음 요청했던 금액과 실제로 결제된 금액이 일치하는지 확인하는 과정이 필요합니다.

TOKEN 발행 URL
https://www.cookiepayments.com/payAuth/token [POST]
TOKEN 요청 전문 파라미터
구분 항목명 길이 내용 비고
필수 pay2_id 30 쿠키페이 결제 연동 key 쿠키페이에서 발급받은 결제 연동 key
필수 pay2_key 50 쿠키페이 결제 연동 id 쿠키페이에서 발급받은 결제 연동 id
결제 검증 URL
https://www.cookiepayments.com/api/paycert [POST]
결제검증 요청 전문 파라미터
구분 항목명 길이 내용 비고
필수 tid 50 PG 거래 고유번호 PG사 결제 거래고유번호
CURL

샘플예제

/* 토큰 발급 API */
curl -H "Content-Type: application/json" \
     -d '{
          "pay2_id": "{쿠키페이 결제 연동 id}",
          "pay2_key": "{쿠키페이 결제 연동 key}"
     }' \
     -X POST "https://www.cookiepayments.com/payAuth/token"

/* 발급 받은 TOKEN으로 결제 취소 API 통신 */
curl -H "Content-Type: application/json" \
     -H "TOKEN: {TOKEN API통해 발행된 TOKEN 값}" \
     -d '{ "tid": "{결제 후 응답받은 PG 거래 고유번호}" }' \
     -X POST "https://www.cookiepayments.com/api/paycert"
PHP

샘플 예제

 /* 토큰 발행 API */
$headers = array(
    "content-type: application/json; charset=utf-8",
); 

$token_url = "https://www.cookiepayments.com/payAuth/token";

$request_data = array(
    'pay2_id' => '{쿠키페이 결제 연동 id}',
    'pay2_key'=> '{쿠키페이 결제 연동 key}',
);

$request_data = json_encode($request_data, JSON_UNESCAPED_UNICODE);

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $token_url);
curl_setopt($ch, CURLOPT_POST, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
$result = json_decode($result, true);
curl_close($ch);

if($result['RTN_CD'] == '0000') {

    $headers = array(
        "Content-Type: application/json",
        "TOKEN: {TOKEN API통해 발행된 TOKEN 값}",
    ); 
    $paycert_url = "https://www.cookiepayments.com/api/paycert";

    $request_data = array(
        'tid' => '{결제 후 응답받은 PG사 거래 고유번호}',
    );

    $request_data = json_encode($request_data, JSON_UNESCAPED_UNICODE);

    $ch = curl_init(); // curl 초기화

    curl_setopt($ch, CURLOPT_URL, $paycert_url);
    curl_setopt($ch, CURLOPT_POST, false);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $request_data);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
    curl_setopt($ch, CURLOPT_TIMEOUT, 20);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    $response = curl_exec($ch);
    curl_close($ch);

    // 결과 처리
    var_dump($response);
}
결제검증 응답 전문 파라미터
항목명 길이 내용 구분 비고
RESULTCODE 4 결과 코드 필수(JSON) PG사 응답 코드 (성공시 "0000", 그외 에러)
RESULTMSG 100 결과 메시지 필수(JSON) PG사 응답 메시지 ("성공" 또는 오류 메세지)
ORDERNO 50 주문번호 필수(JSON)
AMOUNT 10 결제 된 금액 필수(JSON)
BUYERNAME 20 고객명 필수(JSON)
BUYEREMAIL 50 고객 E-MAIL 필수(JSON)
PRODUCTNAME 40 상품명 필수(JSON)
PRODUCTCODE 10 상품코드 필수(JSON)
PAYMETHOD 20 결제수단 필수(JSON)
BUYERID 20 고객 ID 필수(JSON)
TID 50 PG 거래 고유번호 필수(JSON)
ACCEPTNO 10 승인번호 필수(JSON)
ACCEPTDATE 20 승인일시 필수(JSON)
CANCELDATE 20 취소날짜 필수(JSON)
CANCELMSG 50 취소메시지 필수(JSON)