카카오청구서 발행한 URL는 결제완료 이후에는 재사용 할 수 없습니다(1회만 사용)
라이브 : https://www.cookiepayments.com [POST]
테스트 : https://sandbox.cookiepayments.com [POST]
{요청도메인}/urlpay/kakao [POST]
샘플 예제
curl -H "Content-Type: application/json" \
-H "ApiKey": "COOKIEPAY에서 발급받은 연동키" \
-d '{ "API_ID": "COOKIEPAY에서 발급받은 가맹점연동 ID", \
"PRODUCTNAME": "상품명", \
"AMOUNT": "결제금액", \
"BUYERNAME": "고객명", \
"BUYERHP": "고객 휴대폰번호", \
"BUYEREMAIL":"고객 E-MAIL", \
}' \
-X POST "{요청도메인}/urlpay/kakao"
샘플 예제
$headers = array();
array_push($headers, "content-type: application/json; charset=utf-8");
array_push($headers, "ApiKey: COOKIEPAY에서 발급받은 연동키 ");
$cookiepayments_url = "{요청도메인}/urlpay/kakao";
$request_data_array = array(
'API_ID' => 'COOKIEPAY에서 발급받은 가맹점연동 ID',
'PRODUCTNAME'=> '상품명',
'AMOUNT'=> '결제금액',
'BUYERNAME'=> '고객명',
'BUYERHP'=> '고객 휴대폰번호',
'BUYEREMAIL'=> '고객 E-MAIL',
);
$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 | 제한없음 | COOKIEPAY PG설정 연동 key | 필수 (헤더) |
COOKIEPAY에서 부여 |
API_ID | 20 | COOKIEPAY에서 발급받은 ID | 필수 | COOKIEPAY에서 부여 |
PRODUCTNAME | 40 | 상품명 | 필수 | & 문자를 입력하시면 오류 발생 |
AMOUNT | 10 | 결제금액 | 필수 | 문자 및 특수문자 허용 불가 |
BUYERNAME | 20 | 고객명 | 필수 | |
BUYERHP | 11 | 고객 휴대폰번호 | 필수 | |
TAXYN | 1 | 과세/비과세 | 선택 | Y:과세, N:비과세 - default : 과세 |
BILL_NO | 20 | 청구서 고유 번호 | 선택 | 청구서 고유 번호 └ 청구서 고유번호 입력시 └ 같은 청구서 주소로 알림톡 재발송 가능합니다. |
REASON_FOR_BILL | 60 | 청구 사유 | 선택 | 청구 사유 |
MEMO | 100 | 발송타입 | 선택 | 비고 혹은 메시지 |
MEMO | 100 | 발송타입 | 선택 | 비고 혹은 메시지 |
ETC1 | 100 | 추가 필드1 | 선택 | |
ETC2 | 100 | 추가 필드2 | 선택 |
항목명 | 길이 | 내용 | 구분 | 비고 |
---|---|---|---|---|
RESULTCODE | 4 | 응답코드 | 필수 | 응답코드 정상 : 0000, 그외 에러 |
RESULTMSG | 100 | 응답메시지 | 필수 | 응답메시지 |
URLKEY | 20 | 생성된 결제창 URL KEY | 필수 | 결제창 생성된 KEY 값 |
PAYURL | 50 | 생성된 결제창 URL 주소 | 필수 | 고객에서 전송된 결제 창 URL 주소 |
BILL_NO | 20 | 청구서 고유 번호 | 선택 | 청구서 고유 번호 |
ETC1 | 100 | 추가 필드1 | 선택 | |
ETC2 | 100 | 추가 필드2 | 선택 |
카카오청구서 URL 결제 생성 후 고객이 결제를 하였는지 확인 하는 API 입니다. 고객님이 결제를 정상적으로 하였다면 결제 데이터를 리턴해주며, 결제가 실행 안된 경우에는 결제가 이루어지지 않았다는 데이터를 리턴해줍니다.
{요청도메인}/payAuth/token [POST]
항목명 | 길이 | 내용 | 구문 | 비고 |
---|---|---|---|---|
pay2_id | 30 | cookiepayments에서 발급받은 ID | 필수 | cookiepayments사에서 부여 |
pay2_key | 50 | cookiepayments에서 발급받은 연동키 | 필수 | cookiepayments사에서 부여 |
{요청도메인}/api/urlcert [POST]
항목명 | 길이 | 내용 | 구문 | 비고 |
---|---|---|---|---|
URLKEY | 50 | 생성된 결제창 URL KEY | 필수 | URL결제창 생성 키 |
/* 토큰 발급 API */
curl -H "Content-Type: application/json" \
-d '{"pay2_id": "cookiepayments에서 발급받은 ID", \
"pay2_key": "cookiepayments에서 발급받은 연동키" \
}' \
-X POST "{요청도메인}/payAuth/token"
/* 발급 받은 TOKEN으로 결제 취소 API 통신 */
curl -H "Content-Type: application/json" \
-H "TOKEN: TOKEN API통해 발행된 TOKEN 값" \
-d '{"URLKEY": "생성된 결제창 URL KEY"}' \
-X POST "{요청도메인}/api/urlcert"
/* 토큰 발행 API */
$tokenheaders = array();
array_push($tokenheaders, "content-type: application/json; charset=utf-8");
$token_url = "{요청도메인}/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, "TOKEN: TOKEN API통해 발행된 TOKEN 값");
$cookiepayments_url = "{요청도메인}/api/urlcert";
$request_data_array = array(
'URLKEY' => '생성된 결제창 URL KEY',
);
$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);
}
항목명 | 길이 | 내용 | 구분 | 비고 |
---|---|---|---|---|
RESULTCODE | 4 | PG 사 응답코드 | 필수(json) | 정상 : 0000, 그외 에러 EA01: 결제 미진행 에러코드 |
RESULTMSG | 100 | PG 사 응답메시지 | 필수(json) | |
ORDERNO | 50 | 주문번호 | 필수(json) | 결제한 주문번호 |
AMOUNT | 10 | 결제 된 금액 | 필수(json) | 문자 및 특수문자 허용 불가 |
BUYERNAME | 20 | 고객명 | 필수(json) | |
BUYEREMAIL | 50 | 고객 E-MAIL | 선택(json) | |
PRODUCTNAME | 40 | 상품명 | 필수(json) | & 문자를 입력하시면 오류 발생 |
PRODUCTCODE | 10 | 상품코드 | 필수(json) | |
PAYMETHOD | 20 | 결제수단 | 필수(json) | CARD(카드),BANK(계좌이체),VACCT(가상계좌),MOBILE(휴대폰) default: CARD BANK(계좌이체), VACCT(가상계좌), MOBILE(휴대폰) 결제는 PG사 등록 시 사용신청을 하셔야합니다. |
BUYERID | 20 | 고객 ID | 필수(json) | |
TID | 50 | PG 거래 고유번호 | 필수(json) | 전표출력 및 결제취소에 반드시 필요한 값 |
ACCEPTNO | 10 | 승인번호 | 필수(json) | |
ACCEPTDATE | 20 | 승인일시 | 필수(json) | |
CANCELDATE | 20 | 취소날짜 | 필수(json) | |
CANCELMSG | 50 | 취소메시지 | 필수(json) | |
ACCOUNTNO | 50 | 가상계좌번호 | (JSON) | 가상계좌 이용 시 리턴 값 |
RECEIVERNAME | 50 | 예금주성명 | (JSON) | 가상계좌 이용 시 리턴 값 |
DEPOSITENDDATE | 50 | 계좌사용만료일 | (JSON) | 가상계좌 이용 시 리턴 값 |
CARDNAME | 50 | 은행명 | (JSON) | 가상계좌 이용 시 리턴 값 |
CARDCODE | 50 | 은행코드 | (JSON) | 가상계좌 이용 시 리턴 값 |