라이브 : https://www.cookiepayments.com [POST]
테스트 : https://sandbox.cookiepayments.com [POST]
{요청도메인}/api/paysearch [POST]
항목명 | 길이 | 내용 | 구분 | 비고 |
---|---|---|---|---|
API_ID | 30 | COOKIEPAY에서 발급받은 ID | 필수 | COOKIEPAY사에서 부여 |
TID | 20 | PG 거래 고유번호 | 선택 | TID 값 요청시 STD_DT, END_DT 요청값은 무시됩니다. |
STD_DT | 10 | 결제조회 시작일자 | 필수 | ex)2021-01-01 |
END_DT | 10 | 결제조회 마감일자 | 필수 | ex)2021-01-31 |
/* 토큰 발급 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 '{"API_ID": "cookiepayments에서 발급받은 ID",
"STD_DT": "결제조회 시작일자 ex)2021-01-01",
"END_DT": "결제조회 마감일자 ex)2021-01-31",
}' \
-X POST "{요청도메인}/api/paysearch"
샘플 예제
/* 토큰 발행 API */
$tokenheaders = array();
array_push($tokenheaders, "content-type: application/json; charset=utf-8");
$token_url = "{요청도메인}/payAuth/token";
$token_request_data = array(
'pay2_id' => 'COOKIEPAY에서 발급받은 ID',
'pay2_key'=> 'COOKIEPAY에서 발급받은 연동키',
);
$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/paysearch";
$request_data_array = array(
'API_ID' => 'cookiepayments에서 발급받은 ID',
'STD_DT' => '결제조회 시작일자 ex)2021-01-01',
'END_DT' => '결제조회 마감일자 ex)2021-01-31',
);
$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);
}
C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Net;
using System.Text;
using System.IO;
using System.Text.Json;
using Newtonsoft.Json.Linq;
using System.Web.Mvc;
using MySql.Data.MySqlClient;
using System.Data.SqlClient;
namespace pay.Controllers
{
public class HomeController : Controller
{
string API_ID = "쿠키페이 결제 연동 key";
string API_KEY = "쿠키페이 결제 연동 key";
//결제내역 조회 전문
public ActionResult PayList()
{
//토큰 발행 요청
string TOKEN_URL = "{요청도메인}/payAuth/token";
//전송 데이터 JSON 형식 만들기
var token_json = new JObject();
token_json.Add("pay2_id", API_ID); //쿠키페이 결제 연동 ID
token_json.Add("pay2_key", API_KEY); //쿠키페이 연동 키
//요청 HEADER 세팅
HttpWebRequest token_request = (HttpWebRequest)WebRequest.Create(TOKEN_URL);
token_request.Method = "POST";
token_request.ContentType = "application/json";
//데이터 전송
byte[] token_bytes = Encoding.UTF8.GetBytes(token_json.ToString());
token_request.ContentLength = token_bytes.Length;
Stream token_reqStream = token_request.GetRequestStream();
token_reqStream.Write(token_bytes, 0, token_bytes.Length);
token_reqStream.Flush();
token_reqStream.Close();
//응답
HttpWebResponse token_response = (HttpWebResponse)token_request.GetResponse();
HttpStatusCode status = token_response.StatusCode;
Stream token_res_stream = token_response.GetResponseStream();
StreamReader token_read_stream = new StreamReader(token_res_stream);
string token_resp_data = token_read_stream.ReadToEnd();
//응답 토근 정보
var token_result = JObject.Parse(token_resp_data);
token_read_stream.Close();
token_res_stream.Close();
token_response.Close();
//0000: 성공
string rtn_cd = Convert.ToString(token_result["RTN_CD"]);
if (rtn_cd == "0000")
{
//결제내역 조회 요청
string LIST_URL = "{요청도메인}/api/paysearch"; //요청 URL
string TOKEN = Convert.ToString(token_result["TOKEN"]); //응답 받은 토큰 값
//요청 HEADER 세팅
HttpWebRequest list_request = (HttpWebRequest)WebRequest.Create(LIST_URL);
list_request.Method = "POST";
list_request.ContentType = "application/json";
list_request.Headers.Add("TOKEN", TOKEN);
//전송 데이터 JSON 형식 만들기
var list_json = new JObject();
list_json.Add("API_ID", API_ID); //쿠키페이 결제 연동 ID
list_json.Add("STD_DT", "2023-03-01");
list_json.Add("END_DT", "2023-03-31");
//데이터 전송
byte[] list_bytes = Encoding.UTF8.GetBytes(list_json.ToString());
list_request.ContentLength = list_bytes.Length;
Stream list_reqStream = list_request.GetRequestStream();
list_reqStream.Write(list_bytes, 0, list_bytes.Length);
list_reqStream.Flush();
list_reqStream.Close();
//응답
HttpWebResponse list_response = (HttpWebResponse)list_request.GetResponse();
HttpStatusCode list_status = list_response.StatusCode;
Stream list_res_stream = list_response.GetResponseStream();
StreamReader list_read_stream = new StreamReader(list_res_stream);
string list_resp_data = list_read_stream.ReadToEnd();
list_read_stream.Close();
list_res_stream.Close();
list_response.Close();
//응답 정보
var list_result = JArray.Parse(list_resp_data);
foreach (var json in list_result)
{
System.Diagnostics.Trace.WriteLine(json);
}
}
return View();
}
}
}
항목명 | 길이 | 내용 | 구분 | 비고 |
---|---|---|---|---|
RESULTCODE | 4 | PG 사 응답코드 | 필수(JSON) | 정상 : 0000, 그외 에러 |
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(카드), KAKAOPAY(카카오페이), CARD_SUGI(수기결제) CARD_BATCH(정기결제), BANK(계좌이체), VACCT(가상계좌) MOBILE(휴대폰) |
BUYERID | 20 | 고객 ID | 필수(JSON) | |
TID | 50 | PG 거래 고유번호 | 필수(JSON) | 전표출력 및 결제취소에 반드시 필요한 값 |
ACCEPTNO | 10 | 승인번호 | 필수(JSON) | |
ACCEPTDATE | 20 | 승인일시 | 필수(JSON) | |
CANCEL_SUM_AMOUNT | 20 | 취소후 잔액 | 필수(JSON) | 부분취소의 경우 부분취소 후 남은 잔액 |
CANCELDATE | 20 | 취소날짜 | 필수(JSON) | |
CANCELMSG | 50 | 취소메시지 | 필수(JSON) | |
ACCOUNTNO | 50 | 가상계좌번호 | (JSON) | 가상계좌 이용 시 리턴 값 |
RECEIVERNAME | 50 | 예금주성명 | (JSON) | 가상계좌 이용 시 리턴 값 |
DEPOSITENDDATE | 50 | 계좌사용만료일 | (JSON) | 가상계좌 이용 시 리턴 값 |
CARDNAME | 50 | 은행명 | (JSON) | 가상계좌 이용 시 리턴 값 |
CARDCODE | 50 | 은행코드 | (JSON) | 가상계좌 이용 시 리턴 값 |