MENU navbar-image
WEROUTE

서비스 소개

본 문서는 위루트에서 제공하는 API에 대하여 기술합니다.

노티 API

notification webhook API에 대하여 기술합니다.

해당 API를 이용하기 위해서 위루트내 가맹점 정보 및 노티를 받을 URL목록을 등록합니다.

방화벽 및 보안 설정 필요시 하단 아이피를 추가합니다.

Webhook server IP : 221.168.33.162

노티 전송 규격

필수 여부의 X 값들의 value는 빈 값으로 전달됩니다.

필드명 필드 ID 필수여부 최대길이(byte) 비고
가맹점 ID mid O 50 결제 MID
단말기 ID tid X 50 결제 TID
거래번호 trx_id O 100 취소시 사용됩니다.
거래금액 amount O 20
주문번호 ord_num O 50
승인번호 appr_num O 10
상품명 item_name X 100 온라인 결제건에 한해 전송됩니다.
구매자명 buyer_name X 100 온라인 결제건에 한해 전송됩니다.
구매자번호 buyer_phone X 100 온라인 결제건에 한해 전송됩니다.
발급사명 issuer O 20
매입사명 acquirer O 20
카드번호 card_num O 20
할부기간 installment O 2 00,02,03 ...
결제방식 method O 10
거래시간 trx_dttm O 20 Y-m-d H:i:s
취소시간 cxl_dttm X 20 Y-m-d H:i:s
취소여부 is_cancel O 1
타임스탬프 timestamp O 10 1722258514
무결성 보장 값 signature O 64 key=value형태로 생성된 데이터를 SHA256으로 단방향 암호화한 값입니다.
sha256("sign_key=value&timestamp=value&mid=value")
API를 통해 승인 요청시 입력했던 임시 예약필드 temp O 500

노티 응답 규격

노티를 성공적으로 받았을 시, body에 작성하셔야할 내용입니다.

상황별 응답 http code body 비고
성공시 응답 200 {}
실패시 응답 200 외 http status code {"message":"실패한 사유"} 출력 body 내용은 weroute 내의 노티전송이력에 표시됩니다.

(message 파라미터는 필수입니다.)

키인 결제 API

키인 결제 API Interface의 구성과 사용방법에 대한 메뉴얼을 기술합니다.

해당 API는 위루트내 가맹점 정보 및 수기결제에 관련된 연동정보를 요구합니다.


키인결제는 카드단말기를 이용하지 않고, 카드 정보를 직접 입력하여 결제하는 방식입니다.

실물 카드 없이 카드번호, 유효기간 등의 정보를 수기로 입력하여 결제를 진행할 수 있습니다.

결제방식은 비인증, 구인증으로 나뉘며 결제방식별로 다음의 정보를 요구합니다.


비인증 : 카드번호, 만료일(유효기간)

구인증 : 카드번호, 유효기간, 비밀번호, 생년월일(사업자 번호)

키인 결제 흐름도

승인 요청 규격

URL: https://api.weroutefincorp.com/api/v2/pay/hand

예시 요청:
const params = {
    'mid' : mid,
    'tid'  : '',
    'amount'  : amount,
    'ord_num' : '12345H13241234',
    'item_name' : '테스트',
    'buyer_name': '구매자명',
    'buyer_phone': '01000000000',
    'buyer_email': '',
    'is_send_email': 0,
    'card_num' : '카드번호',
    'yymm'     : '2509',
    'installment' : '00',
    'auth_num'  : '',  //opt
    'card_pw'  : '',  //opt
    'temp' : btoa(JSON.stringify({'test':'노티로 전달받은 값'})),
};
const headers = {
    'Accept': 'application/json',
    'Content-Type': 'application/json',
    'Authorization': `${pay_key}`,
};
const res = $.post('https://api.weroutefincorp.com/api/v2/pay/hand', params, headers);
use Illuminate\Support\Facades\Http;

$params = [
    'mid' => mid,
    'tid' => '',
    'amount' => amount,
    'ord_num' => '12345H13241234',
    'item_name' => '테스트',
    'buyer_name' => '구매자명',
    'buyer_phone' => '01000000000',
    'buyer_email' => '',
    'is_send_email'=> 0,
    'card_num' => '카드번호',
    'yymm' => '2509',
    'installment' => '00',
    'auth_num' => '',  //opt
    'card_pw' => '',  //opt
    'temp' => base64_encode(json_encode(['test' => '노티로 전달받은 값'])),
];
$headers = [
    'Accept' => 'application/json',
    'Content-Type' => 'application/json',
    'Authorization' => $pay_key,
];
$response = Http::withHeaders($headers)->post('https://api.weroutefincorp.com/api/v2/pay/hand', $params);
    
import requests
import json
import base64

params = {
    'mid': mid,
    'tid': '',
    'amount': amount,
    'ord_num': '12345H13241234',
    'item_name': '테스트',
    'buyer_name': '구매자명',
    'buyer_phone': '01000000000',
    'buyer_email': '',
    'is_send_email': 0,
    'card_num': '카드번호',
    'yymm': '2509',
    'installment': '00',
    'auth_num': '',
    'card_pw': '',
    'temp': base64.b64encode(json.dumps({'test': '노티로 전달받은 값'}).encode()).decode()
}
headers = {
    'Accept': 'application/json',
    'Content-Type': 'application/json',
    'Authorization': pay_key
}
response = requests.post('https://api.weroutefincorp.com/api/v2/pay/hand', json=params, headers=headers)
    
import org.springframework.web.reactive.function.client.WebClient;

Map<String, Object> params = new HashMap<>();
params.put("mid", mid);
params.put("amount", amount);
params.put("ord_num", "12345H13241234");
params.put("item_name", "테스트");
params.put("buyer_name", "구매자명");
params.put("buyer_phone", "01000000000");
params.put("buyer_email", "");
params.put("is_send_email", 0);
params.put("card_num", "카드번호");
params.put("yymm", "2509");
params.put("installment", "00");
params.put("auth_num", "");
params.put("card_pw", "");

Map<String, Object> jsonMap = new HashMap<>();
jsonMap.put("test", "노티로 전달받은 값");

ObjectMapper objectMapper = new ObjectMapper();
String jsonString = objectMapper.writeValueAsString(jsonMap);
String base64Encoded = Base64.getEncoder().encodeToString(jsonString.getBytes());

params.put("temp", base64Encoded);

WebClient client = WebClient.builder()
    .baseUrl("https://api.weroutefincorp.com")
    .defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
    .defaultHeader("Authorization", payKey)
    .build();

Mono<String> response = client.post()
    .uri("/api/v2/pay/hand")
    .bodyValue(params)
    .retrieve()
    .onStatus(HttpStatus::isError, response -> Mono.error(new RuntimeException("API Error")))
    .bodyToMono(String.class);
    
요구 헤더명 요구 내용 비고
Accept application/json
Content-Type application/json
Authorization ${pay_key} 위루트내에서 등록한 온라인 결제 KEY
필드명 필드 ID 필수여부 최대길이(byte) 비고
가맹점 ID mid O 50 위루트내에서 등록한 MID
승인금액 amount O 30
가맹점 주문번호 ord_num O 50
상품명 item_name O 100
구매자명 buyer_name O 50
구매자 전화번호 buyer_phone O 20 요청포멧:01000000000
구매자 이메일 buyer_email X 20
이메일 발송여부 is_send_email O 1 1=발송, 0=미발송
카드번호 card_num O 16 5921123456781234
유효기간 yymm O 4 2509
할부기간 installment O 2 응답포멧: 00,02,03~11 (00=일시불, 02=2개월 할부, 11=11개월 할부)
카드 소유자 번호 auth_num X 12 카드 소유자 생년월일 6자리(YYMMDD), 또는 사업자 번호
카드비밀번호 card_pw X 2 카드비밀번호 앞 2자리
임시 예약필드 temp X 1000

승인 응답 규격

필드명 필드 ID 필수여부 최대길이(byte) 비고
결과 코드 result_cd O 4 성공시: 0000, 이외 에러코드
결과 메세지 result_msg O 50
가맹점 ID mid O 50 위루트내에서 등록한 MID
단말기 ID tid X 50 위루트내에서 등록한 TID
거래금액 amount O 11
가맹점 주문번호 ord_num O 50
승인번호 appr_num O 20
상품명 item_name O 100
거래번호 trx_id O 100 취소시 사용됩니다.
매입사명 acquirer O 20
발급사명 issuer O 20
카드번호 card_num O 20
할부기간 installment O 2
결제방식 method O 10 응답포멧:수기
거래시간 trx_dttm O 20 응답 포멧: 2023-04-30 11:11:11

인증 결제 API

인증 결제 API Interface의 구성과 사용방법에 대한 메뉴얼을 기술합니다.

해당 API는 위루트내 가맹점 정보 및 인증결제에 관련된 연동정보를 요구합니다.


인증결제는 신용카드 결제시 PG사로 부터 결제에 대한 인증 결과 수신 이후 해당 인증키로 결제를 요청하는 결제 방식입니다.

결제 요청 시 PG사의 결제창이 활성화 되며 이후 각 카드사의 전용 결제모듈에서 인증이 진행됩니다.

인증 결제 흐름도

예시 요청:
<body>
    <form method='post' accept-chartset='utf-8' action='https://api.weroutefincorp.com/v2/pay/auth'>
        <input type='hidden' name='return_url' value='https://www.example.com/result'/>
        <input type='hidden' name='user_agent' value='WP'/>
        <input type='hidden' name='mid' value='{MID}'/>
        <input type='hidden' name='tid' value='{TID}'/>
        <input type='hidden' name='ord_num' value='5486A1697465312'/>
        <input type='hidden' name='item_name' value='test'/>
        <input type='hidden' name='amount' value='100'/>
        <input type='hidden' name='buyer_name' value='test'/>
        <input type='hidden' name='buyer_phone' value='100'/>
        <input type='hidden' name='installment' value='0'/>
        <input type='hidden' name='pay_key' value='{PAY_KEY}'/>
        <input type='hidden' name='temp' value='{예약 값}'/>
    </form>
</body>

승인 요청 규격

필드명 필드 ID 필수여부 최대길이(byte) 비고
돌아갈 URL return_url O 255 승인 결과를 전달 받을 URL
클라이언트 접속 환경 user_agent X 1 클라이언트 측 접속 타입(WP=PC Web, WM=Mobile Web, WA=Mobile App(Android), WI=Mobile App(IOS), default=WP)
성공시 돌아갈 URL success_url X 255 상위 PG사별 사용/미사용
실패시 돌아갈 URL fail_url X 255 상위 PG사별 사용/미사용
결제키 pay_key O 100 PG사로부터 발급받은 결제 KEY
가맹점 ID mid O 50 위루트내에서 등록한 MID
승인금액 amount O 11
주문번호 ord_num O 50
상품명 item_name O 100
구매자명 buyer_name O 50
구매자 전화번호 buyer_phone O 20 요청포멧:01000000000
구매자 이메일 buyer_email X 20
이메일 발송여부 is_send_email O 1 1=발송, 0=미발송
할부기간 installment O 2
임시 예약필드 temp X 180

승인 리턴 규격

필수 여부의 X 값들의 value는 빈 값으로 전달됩니다.


승인 실패시 result_cd, result_msg 두개의 파라미터만 전송됩니다.


return_url을 작성하지 않을 시 디폴트 결제 페이지에서 결제 결과가 표시됩니다.

필드명 필드 ID 필수여부 최대길이(byte) 비고
결과 코드 result_cd O 4 성공시: 0000, 이외 에러코드
결과 메세지 result_msg O 50 정상처리되었습니다
가맹점 ID mid O 50 위루트내에서 등록한 MID
단말기 ID tid X 50 위루트내에서 등록한 TID
거래번호 trx_id O 100 취소시 사용됩니다.
거래금액 amount O 11
승인번호 appr_num O 20
상품명 item_name X 100 PG사에 따라서 빈 값으로 값이 들어올 수 있습니다.
매입사명 acquirer X 20 PG사에 따라서 빈 값으로 값이 들어올 수 있습니다.
발급사명 issuer O 20 비씨
카드번호 card_num N 20 PG사에 따라서 빈 값으로 값이 들어올 수 있습니다.(응답포멧: 1111******1111)
할부기간 installment O 2 응답포멧: 00,02,03~11 (00=일시불, 02=2개월 할부, 11=11개월 할부)
구매자명 buyer_name O 100
구매자번호 buyer_phone O 100
구매자 이메일 buyer_email X 20
이메일 발송여부 is_send_email O 1 1=발송, 0=미발송
결제방식 method O 10 인증
거래시간 trx_dttm O 20 응답 포멧: 2023-04-30 11:11:11
취소여부 is_cancel O 1
임시 예약필드 temp X 180

간편 결제 API

간편 결제 API Interface의 구성과 사용방법에 대한 메뉴얼을 기술합니다.

해당 API는 위루트내 가맹점 정보 및 간편결제에 관련된 연동정보를 요구합니다.


예시 요청:
<body>
    <form method='post' accept-chartset='utf-8' action='https://api.weroutefincorp.com/v2/pay/simple'>
        <input type='hidden' name='return_url' value='https://www.example.com/result'/>
        <input type='hidden' name='mid' value='{MID}'/>
        <input type='hidden' name='tid' value='{TID}'/>
        <input type='hidden' name='ord_num' value='5486A1697465312'/>
        <input type='hidden' name='item_name' value='test'/>
        <input type='hidden' name='amount' value='100'/>
        <input type='hidden' name='buyer_name' value='test'/>
        <input type='hidden' name='buyer_phone' value='100'/>
        <input type='hidden' name='installment' value='0'/>
        <input type='hidden' name='pay_key' value='{PAY_KEY}'/>
        <input type='hidden' name='temp' value='{예약 값}'/>
    </form>
</body>

승인 요청 규격

필드명 필드 ID 필수여부 최대길이(byte) 비고
돌아갈 URL return_url O 255 승인 결과를 전달 받을 URL
성공시 돌아갈 URL success_url X 255 상위 PG사별 사용/미사용
실패시 돌아갈 URL fail_url X 255 상위 PG사별 사용/미사용
결제키 pay_key O 100 PG사로부터 발급받은 결제 KEY
사용할 간편결제 타입 route O 100 KAKAO, NAVER
가맹점 ID mid O 50 위루트내에서 등록한 MID
승인금액 amount O 11
주문번호 ord_num O 50
상품명 item_name O 100
구매자명 buyer_name O 50
구매자 전화번호 buyer_phone O 20 요청포멧:01000000000
할부기간 installment O 2
임시 예약필드 temp X 180

승인 리턴 규격

필수 여부의 X 값들의 value는 빈 값으로 전달됩니다.


승인 실패시 result_cd, result_msg 두개의 파라미터만 전송됩니다.


return_url을 작성하지 않을 시 디폴트 결제 페이지에서 결제 결과가 표시됩니다.

필드명 필드 ID 필수여부 최대길이(byte) 비고
결과 코드 result_cd O 4 성공시: 0000, 이외 에러코드
결과 메세지 result_msg O 50 정상처리되었습니다
가맹점 ID mid O 50 위루트내에서 등록한 MID
단말기 ID tid X 50 위루트내에서 등록한 TID
거래번호 trx_id O 100 취소시 사용됩니다.
거래금액 amount O 11
승인번호 appr_num O 20
상품명 item_name X 100 PG사에 따라서 빈 값으로 값이 들어올 수 있습니다.
매입사명 acquirer X 20 PG사에 따라서 빈 값으로 값이 들어올 수 있습니다.
발급사명 issuer O 20 비씨
카드번호 card_num N 20 PG사에 따라서 빈 값으로 값이 들어올 수 있습니다.(응답포멧: 1111******1111)
할부기간 installment O 2 응답포멧: 00,02,03~11 (00=일시불, 02=2개월 할부, 11=11개월 할부)
구매자명 buyer_name O 100
구매자번호 buyer_phone O 100
결제방식 method O 10 인증
거래시간 trx_dttm O 20 응답 포멧: 2023-04-30 11:11:11
취소여부 is_cancel O 1
임시 예약필드 temp X 180

취소 API

위루트 취소 API Interface의 구성과 사용방법에 대한 메뉴얼을 기술합니다.

해당 API는 위루트내 가맹점 정보 및 취소에 관련된 연동정보를 요구합니다.


키인, 인증, 간편, 빌링결제를 통해 발생한 결제 건을 취소합니다.

결제 취소 흐름도

취소 요청 규격

URL: https://api.weroutefincorp.com/api/v2/pay/cancel

예시 요청:
const params = {
    'mid'   : mid,
    'tid'   : tid,
    'amount'  : amount,
    'trx_id'  : trx_id,
};
const headers = {
    'Accept': 'application/json',
    'Content-Type': 'application/json',
    'Authorization': `${pay_key}`,
};
const res = $.post('/api/v2/pay/cancel', params, headers);
use Illuminate\Support\Facades\Http;

$params = [
    'mid' => mid,
    'tid' => '',
    'amount' => amount,
    'trx_id' => trx_id,
];
$headers = [
    'Accept' => 'application/json',
    'Content-Type' => 'application/json',
    'Authorization' => $pay_key,
];
$response = Http::withHeaders($headers)->post('https://api.weroutefincorp.com/api/v2/pay/cancel', $params);
import base64

params = {
    'mid': mid,
    'tid': '',
    'amount': amount,
    'trx_id': trx_id,
}
headers = {
    'Accept': 'application/json',
    'Content-Type': 'application/json',
    'Authorization': pay_key
}
response = requests.post('https://api.weroutefincorp.com/api/v2/pay/cancel', json=params, headers=headers)
import org.springframework.web.reactive.function.client.WebClient;

Map<String, Object> params = new HashMap<>();
params.put("mid", mid);
params.put("amount", amount);
params.put("trx_id", trx_id);

Map<String, Object> jsonMap = new HashMap<>();
jsonMap.put("test", "노티로 전달받은 값");

ObjectMapper objectMapper = new ObjectMapper();
String jsonString = objectMapper.writeValueAsString(jsonMap);
String base64Encoded = Base64.getEncoder().encodeToString(jsonString.getBytes());

params.put("temp", base64Encoded);

WebClient client = WebClient.builder()
    .baseUrl("https://api.weroutefincorp.com")
    .defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
    .defaultHeader("Authorization", payKey)
    .build();

Mono<String> response = client.post()
    .uri("/api/v2/pay/cancel")
    .bodyValue(params)
    .retrieve()
    .onStatus(HttpStatus::isError, response -> Mono.error(new RuntimeException("API Error")))
    .bodyToMono(String.class);
요구 헤더명 요구 내용 비고
Accept application/json
Content-Type application/json
Authorization ${pay_key} 위루트내에서 등록한 온라인 결제 KEY
필드명 필드 ID 필수여부 최대길이(byte) 비고
가맹점 ID mid O 50 위루트내에서 등록한 MID
취소금액 amount O 11
거래번호 trx_id O 100 수기, 인증, 간편결제의 응답으로온 trx_id를 입력합니다.

취소 응답 규격

필드명 필드 ID 필수여부 최대길이(byte) 비고
결과 코드 result_cd O 4 성공시: 0000, 이외 에러코드
결과 메세지 result_msg O 50
가맹점 ID mid O 50 위루트내에서 등록한 MID
단말기 ID tid X 50 위루트내에서 등록한 TID
취소금액 amount O 11
거래번호 trx_id O 100
원거래번호 ori_trx_id O 100
거래시간 trx_dttm O 20 응답 포멧: 2023-04-30 11:11:11
취소시간 cxl_dttm O 20 응답 포멧: 2023-04-30 11:11:11
임시 예약필드 temp X 180

빌링 결제 API

위루트 빌링 결제 API Interface의 구성과 사용방법에 대한 메뉴얼을 기술합니다.

해당 API는 위루트내 빌링 결제 정보에 관련된 연동정보를 요구합니다.


빌링 결제는 고객이 결제할 카드에 대한 정보를 입력한 후 발급된 키 값으로 자동결제하는 방법입니다.

빌키 생성(키 값 생성) -> 키 값을 통한 빌링 결제를 함으로 자동결제가 이루어집니다.

빌키 생성

URL: https://api.weroutefincorp.com/api/v2/pay/bill-key

빌키 생성 흐름도

예시 요청:
const params = {
    'mid'   : mid,
    'tid'   : tid,
    'ord_num'  : ord_num,
    'buyer_name'  : buyer_name,
    'buyer_phone' : buyer_phone,
    'buyer_email' : buyer_email,
    'is_send_email' : is_send_email,
    'card_num' : card_num,
    'yymm' : yymm,
    'auth_num' : auth_num,
    'card_pw'  : card_pw,
};
const headers = {
    'Accept': 'application/json',
    'Content-Type': 'application/json',
    'Authorization': `${pay_key}`,
};
const res = $.post('/api/v2/pay/bill-key', params, headers);
use Illuminate\Support\Facades\Http;

$params = [
    'mid' => mid,
    'tid' => '',
    'ord_num' => ord_num,
    'buyer_name'=> buyer_name,
    'buyer_phone'=> buyer_phone,
    'buyer_email'=> buyer_email,
    'is_send_email'=> is_send_email,
    'card_num'=> card_num,
    'yymm'=> yymm,
    'auth_num'=> auth_num,
    'card_pw'=> card_pw,
];
$headers = [
    'Accept' => 'application/json',
    'Content-Type' => 'application/json',
    'Authorization' => $pay_key,
];
$response = Http::withHeaders($headers)->post('https://api.weroutefincorp.com/api/v2/pay/bill-key', $params);
import base64

params = {
    'mid'   : mid,
    'tid'   : tid,
    'ord_num'  : ord_num,
    'buyer_name'  : buyer_name,
    'buyer_phone' : buyer_phone,
    'buyer_email' : buyer_email,
    'is_send_email' : is_send_email,
    'card_num' : card_num,
    'yymm' : yymm,
    'auth_num' : auth_num,
    'card_pw'  : card_pw,
}
headers = {
    'Accept': 'application/json',
    'Content-Type': 'application/json',
    'Authorization': pay_key
}
response = requests.post('https://api.weroutefincorp.com/api/v2/pay/bill-key', json=params, headers=headers)
import org.springframework.web.reactive.function.client.WebClient;

Map<String, Object> params = new HashMap<>();
params.put("mid", mid);
params.put("ord_num", ord_num);
params.put("buyer_name", buyer_name);
params.put("buyer_phone", buyer_phone);
params.put("buyer_email", buyer_email);
params.put("is_send_email", is_send_email);
params.put("card_num", card_num);
params.put("yymm", yymm);
params.put("auth_num", auth_num);
params.put("card_pw", card_pw);

Map<String, Object> jsonMap = new HashMap<>();

ObjectMapper objectMapper = new ObjectMapper();
String jsonString = objectMapper.writeValueAsString(jsonMap);
String base64Encoded = Base64.getEncoder().encodeToString(jsonString.getBytes());

WebClient client = WebClient.builder()
    .baseUrl("https://api.weroutefincorp.com")
    .defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
    .defaultHeader("Authorization", payKey)
    .build();

Mono<String> response = client.post()
    .uri("/api/v2/pay/bill-key")
    .bodyValue(params)
    .retrieve()
    .onStatus(HttpStatus::isError, response -> Mono.error(new RuntimeException("API Error")))
    .bodyToMono(String.class);

빌키 생성 요청 규격

요구 헤더명 요구 내용 비고
Accept application/json
Content-Type application/json
Authorization ${pay_key} 위루트내에서 등록한 온라인 결제 KEY
필드명 필드 ID 필수여부 최대길이(byte) 비고
가맹점 ID mid O 50 위루트내에서 등록한 MID
주문번호 ord_num O 50
구매자명 buyer_name O 50
구매자 전화번호 buyer_phone O 20 요청포멧:01000000000
구매자 이메일 buyer_email X 20
이메일 발송여부 is_send_email O 1
카드번호 card_num O 20
유효기간 yymm O 4 2509
카드 소유자 번호 auth_num O 12 카드 소유자 생년월일 6자리(YYMMDD), 또는 사업자 번호
카드비밀번호 card_pw O 2 카드비밀번호 앞 2자리

빌키 생성 응답 규격

필드명 필드 ID 필수여부 최대길이(byte) 비고
결과 코드 result_cd O 4 성공시: 0000, 이외 에러코드
결과 메세지 result_msg O 50
가맹점 ID bill_key O 50 위루트내에서 사용 가능한 빌키
발급사명 issuer O 50 발급사명
거래번호 trx_id O 100
거래시간 trx_dttm O 20 응답 포멧: 2023-04-30 11:11:11
주문번호 ord_num O 50

빌키 삭제

URL: https://api.weroutefincorp.com/api/v2/pay/bill-key

빌키 삭제 흐름도

예시 요청:
const params = {
    'mid'   : mid,
    'ord_num' : ord_num,
    'bill_key' : bill_key,
};
const headers = {
    'Accept': 'application/json',
    'Content-Type': 'application/json',
    'Authorization': `${pay_key}`,
};
const res = $.delete('/api/v2/pay/bill-key', params, headers);
use Illuminate\Support\Facades\Http;

$params = [
    'mid' => mid,
    'ord_num' => ord_num,
    'bill_key' => 'bill_key',
];
$headers = [
    'Accept' => 'application/json',
    'Content-Type' => 'application/json',
    'Authorization' => $pay_key,
];
$response = Http::withHeaders($headers)->delete('https://api.weroutefincorp.com/api/v2/pay/bill-key', $params);
import base64

params = {
    'mid'   : mid,
    'ord_num'  : ord_num,
    'bill_key' : bill_key,
}
headers = {
    'Accept': 'application/json',
    'Content-Type': 'application/json',
    'Authorization': pay_key
}
response = requests.delete('https://api.weroutefincorp.com/api/v2/pay/bill-key', json=params, headers=headers)
import org.springframework.web.reactive.function.client.WebClient;

Map<String, Object> params = new HashMap<>();
params.put("mid", mid);
params.put("ord_num", ord_num);

Map<String, Object> jsonMap = new HashMap<>();

ObjectMapper objectMapper = new ObjectMapper();
String jsonString = objectMapper.writeValueAsString(jsonMap);
String base64Encoded = Base64.getEncoder().encodeToString(jsonString.getBytes());

WebClient client = WebClient.builder()
    .baseUrl("https://api.weroutefincorp.com")
    .defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
    .defaultHeader("Authorization", payKey)
    .build();

Mono<String> response = client.delete()
    .uri("/api/v2/pay/bill-key")
    .bodyValue(params)
    .retrieve()
    .onStatus(HttpStatus::isError, response -> Mono.error(new RuntimeException("API Error")))
    .bodyToMono(String.class);

빌키 삭제 요청 규격

요구 헤더명 요구 내용 비고
Accept application/json
Content-Type application/json
Authorization ${pay_key} 위루트내에서 등록한 온라인 결제 KEY
필드명 필드 ID 필수여부 최대길이(byte) 비고
가맹점 ID mid O 50 위루트내에서 등록한 MID
주문번호 ord_num O 50
빌키 bill_key O 100

빌키 삭제 응답 규격

필드명 필드 ID 필수여부 최대길이(byte) 비고
결과 코드 result_cd O 4 성공시: 0000, 이외 에러코드
결과 메세지 result_msg O 50
거래시간 trx_dttm O 20 응답 포멧: 2023-04-30 11:11:11
주문번호 ord_num O 50

빌링 결제

URL: https://api.weroutefincorp.com/api/v2/pay/bill-key/hand

빌키 삭제 흐름도

예시 요청:
const params = {
    'mid'   : mid,
    'tid'   : tid,
    'ord_num'  : ord_num,
    'buyer_name'  : buyer_name,
    'buyer_phone' : buyer_phone,
    'installment' : installment,
    'item_name'   : item_name,
    'bill_key' : bill_key,
    'amount' : amount,
};
const headers = {
    'Accept': 'application/json',
    'Content-Type': 'application/json',
    'Authorization': `${pay_key}`,
};
const res = $.post('/api/v2/pay/bill-key/hand', params, headers);
use Illuminate\Support\Facades\Http;

$params = [
    'mid' => mid,
    'tid' => '',
    'ord_num' => ord_num,
    'buyer_name'=> buyer_name,
    'buyer_phone'=> buyer_phone,
    'installment'=> installment,
    'item_name'=> item_name,
    'bill_key'=> bill_key,
    'amount'=> amount,
];
$headers = [
    'Accept' => 'application/json',
    'Content-Type' => 'application/json',
    'Authorization' => $pay_key,
];
$response = Http::withHeaders($headers)->post('https://api.weroutefincorp.com/api/v2/pay/bill-key/hand', $params);
import base64

params = {
    'mid'   : mid,
    'tid'   : tid,
    'ord_num'  : ord_num,
    'buyer_name'  : buyer_name,
    'buyer_phone' : buyer_phone,
    'installment' : installment,
    'item_name'   : item_name,
    'bill_key' : bill_key,
    'amount' : amount,
}
headers = {
    'Accept': 'application/json',
    'Content-Type': 'application/json',
    'Authorization': pay_key
}
response = requests.post('https://api.weroutefincorp.com/api/v2/pay/bill-key/hand', json=params, headers=headers)
import org.springframework.web.reactive.function.client.WebClient;

Map<String, Object> params = new HashMap<>();
params.put("mid", mid);
params.put("ord_num", ord_num);
params.put("buyer_name", buyer_name);
params.put("buyer_phone", buyer_phone);
params.put("installment", installment);
params.put("item_name", item_name);
params.put("bill_key", bill_key);
params.put("amount", amount);

Map<String, Object> jsonMap = new HashMap<>();

ObjectMapper objectMapper = new ObjectMapper();
String jsonString = objectMapper.writeValueAsString(jsonMap);
String base64Encoded = Base64.getEncoder().encodeToString(jsonString.getBytes());

WebClient client = WebClient.builder()
    .baseUrl("https://api.weroutefincorp.com")
    .defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
    .defaultHeader("Authorization", payKey)
    .build();

Mono<String> response = client.post()
    .uri("/api/v2/pay/bill-key/hand")
    .bodyValue(params)
    .retrieve()
    .onStatus(HttpStatus::isError, response -> Mono.error(new RuntimeException("API Error")))
    .bodyToMono(String.class);
요구 헤더명 요구 내용 비고
Accept application/json
Content-Type application/json
Authorization ${pay_key} 위루트내에서 등록한 온라인 결제 KEY

빌링 결제 요청 규격

필드명 필드 ID 필수여부 최대길이(byte) 비고
가맹점 ID mid O 50 위루트내에서 등록한 MID
주문번호 ord_num O 50
구매자명 buyer_name O 50
구매자 전화번호 buyer_phone O 20 요청포멧:01000000000
할부개월 installment O 2 요청포멧:00
상품명 item_name O 100
빌키 bill_key O 100 빌키 생성 API를 통해 발급받은 빌키
결제금액 amount O 11

빌링 결제 응답 규격

필드명 필드 ID 필수여부 최대길이(byte) 비고
결과 코드 result_cd O 4 성공시: 0000, 이외 에러코드
결과 메세지 result_msg O 50
가맹점 ID mid O 50 위루트내에서 등록한 MID
단말기 ID tid X 50 위루트내에서 등록한 TID
거래금액 amount O 11
가맹점 주문번호 ord_num O 50
승인번호 appr_num O 20
상품명 item_name O 100
거래번호 trx_id O 100 취소시 사용됩니다.
매입사명 acquirer O 20
발급사명 issuer O 20
카드번호 card_num O 20 PG사에 따라서 빈 값으로 값이 들어올 수 있습니다.(응답포멧: 1111******1111)
할부기간 installment O 2
결제방식 method O 10 응답포멧:수기
거래시간 trx_dttm O 20 응답 포멧: 2023-04-30 11:11:11