1. 페이코 게임 간편결제 정책
- 결제환경
- - 페이코 간편결제는 Web/App을 모두 지원하는 서비스이지만 리스크 최소화를 위해 게임에서는 App에서만 결제지원 합니다.
- 한도정책
- - 게임사별 건별 한도 10만원 / 월50만원 한도로 적용
- -> 일부 카드사는 카드사의 정책에따라 예외가 있을 수 있으나 장기적으로 모든 카드 건별 10만원 / 월50만원으로 적용 예정입니다
- 인증정책
- - 페이코 간편결제 + ARS 인증 -> 향후 ARS 인증에 대해 더 간편한 형태로 개선할 예정입니다
- 페이코 OnLINE FDS 적용
- - 한게임 운영을 통한 FDS운영경험, 사용자 실시간 리뷰, 스미싱/파밍 등 Fraud대응 노하우, 서비스기반의 행동패턴 분석체계
- 서비스 확대범위
- - 현재는 신용카드 간편결제만 제공, 향후 휴대폰/계좌/티머니/페이코포인트 적용을 준비하고 있음
2. 페이코 게임 간편결제 흐름
1) 게임 - PAYCO 앱 결제 플로우
2) 게임 - PAYCO 앱 결제 프로세스
3. 페이코 게임 간편결제 연동
▶ 연동 키 값 설정 (sellerKey, cpId, productId )
구분 | sellerKey | cpId | productId | 설명 |
---|---|---|---|---|
개발환경 | GTXYJV | GAME_GTXYJV | GAME_GTXYJV_EASYP | 개발환경에서는 공통으로 사용하는 키정보를 설정합니다. |
운영환경 | PAYCO 발급 | PAYCO 운영팀에서 가맹점으로 발급해드린 가맹점용 키정보를 사용하여 설정 합니다. |
3-1. 주문 예약(payco_reserve)
- 간편결제 주문서를 띄우기 전에 주문예약 API를 통해 필요한 정보를 전달합니다.
- 가맹점에서는 주문 예약 응답으로 받은 주문서 URL 을 팝업으로 띄웁니다.
- 외부가맹점의 주문번호(sellerOrderReferenceKey)는 중복되지 않는 고유한 key이어야 합니다.
- 외부가맹점에서 관리하는 주문상품 연동 키(sellerOrderProductReferenceKey)는 주문 별로 고유한 key이어야 합니다.
- PAYCO 주문예약 후 결제팝업 오픈시 팝업차단을 위한 개발 TIP!!
- - orderSheetUrl로 PAYCO 팝업오픈시엔
- 가맹점페이지 오픈 후 피드백받은 orderSheetUrl을 redirect처리하도록 합니다.
- -팝업 오픈은 POST방식의 submit은 지양하도록 한다. ( IE11 관리자모드 about:blank 새창 오픈 )
- METHOD : POST
- URL : /outseller/order/reserve
주문 예약 API > INPUT
변수명 | Type | Max Length | 필수 여부 | 설명 |
---|---|---|---|---|
1 sellerKey | String | 100 | Y | 가맹점 코드 - 초기 연동 시 PAYCO에서 가맹점으로 값을 전달합니다. |
2 sellerOrderReferenceKey | String | 100 | Y | 외부가맹점의 주문번호 |
3 sellerOrderReferenceKeyType | String | 50 | N |
외부가맹점의 주문번호 타입 UNIQUE_KEY 유니크 키 - 기본값, DUPLICATE_KEY 중복 가능한 키 ( 외부가맹점의 주문번호가 중복 가능한 경우 사용) |
4 currency | String | 3 | N | 통화(default=KRW) |
5 totalPaymentAmt | Number | Y | 총 결제 할 금액 (총 배송비 포함)
- 면세금액,과세금액,부가세의 합 = totalTaxfreeAmt + totalTaxableAmt + totalVatAmt |
|
6 totalTaxfreeAmt | Number | N | 면세금액(면세상품의 공급가액 합) | |
7 totalTaxableAmt | Number | N | 과세금액(과세상품의 공급가액 합) | 8 totalVatAmt | Number | N | 부가세(과세상품의 부가세 합) |
9 orderTitle | String | 300 | Y | 주문 타이틀 |
10 returnUrl | String | 1000 | N | 주문완료 후 Redirect 되는 Url |
11 returnUrlParam | String | 1000 | N | 주문완료 후 Redirect 되는 Url 시 함께 전달되어야 하는 파라미터 (Json 타입) |
12 nonBankbookDepositInformUrl | String | 1000 | N | 무통장입금완료통보 URL |
13 orderMethod | String | N/A | Y | 주문유형(=결제유형) • 간편결제형+가맹점 회원결제: EASYPAY_F • 간편결제형+가맹점 비회원결제 : EASYPAY |
14 orderChannel | String | N/A | N | 주문채널 (default. PC) |
15 inAppYn | String | 1 | Y | 인앱결제 여부(Y/N), default=N (in-app 결제인경우 Y) |
16 individualCustomNoInputYn | String | 1 | N | 개인통관고유번호 입력 여부 (Y/N) default=N |
17 orderSheetUiType | String | N | N | 주문서 UI 타입 선택 선택 가능 값 : (RED ,GRAY, APP_BRIDGE_A) |
18 payMode | String | N | N | 결제모드 • PAY1타입(결제인증, 승인통합) • PAY2타입 (결제인증,승인분리) • DEFAULT : PAY1 |
19 orderProducts | Array | Y | 주문상품List | |
20 extraData | String | 3000 | N | 부가정보 |
21 sellerOptions | String | N | 판매자 부가정보(Json 형태의 String) |
▷ 19번 컬럼 orderProducts 주문상품 List
변수명 | Type | Max Length | 필수 여부 | 설명 |
---|---|---|---|---|
1 cpId | String | 30 | Y | 상점ID |
2 productId | String | 50 | Y | 상품ID |
3 productAmt | Number | Y | 상품금액(상품단가 * 수량) | |
4 productPaymentAmt | Number | Y | 상품 결제금액(상품결제단가 * 수량) | |
5 orderQuantity | Number | 10 | Y | 주문수량 (배송비 상품인 경우 1로 세팅) |
6 option | String | 100 | N | 상품 옵션 |
7 sortOrdering | Number | 10 | Y | 상품노출순서 |
8 productName | String | 160 | Y | 상품명 |
9 orderConfirmUrl | String | 4000 | N | 주문완료 후 주문상품을 확인할 수 있는 url |
10 orderConfirmMobileUrl | String | 1000 | N | 주문완료 후 주문상품을 확인할 수 있는 모바일 url |
11 productImageUrl | String | 4000 | N | 이미지URL (배송비 상품이 아닌 경우는 필수) |
12 sellerOrderProductReferenceKey | String | 100 | Y | 외부가맹점에서 관리하는 주문상품 연동 키 |
13 taxationType | String | 50 | N | 과세타입
• 면세상품 : DUTYFREE • 과세상품 : TAXATION (기본) • 결합상품 : COMBINE |
※ 주문 상품 List(orderProducts) 부가 설명
• 간편 결제형
- orderProducts 리스트에 상품(total)으로 하나만 등록합니다.
( 총결제할금액 totalPaymentAmt 과 상품별 결제금액 합 productPaymentAmt은 일치하도록 전송 )
▷ 20번 컬럼 extraData
변수명 | Type | Max Length | 필수 여부 | 설명 |
---|---|---|---|---|
1 payExpiryYmdt | String | 14 | N | 해당 주문예약건 만료 처리 일시 (해당 일시 이후에는 결제 불가) Ex) "payExpiryYmdt" : "20150210180000" |
2 virtualAccountExpiryYmd | String | 14 | N | 가상계좌만료일시 YYYYMMDD or YYYYMMDDHHmmss Default 3일, YYYYMMDD일 경우 그날 24시 만료 |
3 cancelMobileUrl | String | 300 | N | 모바일 결제페이지에서 취소 버튼 클릭시 이동할 URL (결제창 이전 URL 등). 미입력시 메인 URL로 이동 |
4 viewOptions | N | 화면UI옵션 | ||
5 sameUserCheckYn | String | N | 동일사용자 체크 여부 Ex ) Y or N |
|
6 userName | String | 100 | N | 사용자 이름 (sameUserCheckYn = Y 인경우 필수) Ex) 홍길동 |
7 userBirth | String | 100 | N | 사용자 생년월일(yyyyMMdd) (sameUserCheckYn = Y 인경우 필수) Ex) 19890919 |
8 appUrl | String | 4000 | N | 인앱 결제시 PAYCO(앱결제시)/ISP모바일 등 앱에서 결제를 처리한 뒤 복귀할 앱 url scheme (ex. testapp://open)- IOS 앱에서만 사용 |
▷ 20번 컬럼 extraData의 viewOptions 화면UI 옵션
변수명 | Type | Max Length | 필수 여부 | 설명 |
---|---|---|---|---|
1 showMobileTopGnbYn | String | 1 | N | 모바일 상단 GNB 노출여부 |
2 iframeYn | String | 1 | N | Iframe 호출 |
3 languageCode | String | 100 | N | 주문서 언어 코드 (default KR) - EN/KR |
▷ 21번 컬럼 sellerOptions(판매자 부가정보) 설정 - Json 형태의 String
변수명 | Type | Max Length | 필수여부 | 설명 |
---|---|---|---|---|
clientIp | String | 20 | N | 클라이언트 IP |
memberId | String | 50 | N | 서비스의 회원 ID - 가맹점(게임)의 유저 ID를 의미합니다 |
판매자 부가정보가 포함된 주문예약 API 샘플 코드
{
"sellerKey": "GTXYJV",
"payMode": "PAY2",
"orderProducts": [{
"productImageUrl": "",
"orderConfirmMobileUrl": "",
"productId": "GAME_GTXYJV_EASYP",
"productPaymentAmt": 11000,
"productAmt": 11000,
"cpId": "GAME_GTXYJV",
"sortOrdering": 1,
"orderQuantity": 1,
"productName": "[PAYCO 게임] 프리미엄 패키지",
"orderConfirmUrl": "",
"taxationType": "TAXATION",
"sellerOrderProductReferenceKey": "ITEM_100001",
"option": ""
}],
"totalTaxableAmt": 10000,
"totalTaxfreeAmt": 0,
"totalVatAmt": 1000,
"totalPaymentAmt": 11000,
"orderChannel": "PC",
"sellerOrderReferenceKey": "TEST329710910399",
"orderMethod": "EASYPAY",
"individualCustomNoInputYn": "N",
"sellerOptions": "{\"clientIp\":\"125.7.198.4\",\"memberId\":\"payco1234\"}",
....... 생략
}
주문 예약 API > OUTPUT
변수명 | Type | Max Length | 설명 |
---|---|---|---|
1 reserveOrderNo | String | 20 | 주문예약번호 |
2 orderSheetUrl | String | 1000 | PAYCO주문서 url (팝업 open) |
※ Default format 부분 중 result 컬럼 부분만 표시 하였음
주문 예약 API > OUTPUT 샘플코드
{
"result":{
"reserveOrderNo": "201703222004466453",
"orderSheetUrl":"https://alpha-
bill.payco.com/app/bridgeLogin
/D8DD85C4CD3E413D31ADBDE0696A2D9C
9747165D69DCA1982744F33924A8A200"
},
"code": 0,
"message": "success"
}
3-2. 결제인증 완료(payco_return)
- 주문예약 API 연동 시 파라미터로 'returnUrl'을 전달하게 됩니다.
- 'returnUrl'은 결제인증완료URL로 외부가맹점이 제공하는 페이지입니다.
- 결제인증 성공시점 또는 사용자취소시 외부가맹점의 returnUrl로 이동합니다.
- 캐릭터셋은 UTF-8이며, GET로 전달합니다. (option POST)
- 예약시 returnUrlParam 값에 셋팅된 정보가 존재시 해당값을 추가하여 returnUrl을 호출합니다.
- 예] 예약API 호출시 전달된 정보
- - "returnUrl": "https://alpha-api-bill.payco.com/test/surl/ok"
- - "returnUrlParam" : "{\"returnUrlParam1\":\"data1\", \"returnUrlParam2\":300}"
- 예] 결제인증완료 호출 페이지
- - http://alpha-api-bill.payco.com/test/surl/ok?returnParam1=data1&returnParam2=300
- 자세한 항목은 아래 'returnUrl 로 전달되는 정보'를 참고합니다.
- returnUrl에서는 결제팝업창을 close한 다음 주문이 가능할 경우 결제승인처리API를 호출하여 주문이 완료 (결제완료) 될 수 있도록 합니다.
- 가맹점에서는 총 결제금액 (totalPaymentAmt)과 외부가맹점번호가 일치하는지 확인합니다.
returnUrl 로 전달되는 정보
변수명 | Type | Max Length | 설명 | 예 |
---|---|---|---|---|
1 reserveOrderNo | String | 20 | 주문예약번호 | 201408211000000720 |
2 sellerOrderReferenceKey | String | 100 | Y | 외부가맹점에서 관리하는 주문연동Key |
3 paymentCertifyToken | String | 100 | 결제인증토큰 - 결제승인시 필요 |
9FAFF0967482F8DE25AB92716C073842335235235 |
4 totalPaymentAmt | Number | 총 결제금액 | 119000 | |
5 discountAmt | Number | 쿠폰할인금액 | 5000 (PAYCO포인트 미포함) |
|
6 pointAmt | Number | PAYCO포인트 사용금액 | ||
7 code | Number | 결과코드 | 0 : 성공 2222 : 사용자에 의한 취소(close) 그 외 코드 : 오류 |
3-3. 결제승인 요청(payco_return)
- 결제인증 후 실제 결제완료 처리가 되는 API 입니다.
- 외부가맹점에서 주문 가능한 조건이 되는 경우 결제승인 API를 호출합니다. ( ex. 재고확인 )
- 승인처리 성공시 PAYCO 회원에게 PAYCO앱에 주문완료 push알림 및 email을 발송합니다.
- 결제인증 후 5분내 승인처리가 이루어져야 합니다.
- 중복 승인 요청이 일어나지 않도록 방어코드 작성 필요합니다.
- timeout 최대 30초 설정
- URL : /outseller/payment/approval
- totalOrderAmt(총 주문금액) + totalDeliveryFeeAmt(총 배송비) + totalRemoteAreaDeliveryFeeAmt(총 도서산간비용)
= 총 결제금액 (totalPaymentAmt)
결제승인 API > INPUT
변수명 | Type | Max Length | 필수여부 | 설명 |
---|---|---|---|---|
1 sellerKey | String | 100 | Y | 가맹점 코드 - 초기 연동 시 PAYCO에서 가맹점으로 값을 전달합니다 |
2 reserveOrderNo | String | 20 | Y | 주문예약번호 |
3 sellerOrderReferenceKey | String | 100 | Y | 외부가맹점에서 관리하는 주문연동Key |
4 paymentCertifyToken | String | 100 | Y | 결제인증토큰 - 결제인증완료 후 returnUrl로전달받은 정보 |
5 totalPaymentAmt | Number | 총결제금액 |
결제승인 API 샘플 코드 > INPUT
{
"sellerKey" : "GTXYJV",
"reserveOrderNo" : "201703222004466453",
"sellerOrderReferenceKey": "TEST329710910399",
"paymentCertifyToken" : "BARJT6MVGuyXmf/Gd5_75fba6omtUMNCnW2kv1nocMmT4eNQ_FNwsh8995zDHQNe",
"totalPaymentAmt": 11000
}
결제승인 API > OUTPUT
변수명 | Type | Max Length | 설명 | 예 |
---|---|---|---|---|
1 sellerOrderReferenceKey | String | 100 | 외부가맹점에서 발급하는 주문 연동 Key |
팝슈즈 예)20140821221250595 |
2 reserveOrderNo | String | 20 | 주문예약번호 | 201408211000000720 |
3 orderNo | String | 20 | 주문번호 | 20140821100000072 |
4 memberName | String | 15 | 주문자명(일부 마스킹처리) | |
5 memberEmail | String | 200 | 주문자EMAIL(일부 마스킹처리) | |
6 orderChannel | String | N/A | 주문채널 (PC/MOBILE) | PC |
7 totalOrderAmt | Number | 총 주문금액 | 116500 | |
8 totalPaymentAmt | Number | 총 결제금액 | 11900 | |
9 paymentCompletionYn | String | 1 | 결제완료여부 (Y/N) | Y |
10 orderProducts | Array | N/A | 주문상품 List | |
11 paymentDetails | Array | N/A | 결제내역 List | - 복합 결제의 경우 결제수단 별 array list로 구성되어 리턴 되며, 결제 수단은 추후 추가 될 수 있다. |
12 orderCertifyKey | String | 100 | 주문인증키 |
▷ orderProducts (주문상품List)
변수명 | Type | Max Length | 설명 | 예 |
---|---|---|---|---|
1 orderProductNo | String | 20 | 주문상품번호 | 20140821100000022 |
2 cpId | String | 30 | 상점ID | PS_TOASTCO |
3 productId | String | 50 | 상품ID | PS_TOASTCOMC1 |
4 sellerOrderProductReferenceKey | String | 100 | 외부가맹점에서 발급한 주문상품연동Key |
19801895 |
5 orderProductStatusCode | String | 50 | 주문상품 상태코드 | PAYED |
6 orderProductStatusName | String | 10 | 주문상품 상태명 | 결제완료 |
7 productKindCode | String | 상품 타입 | GENERAL_PRODUCT | |
8 productPaymentAmt | Float | 상품결제금액 | 5000 | |
9 originalProductPaymentAmt | Float | 원 상품결제금액 | 2000 |
▷ paymentDetails (결제내역 List)
변수명 | Type | Max Length | 설명 | 예 |
---|---|---|---|---|
1 paymentTradeNo | String | 20 | 결제번호 | 201409191000001142 |
2 paymentMethodCode | String | 10 | 결제수단코드 | 01 |
3 paymentMethodName | String | 15 | 결제수단명 | 신용카드 |
4 paymentAmt | Number | 결제금액 | 119000 | |
5 tradeYmdt | String | 14 | 결제일시 (yyyyMMddHHmmss) | 20140822120201 |
6 pgAdmissionNo | String | 20 | PG승인번호 | 209380 |
7 pgAdmissionYmdt | String | 14 | PG승인일시 (yyyyMMddHHmmss) | 20140822120201 |
8 easyPaymentYn | String | 1 | 간편결제여부 (Y/N) | N |
9 cardSettleInfo | Object | N/A | 신용카드 결제 정보 | ↓ |
10 cellphoneSettleInfo | Object | N/A | 핸드폰 결제 정보 | ↓ |
11 realtimeAccountTransferSettleInfo | Object | N/A | 실시간계좌이체 결제정보 | ↓ |
12 nonBankbookSettleInfo | Object | N/A | 무통장입금 결제정보 | ↓ |
13 couponSettleInfo | Object | N/A | 쿠폰정보 |
▷ cardSettleInfo (카드결제정보)
변수명 | Type | Max Length | 설명 | 예 |
---|---|---|---|---|
1 cardCompanyName | String | 15 | 카드사명 | 하나SK |
2 cardCompanyCode | String | 50 | 카드사코드 | CCSK |
3 cardNo | String | 300 | 카드번호 | **********1809 |
4 cardInstallmentMonthNumber | String | 2 | 할부개월(MM) | 00 |
5 cardAdmissionNo | String | 20 | 카드사 승인번호 | 31213333 |
6 cardInterestFreeYn | String | 1 | 무이자여부(Y/N) | Y |
7 corporateCardYn | String | 1 | 법인카드여부 (개인 N ,법인 Y) |
Y |
8 partCancelPossibleYn | String | 1 | 부분취소가능유무(Y/N) | Y |
▷ cellphoneSettleInfo(핸드폰 결제 정보)
변수명 | Type | Max Length | 설명 | 예 |
---|---|---|---|---|
1 cellphoneNo | String | 32 | 휴대폰번호 | 010-1111-2222 |
▷ realtimeAccountTransferSettleInfo(실시간계좌이체 결제정보)
변수명 | Type | Max Length | 설명 | 예 |
---|---|---|---|---|
1 bankName | String | 15 | 은행명 | 신한 |
2 bankCode | String | 50 | 은행코드 | 88 |
▷ nonBankbookSettleInfo (무통장입금 결제정보)
변수명 | Type | Max Length | 설명 | 예 |
---|---|---|---|---|
1 bankName | String | 15 | 은행명 | 신한 |
2 bankCode | String | 50 | 은행코드 | 88 |
3 accountNo | String | 200 | 계좌번호 | 1901801980225 |
4 paymentExpirationYmd | String | 8 | 입금만료일 | 20141208 |
▷ couponSettleInfo (쿠폰정보)
변수명 | Type | Max Length | 설명 | 예 |
---|---|---|---|---|
1 discountAmt | String | 15 | 쿠폰할인금액 | 10000 |
2 discountConditionAmt | String | 50 | 쿠폰할인조건 | 50000 |
결제승인 API 샘플 코드 > OUTPUT
{
"result": {
"sellerOrderReferenceKey": "TEST329710910399",
"reserveOrderNo": "201703222004466453",
"orderNo": "201703222002237177",
"memberName": "강**",
"memberEmail": "na****",
"orderChannel": "MOBILE",
"totalOrderAmt": 11000,
"totalDeliveryFeeAmt": 0,
"totalRemoteAreaDeliveryFeeAmt": 0,
"totalPaymentAmt": 11000,
"orderProducts": [{
"orderProductNo": "201703222002391601",
"sellerOrderProductReferenceKey": "ITEM_100001",
"orderProductStatusCode": "OPSPAED",
"orderProductStatusName": "결제완료",
"cpId": "GAME_GTXYJV",
"productId": "GAME_GTXYJV_EASYP",
"productKindCode": "GENERAL_PRODUCT",
"productPaymentAmt": 11000,
"originalProductPaymentAmt": 11000
}],
"paymentDetails": [{
"couponSettleInfo": {
"discountAmt": 2000.0,
"discountConditionAmt": 7000.0,
"encCouponId": null
},
"paymentTradeNo": "201703222002899033",
"paymentMethodCode": "75",
"paymentMethodName": "페이코 쿠폰",
"paymentAmt": 2000,
"tradeYmdt": "20170322145004",
"pgAdmissionNo": "29701",
"pgAdmissionYmdt": "20170322145004",
"easyPaymentYn": "N"
}, {
"cardSettleInfo": {
"cardCompanyName": "삼성카드",
"cardCompanyCode": "CCSS",
"cardNo": "941010******2222",
"cardInstallmentMonthNumber": "00",
"cardAdmissionNo": "90766383",
"cardInterestFreeYn": "N",
"corporateCardYn": "N",
"partCancelPossibleYn": "Y"
},
"paymentTradeNo": "201703222002899030",
"paymentMethodCode": "31",
"paymentMethodName": "신용카드",
"paymentAmt": 9000,
"tradeYmdt": "20170322145004",
"pgAdmissionNo": "17711901919006",
"pgAdmissionYmdt": "20170322145004",
"easyPaymentYn": "Y"
}],
"orderCertifyKey": "Rzt4FUV7twAWe5cnhuCcKLYp4AAHz4yxgZ49znjVEnG4CC",
"paymentCompletionYn": "Y",
"paymentCompleteYmdt": "20170322145004"
},
"code": 0,
"message": "success"
}
3-4. 주문결제 취소 처리(payco_cancel)
- 기존에 생성된 주문 및 결제내역을 취소 처리하는 경우 사용합니다.
- PG취소가 가능한 금액으로 요청 했을 때만 취소됩니다.
- METHOD : POST
- URL : /outseller/order/cancel
주문 결제 취소 처리 API > INPUT
변수명 | Type | Max Length | 필수 여부 | 설명 |
---|---|---|---|---|
1 sellerKey | String | 100 | Y | 가맹점 코드 - 초기 연동 시 PAYCO에서 가맹점으로 값을 전달합니다. |
2 orderNo | String | 100 | Y | 주문번호 |
3 cancelTotalAmt | Number | Y | 취소할 총 금액
= totalCancelTaxfreeAmt + totalCancelTaxableAmt + totalCancelVatAmt |
|
4 totalCancelTaxfreeAmt | Number | N | 총 취소할 면세금액 | |
5 totalCancelTaxableAmt | Number | N | 총 취소할 과세금액 | |
6 totalCancelVatAmt | Number | N | 총 취소할 부가세 | |
7 totalCancelPossibleAmt | Number | N | 총 취소가능금액(현재기준) : 취소가능금액 검증 |
|
8 orderProducts | Array | N | 취소할 상품 List(부분취소인 경우 사용, 입력하지 않는 경우 전체 취소) | |
9 orderCertifyKey | String | Y | 주문완료통보시 내려받은 인증값 | |
10 requestMemo | String | N | 취소처리 요청메모 |
▷ orderProducts
변수명 | Type | Max Length | 필수 여부 | 설명 |
---|---|---|---|---|
1 sellerOrderProductReferenceKey | String | 100 | Y | 외부가맹점에서 관리하는 주문상품번호 |
2 cpId | String | 30 | Y | 상점 ID |
3 productId | String | 50 | Y | 상품 ID |
4 productAmt | Number | Y | 취소 할 주문상품 금액 | |
5 cancelDetailContent | String | 160 | N | 취소 상세 사유 |
주문결제 취소 처리 API 샘플 코드 > INPUT
{
"sellerKey" : "GTXYJV",
"orderNo" : "201703222002237177",
"cancelTotalAmt" : 11000,
"orderCertifyKey" : "Rzt4FUV7twAWe5cnhuCcKLYp4AAHz4yxgZ49znjVEnG4CC",
"orderProducts" : [
{
"sellerOrderProductReferenceKey" : "ITEM_100001",
"cpId" : "GAME_GTXYJV",
"productId" : "GAME_GTXYJV_EASYP",
"productAmt" : 11000,
"cancelDetailContent" : "TEST"
}
]
}
▷ 주문 결제 취소 처리 API > OUTPUT
변수명 | Type | Max Length | 설명 |
---|---|---|---|
1 cancelTradeSeq | Number | 19 | 취소내역번호 |
2 totalCancelPaymentAmt | Number | 총 취소금액 | |
3 remainCancelPossibleAmt | Number | 잔여 취소가능금액잔여 취소가능금액 | |
4 cancelPaymentDetails | Array | N/A | 취소 결제 내역 List |
※ Default format 부분 중 result 컬럼 부분만 표시 하였음
▷ cancelPaymentDetails
변수명 | Type | Max Length | 설명 | 예 |
---|---|---|---|---|
1 paymentTradeNo | String | 20 | 결제번호 | 201409191000001142 |
2 cancelPaymentTradeNo | String | 20 | 취소거래내역 결제번호 | 201409191000001142 |
3 paymentMethodCode | String | 10 | 결제수단코드 | 01 |
4 cancelPaymentAmt | Number | 취소금액 | 119000 | |
5 tradeYmdt | String | 14 | 취소일시 (yyyyMMddHHmmss) |
20140822120201 |
주문결제 취소 처리 API 샘플 코드 > OUTPUT
{
"result": {
"orderNo": "201703222002237177",
"cancelTradeSeq": 2000000270,
"totalCancelPaymentAmt": 11000,
"remainCancelPossibleAmt": 0,
"cancelPaymentDetails": [
{
"paymentTradeNo": "201703262000003384",
"paymentMethodCode": "98",
"cancelPaymentAmt": 40000,
"tradeYmdt": "20141226152604"
}
]
"cancelYmdt": "20151019172418"
},
"message": "success",
"code": 0
}