•  

1. 구매하기 버튼 적용 방법

  • PAYCO 서비스와 연동하기 위해서는 첫번째 상품 페이지 또는 장바구니 목록 페이지등 고객의 상품구매를 위한 결제 버튼을 구성해야 합니다. 구매하기 버튼을 구성하려면 다음과 같은 절차로 작업을 하시면 됩니다.
  • 1-1. PAYCO 구매하기 버튼 종류
    • PAYCO 구매하기 버튼은 주문유형(결제유형)에 따라 버튼 타입이 존재합니다. 바로구매(CHECKOUT) 타입은 버튼 타입이 크기, 색상 별로 여러 타입이 존재하고 간편결제(EASYPAY)는 색상만 두가지로 정해져 있습니다.

PAYCO 구매하기 버튼 종류

주문 예약 API > INPUT 표
주문유형 버튼타입 크기 버튼이미지
바로구매
(CHECKOUT)
A1 277X70 checkout_A1
A2 277X70 checkout_A2
A3 277X70 checkout_A3
A4 277X70 checkout_A4
A5 277X70 checkout_A5
A6 277X70 checkout_A6
바로구매
(CHECKOUT)
B1 338X84 checkout_B1
B2 338X84 checkout_B2
B3 338X84 checkout_B3
B4 338X84 checkout_B4
B5 338X84 checkout_B5
B6 338X84 checkout_B6
바로구매
(CHECKOUT)
C1 296X84 checkout_C1
C2 296X84 checkout_C2
C3 296X84 checkout_C3
C4 296X84 checkout_C4
C5 296X84 checkout_C5
C6 296X84 checkout_C6
간편결제
(EASYPAY)
A1 EASYPAY_A1

※ 1-2. 버튼 이미지 삽입을 위한 자바스크립트

버튼 이미지 삽입을 위한 자바 스크립트는 아래와 같습니다.

- 제공하는 자바스크립트 URL 을 추가합니다.

PC 버전 : https://static-bill.nhnent.com/payco/checkout/js/payco.js

모바일 : https://static-bill.nhnent.com/payco/checkout/js/payco_mobile.js

- 노출하고자 하는 버튼 타입 및 옵션을 파라미터로 하여 자바스크립트 함수를 호출합니다

자바스크립트 파라미터 설명

주문 예약 API > INPUT 표
컬럼명 설명 선택가능 값
SELLER_KEY 가맹점 코드 파트너센터에서 발급받은 가맹점코드
ORDER_METHOD 주문 유형 CHECKOUT : 바로구매형
EASYPAY : 간편결제형
BUTTON_TYPE 버튼 타입 선택 A1, A2, …
BUTTON_HANDLER 구매하기 버튼 클릭 시 호출할 이벤트 Handler 함수 (callback) 자바스크립트 함수명
ex) order(p1,p2) => order
BUTTON_HANDLER_ARG 구매하기 버튼 클릭 시 호출할 이벤트 Handler 함수 인자 (필요 시) 파트너센터에서 발급받은 가맹점코드
DISPLAY_PROMOTION 프로모션 문구 출력 여부 Y, N (기본값 Y)
DISPLAY_ELEMENT_ID 버튼 노출 위치의 Element ID 자체적으로 정의한 값

※ 1-3. PAYCO 구매하기 버튼 클릭 시 처리 방법 설명

- 버튼이 삽입되고 화면에서 사용자가 구매하기 버튼을 클릭하면 가맹점은 구매상품의 색상, 타입 등 필수 옵션 사항을 선택 했는지 체크합니다.

- 사용자가 옵션을 선택 했거나, 선택해야 할 옵션이 없는 상품의 경우 주문 정보 등록을 위한 처리를 진행합니다. ( PAYCO 주문 예약 API 이용 )

- 그 다음 전달 받은 값을 이용해 URL로 주문서 페이지를 띄웁니다.

1-2. 버튼 이미지 삽입을 위한 자바스크립트

					
<script>
	Payco.Button.register({
		SELLER_KEY :   ‘111’,		// 가맹점 코드
		ORDER_METHOD : "CHECKOUT",	// 주문유형 : CHECKOUT / EASYPAY
		BUTTON_TYPE : "A1",		// 버튼타입 선택 (A1,A2)
		BUTTON_HANDLER : order,		// 구매하기 버튼이벤트 Handler 함수등록
		BUTTON_HANDLER_ARG : ['param1', 'param2'],// handler 함수 argument
		DISPLAY_PROMOTION : "Y",		// 이벤트 문구 출력 여부
		DISPLAY_ELEMENT_ID : "payco_type1",	// 노출될 element id
		"" : ""
	});
</script>
					
					

2. 주문상품 상태변경(payco_upstatus)

  • 가맹점이 변경 가능한 주문상품상태는 '배송 시작 / 취소(수기환불의 경우)' / 구매확정
  • 에스크로가 적용되는 결제수단(무통장입금, 계좌(결제/송금))인 경우 배송 시작, 구매 확정 상태는 정산에 영향을 미칠 수 있으므로 반드시 둘 중 하나는 호출이 필요 합니다.
  • URL : /outseller/order/updateOrderProductStatus

주문 상품 상태 변경 API > INPUT

주문 상품 상태 변경 API > INPUT 표
변수명 Type Max Length 필수 여부 설명
1 sellerKey String 100 Y 가맹점 코드
- 파트너센터에서 알려주는 값으로, 초기 연동시 Payco에서 쇼핑몰에 값을 전달합니다
2 orderNo String 100 N 주문번호
3 sellerOrderProductReferenceKey String 100 Y 외부가맹점에서 관리하는 주문상품연동키
(팝슈즈의 경우 ord_opt_no)
4 orderProductStatus String N/A Y 변경할 주문상품상태

주문 상품 상태 변경 API > INPUT

					
{
	"orderNo": "201608312002168187",
	"sellerKey": "S0FSJE",
	"sellerOrderProductReferenceKey": "ITEM_100001",
	"orderProductStatus": "DELIVERY_READY"
}
					
					

주문 상품 상태 변경 API > OUTPUT

주문 상품 상태 변경 API > INPUT 표
변수명 Type 설명
code Number 성공여부
message String 성공/실패 message

주문 상품 상태 변경 API > OUTPUT

					
{
	"code": 0,
	"message": "success"
}
					
					

3. 주문결제 취소 가능여부 조회(payco_cancel_check)

  • 취소 처리 API를 호출하기 이전에 취소 처리를 진행할 수 있는지 확인하기 위해 사용합니다.
  • cancelPossibleYn이 N인 경우 PG취소가능금액(pgCancelPossibleAmt)만큼만 "주문 및 결제 취소 처리 API"로 취소가 가능합니다.
  • cancelPossibleYn 이 N인 경우
    • - 결제 건 중 PG결제 취소가 불가능한 내역이 있습니다.
    • - 부분 취소가 필요한 경우 “취소할 총 금액 <= PG 취소가능금액" 으로 요청해야 합니다.
  • PG결제 취소 불가능한 경우
    • - 핸드폰 익월 취소요청
    • - 무통장 입금 취소요청
    • - 부분취소 불가능한 PG결제의 부분취소 요청
  • 취소 할 배송비가 있는 경우 (부분 취소의 경우만 해당)
    • - 취소 배송비를 취소할 상품 List에 추가해야 합니다.
    • - 추가 배송비도 함께 취소해야 하는 경우 배송비 상품의 productAmt에 추가 배송비를 합산한 금액으로 넘겨야합니다.
    • - 주문예약 시 전달했던 배송비 상품의 sellerOrderProductReferenceKey, cpId, productId 가 동일해야 합니다.
  • 수기 환불 시 : 적립예정이거나 적립 완료 된 포인트에 대해 수기 환불 금액만큼 포인트 취소를 요청 해야 합니다.
  • METHOD : POST
  • URL : /outseller/order/cancel/checkAvailability

주문 결제 취소 가능여부 조회 API > INPUT

주문 상품 상태 변경 API > INPUT 표
변수명 Type Max Length 필수 여부 설명
1 sellerKey String 100 Y 가맹점 코드
- 파트너센터에서 알려주는 값으로, 초기 연동 시 Payco에서 쇼핑몰에 값을 전달합니다.
2 orderNo String 100 Y 주문 번호
3 cancelTotalAmt Number Y 취소할 총 금액
4 orderProducts Array N/A N 취소할 상품 List(부분취소인 경우 사용, 입력하지 않는 경우 전체 취소)

▷ orderProducts

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 취소 할 주문상품 금액

주문 결제 취소 가능여부 조회 API > INPUT

					
{
     "sellerKey" : "S0FSJE", 
     "orderNo" : "201503302000162863", 
     "cancelTotalAmt" : 40000, 
     "cancelTotalFeeAmt" : 0, 
     "orderProducts" : [ 
         { 
             "sellerOrderProductReferenceKey" : "1171997", 
             "cpId" : "PARTNERTEST", 
             "productId" : "PROD_EASY", 
             "productAmt" : 40000 
         } 
     ] 
} 
					
					

주문 결제 취소 가능여부 조회 API > OUTPUT

주문 결제 취소 가능여부 조회 API > OUTPUT 표
변수명 Type Max Length 설명
1 cancelPossibleYn String 1 취소가능여부
2 cancelImpossibleReason String 500 취소불가이유
3 partCancelPossibleYn String 1 부분취소가능여부
4 pgCancelPossibleAmt Number PG취소가능금액 (PG결제취소 불가인 결제수단을 제외한 취소가능금액)
5 cancelImpossibleReasonCode Number 취소불가사유코드

※ Default format 부분 중 result 컬럼 부분만 표시

주문 결제 취소 가능여부 조회 API > OUTPUT

					
{ 
     "result": { 
         "cancelPossibleYn": "N", 
         "partCancelPossibleYn": "N", 
         "pgCancelPossibleAmt": 500, 
         "cancelImpossibleReason": "PAYCO 포인트 잔액 부족으로 주문을 취소할 수 없습니다. PAYCO 고객센터 : 1544-6891",
         "cancelImpossibleReasonCode": 1303 
     }, 
     "message":"success", 
     "code": 0 
}
					
					

4. 마일리지 적립취소(payco_mileage_cancel)

  • 수기 환불의 경우 취소 할 결제금액을 전달하면 결제금액에 해당하는 마일리지를 계산하여 적립전체/부분취소 처리를 합니다.
  • URL : /outseller/order/cancel/partMileage

마일리지 적립 취소 > INPUT

마일리지 적립 취소 > INPUT 표
변수명 Type Max Length 필수 여부 설명
1 sellerKey String 100 Y 판매자Key
2 orderNo String 100 Y 주문번호
3 cancelPaymentAmount Number Y 마일리지 부분 취소할 결제금액(파라미터로 전달한 결제금액에 마일리지적립율을 곱한 액수를 취소하도록 처리되어 있습니다)

마일리지 적립 취소 > INPUT

					
{
     "sellerKey" : "S0FSJE", 
     "sellerOrderReferenceKey" : "TESTORDERKEY00000003", 
     "cancelPaymentAmount" : "1" 
 }
					
					

마일리지 적립 취소 > OUTPUT

마일리지 적립 취소 > OUTPUT 표
변수명 Type Max Length 설명
1 canceledMileageAcmAmount Number 취소된 마일리지 금액
2 remainingMileageAcmAmount Number 남아있는 마일리지 금액

마일리지 적립 취소 > OUTPUT

					
{ 
     "result":{ 
         "canceledMileageAcmAmount":1.0, 
         "remainingMileageAcmAmount":23988.0 
     }, 
     "message":"success", 
     "code":0 
 }
					
					

5. 가맹점별 연동키 유효성 체크(payco_key_check)

  • PAYCO API를 사용하기 위해 사전에 발급해 준 가맹점 별 인증 키에 대한 사용가능 여부를 체크 합니다.
  • URL : /outseller/order/code/checkUsability

가맹점 별 코드 값 사용가능 여부 > INPUT

가맹점 별 코드 값 사용가능 여부 > INPUT 표
변수명 Type Max Length 필수 여부 설명
1 sellerKey String 100 Y 판매자Key
2 codes Array 100 Y 코드 값 리스트

codes

codes 표
변수명 Type Max Length 필수 여부 설명
1 codeKind String 100 Y 코드종류
<값>
CP_ID(상점ID)
PRODUCT_ID(상품ID)
2 codeValue String 50 Y 코드 값
3 upperCodeValue String 50 codeKind=PRODUCT_ID 인 경우 필수
- upperCodeValue에 cpId를 넘겨준다.

가맹점 별 코드 값 사용가능 여부 > INPUT

					
{ 
     "sellerKey" : "S0FSJE", 
     "codes" : [ 
         { 
             "codeKind" : "CP_ID", 
             "codeValue" : "2" 
         }, 
         {
             "codeKind" : "CP_ID", 
             "codeValue" : "PARTNERTEST" 
         }, 
         { 
             "codeKind" : "PRODUCT_ID", 
             "codeValue" : "PROD_EASY", 
             "upperCodeValue" : "PARTNERTEST" 
         }, 
         { 
             "codeKind" : "MILEAGE_ACCUMULATION_POLICY_SEQ", 
             "codeValue" : 2000000003 
         } 
     ] 
 }
					
					

가맹점 별 코드 값 사용가능 여부 > OUTPUT

마일리지 적립 취소 > OUTPUT 표
변수명 Type Max Length 설명
1 codeKind String 50 코드 종류
CP_ID(상점ID)
PRODUCT_ID(상품ID)
2 codeValue String 50 코드 값
3 upperCodeValue String 50 상위 코드값
4 usabilityYn String 1 등록가능여부(Y/N)
5 useImpossibleReason String 1000 등록불가이유

가맹점 별 코드 값 사용가능 여부 > OUTPUT

					
{ 
     "result": [ 
         { 
             "codeKind": "CP_ID", 
             "codeValue": "2", 
             "usabilityYn": "N", 
             "useImpossibleReason": "The cpId is invalid." 
         }, 
         { 
             "codeKind": "CP_ID", 
             "codeValue": "PARTNERTEST", 
             "usabilityYn": "Y" 
         }, 
         { 
             "codeKind":"PRODUCT_ID", 
             "codeValue": "PROD_EASY", 
             "usabilityYn": "Y" 
         }, 
         { 
             "codeKind":"MILEAGE_ACCUMULATION_POLICY_SEQ", 
             "codeValue": 2000000003,
             "usabilityYn": "Y" 
         } 
     ], 
     "message":"success", 
     "code": 0 
 }
					
					

6. 무통장 입금 완료 통보(payco_without_bankbook)

  • 주문예약 API 연동 시 파라미터로 nonBankbookDepositInformUrl 전달하게 됩니다.
  • Payco는 무통장입금 결제완료 시점에 nonBankbookDepositInformUrl API를 호출합니다.
  • server To server 로 호출이 됩니다.
  • 결제 관련 정보는 'response' 라는 이름의 parameter로 제공되며, parameter value를 UTF-8 UrlDecode하면 Json 형태의 값을 받아 볼 수 있습니다.
  • 주문완료통보 API와 동일한 포맷으로 전달됩니다.
  • 자세한 항목은 아래 NonBankbookDepositInformUrl 로 전달되는 정보'를 참고합니다.
  • nonBankbookDepositInformUrl 결과로 성공은 'OK' 실패는 'ERROR'를 리턴합니다.
  • totalOrderAmt(총 주문금액) + totalDeliveryFeeAmt(총 배송비) + totalRemoteAreaDeliveryFeeAmt(총 도서산간비용)
    = 총 결제금액 (totalPaymentAmt)

NonBankbookDepositInformUrl 로 전달되는 정보

NonBankbookDepositInformUrl 로 전달되는 정보 표
변수명 Type Max Length 설명
1 sellerOrderReferenceKey String 100 외부가맹점에서 발급하는 주문 연동 Key 예)201408212212505952
2 reserveOrderNo String 20 주문예약번호 201408211000000720
3 orderNo String 20 주문번호 - 빌링결제 이후 Payco에서 발급되는 Key입니다.

- reserverOrderNo 주문예약번호는 orderNo 를 발급받기 전까지의 임의의 Key라고 생각하면 됩니다.

- orderNo 가 발급된 이후에는 Payco와 orderNo로 통신을 하게 됩니다.
(또는 sellerOrderReferenceKey)

- 주문예약 시 자동결제 완료여부를 N으로 한 경우, 결제수단이 무통장입금이 아니면 주문번호가 전달되지 않는다. (결제 완료 API의 응답 값으로 전달 됩니다.)
201408211000000720
4 memberName String 15 주문자명(일부 마스킹처리)
5 memberEmail String 200 주문자EMAIL(일부 마스킹처리)
6 orderChannel String N/A 주문채널 (PC/MOBILE) PC
7 totalOrderAmt Number 총주문금액 116500
8 totalDeliveryFeeAmt Number 총배송비 2500
9 totalRemoteAreaDeliveryFeeAmt Number 총도서산간비 0
10 totalPaymentAmt Number 총결제금액 119000
11 paymentCompletionYn String 1 결제완료여부 (Y/N) Y
12 deliveryPlace Object N/A 배송지정보
13 orderProducts Array N/A 주문상품 List
14 paymentDetails Array N/A 결제내역 List
15 serviceUrlParam String 1000 주문예약 API호출시 전달한 serviceUrlParam 항목
16 orderCertifyKey String 1000 주문완료통보시 내려받은 인증 값

▷ deliveryPlace (배송지)

deliveryPlace (배송지) 표
변수명 Type Max Length 설명
1 recipient String 15 수령인 홍길동
2 englishReceipent String 50 수령인영문명 LEEJINHEE
3 address1 String 300 기본주소 경기도 성남시 분당구 삼평동
4 address2 String 300 상세주소 629 플레이뮤지엄
5 zipcode String 50 우편번호 463-400
6 deliveryMemo String 30 배송메모 경비실에 맡겨주세요
7 telephone String 50 연락처 010-1111-2222
8 individualCustomUniqNo String 50 개인통관번호

▷ orderProducts (주문상품List)

orderProducts (주문상품List) 표
변수명 Type Max Length 설명
1 orderProductNo String 20 주문상품번호 20140821100000022
2 cpId String 30 상점ID PS_CO
3 productId String 30 상품ID PS_TOASTCOMC1
4 sellerOrderProductReferenceKey String 100 외부가맹점에서 발급한 주문상품연동Key 19801895
5 orderProductStatusCode String 50 주문상품상태코드 PAYED
6 orderProductStatusName String 10 주문상품상태명 결재완료

paymentDetails (결제내역 List)

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 nonBankbookSettleInfo Object N/A 무통장입금 결제정보

▷ nonBankbookSettleInfo (무통장입금 결제정보)

nonBankbookSettleInfo (무통장입금 결제정보) 표
변수명 Type Max Length 설명
1 bankName String 15 은행명 신한
2 bankCode String 50 은행코드 88
3 accountNo String 200 계좌번호 1901801980225
4 paymentExpirationYmd String 8 입금만료일 20141208

▶ Result success

OK

▶Result fail

ERROR

NonBankbookDepositInformUrl 로 전달되는 정보

					
{ 
    "reserveOrderNo":"201408211000000720", 
    "orderNo":"201408211000000721", 
    "sellerOrderReferenceKey":"201408212212505952", 
    "orderChannel":"PC", 
    "totalOrderAmt":116500.0, 
    "totalDeliveryFeeAmt":2500.0, 
    "totalRemoteAreaDeliveryFeeAmt":0.0, 
    "totalPaymentAmt" : 119000.0, 
    "paymentCompletionYn" : "N", 
    "memberName" : "홍*동", 
    "memberEmail" : "ho*@nhnent.com", 
    "deliveryPlace":{ 
         "recipient":"이진희", 
         "address1":"경기도 성남시 분당구 삼평구", 
         "address2":"629", 
         "zipcode":"123123", 
         "telephone":"02-0111-2222", 
         "deliveryMemo" : "경비실에 맡겨주세요" 
     }, 
    "paymentDetails": [{ 
         "paymentTradeNo" : "20140821100000022", 
         "paymentMethodName":"무통장입금", 
         "paymentMethodCode":"02", 
         "paymentAmt":109000.0, 
         "tradeYmdt":"20140821221250", 
         "pgAdmissionNo":"12980185", 
         "pgAdmissionYmdt":"20140821221255", 
         "easyPaymentYn":"N", 
         "nonBankbookSettleInfo":{ 
             "accountHolderName":"(주)지누스포츠 (팝슈즈)", 
             "bankName":"국민", 
             "accountNo":"465101-01-217098", 
             "expirationYmd":"20140901" 
             } 
     },{ 
         "paymentTradeNo" : "20140821100000022", 
         "paymentMethodName":"PAYCO포인트", 
         "paymentMethodCode":"98", 
         "paymentAmt":10000.0, 
         "tradeYmdt":"20140821221250", 
         "pgAdmissionNo":"20140821100000023", 
         "pgAdmissionYmdt":"20140821221255", 
         "easyPaymentYn":"N" 
    }], 
    "orderProducts" : [{ 
         "productId" : "PS_TOASTCOMC1", 
         "cpId" : "PS_TOASTCO", 
         "orderProductNo" : "20140821100000022", 
         "sellerOrderProductReferenceKey" : "1", 
         "orderProductStatusCode" : "PAYED", 
         "orderProductStatusName" : "결제완료" 
         }, 
         { 
         "productId" : "PS_TOASTCOMC2", 
         "cpId" : "PS_TOASTCO", 
         "orderProductNo" : "20140821100000023", 
         "sellerOrderProductReferenceKey" : "2", 
         "orderProductStatusCode" : "PAYED", 
         "orderProductStatusName" : "결제완료" 
    }] 
}
					
					

7. 결제수단 및 코드조회

  • 가맹점에서 사용중인 결제수단 및 은행코드, 신용카드코드를 제공한다.( 사용중인 결제수단 : 가맹점 계약사항 )
  • URL : /outseller/support/search/info

결제수단 및 코드조회 API > INPUT

결제수단 및 코드조회 API > INPUT 표
변수명 Type Max Length 필수 여부 설명
1 sellerKey String 100 Y 가맹점 코드
2 cpId String 30 Y 상점ID
3 productId String 50 N 상품ID

결제수단 및 코드조회 API > INPUT

					
{
     "sellerKey" : "S0FSJE", 
     "cpId" : "PARTNERTEST"
 }
					
					

결제수단 및 코드조회 API > OUTPUT

결제수단 및 코드조회 API > OUTPUT 표
변수명 Type Max Length 설명
1 usePaymentMethodList Array N/A 사용 결제수단정보
2 wholeCardList Array N/A 전체 카드사정보
3 wholeBankList Array N/A 전체 은행사정보
4 interestFreeUrl String 1000 무이자안내URL
5 introduceContents String 1000 공통소개문구

▷ usePaymentMethodList (사용 결제수단정보)

usePaymentMethodList (사용 결제수단정보) 표
변수명 Type Max Length 설명
1 paymentMethodCode String 10 결제수단코드 98
2 paymentMethodName String 15 결제수단명 PAYCO포인트
3 usableCardList Array N/A 사용 카드사정보
4 usableBankList Array N/A 사용 은행사정보

▶ usableCardList (사용 카드사정보)

usableCardList (사용 카드사정보) 표
변수명 Type Max Length 설명
1 cardCompanyCode String 10 결제수단코드 98
2 cardCompanyName String 15 결제수단명 PAYCO포인트

▶ usableBankList (사용 은행사정보)

usableBankList (사용 은행사정보) 표
변수명 Type Max Length 설명
1 bankCode String 10 결제수단코드 98
2 bankName String 15 결제수단명 PAYCO포인트

▷ wholeCardList (전체 카드사정보)

wholeCardList (전체 카드사정보) 표
변수명 Type Max Length 설명
1 cardCompanyCode String 10 결제수단코드 98
2 cardCompanyName String 15 결제수단명 PAYCO포인트

▷ wholeBankList (전체 은행사정보)

wholeCardList (전체 카드사정보) 표
변수명 Type Max Length 설명
1 bankCode String 10 결제수단코드 98
2 bankName String 15 결제수단명 PAYCO포인트

결제수단 및 코드조회 API > OUTPUT

					
{ 
 "result":{ 
     "usePaymentMethodList":[ 
		{"paymentMethodCode": "98", "paymentMethodName": "PAYCO포인트"}, 
		{"paymentMethodCode": "75", "paymentMethodName": "페이코 (자유이용쿠폰)"}, 
		{"paymentMethodCode": "33", "paymentMethodName": "신용카드(터치)"}, 
		{"paymentMethodCode": "02", "paymentMethodName": "무통장입금 ", 
		sableBankList":[
    		{"bankCode": "03", "bankName": "기업은행"}, 
		{"bankCode": "04", "bankName": "국민은행"}, 
          	{"bankCode": "05", "bankName": "외환은행"}, 
          	{"bankCode": "11", "bankName": "농협"}, 
          	{"bankCode": "20", "bankName": "우리은행"}, 
          	{"bankCode": "23", "bankName": "SC제일은행"}, 
          	{"bankCode": "27", "bankName": "시티은행"}, 
          	{"bankCode": "31", "bankName": "대구은행"}, 
          	{"bankCode": "32", "bankName": "부산은행"}, 
          	{"bankCode": "34", "bankName": "광주은행"}, 
          	{"bankCode": "39", "bankName": "경남은행"}, 
          	{"bankCode": "71", "bankName": "우체국"}, 
          	{"bankCode": "88", "bankName": "신한은행"} 
		]}, 
         {"paymentMethodCode": "04", "paymentMethodName": "계좌이체"}, 
         {"paymentMethodCode": "31", "paymentMethodName": "신용카드 ", 
             sableCardList":[ 
                 {"cardCompanyCode": "CCBC", "cardCompanyName": "BC카드"}, 
                 {"cardCompanyCode": "CCDI", "cardCompanyName": "현대카드"}, 
                 {"cardCompanyCode": "CCHN", "cardCompanyName": "하나카드"}, 
                 {"cardCompanyCode": "CCKE", "cardCompanyName": "하나(외환)카드"},                      
                 {"cardCompanyCode": "CCKM", "cardCompanyName": "KB국민카드"}, 
                 {"cardCompanyCode": "CCLG", "cardCompanyName": "신한카드"}, 
                 {"cardCompanyCode": "CCLO", "cardCompanyName": "롯데카드"}, 
                 {"cardCompanyCode": "CCNH", "cardCompanyName": "NH농협카드"}, 
                 {"cardCompanyCode": "CCSS", "cardCompanyName": "삼성카드"} 
         ]}, 
         {"paymentMethodCode": "60", "paymentMethodName": "휴대폰 "} 
     ], 
     "wholeCardList":[ 
         {"cardCompanyCode": "CCBC", "cardCompanyName": "BC카드"}, 
         {"cardCompanyCode": "CCKM", "cardCompanyName": "KB국민카드"}, 
         {"cardCompanyCode": "CCNH", "cardCompanyName": "NH농협카드"}, 
         {"cardCompanyCode": "CCKJ", "cardCompanyName": "광주카드"}, 
         {"cardCompanyCode": "CCAM", "cardCompanyName": "롯데아멕스카드"}, 
         {"cardCompanyCode": "CCLO", "cardCompanyName": "롯데카드"}, 
         {"cardCompanyCode": "CCKD", "cardCompanyName": "산업카드"}, 
         {"cardCompanyCode": "CCSS", "cardCompanyName": "삼성카드"}, 
         {"cardCompanyCode": "CCSU", "cardCompanyName": "수협카드"}, 
         {"cardCompanyCode": "CCSG", "cardCompanyName": "신세계한미"}, 
         {"cardCompanyCode": "CCLG", "cardCompanyName": "신한카드"}, 
         {"cardCompanyCode": "CCSH", "cardCompanyName": "신한카드"}, 
         {"cardCompanyCode": "CCCU", "cardCompanyName": "신협카드"}, 
         {"cardCompanyCode": "CCCT", "cardCompanyName": "씨티카드"}, 
         {"cardCompanyCode": "CCKE", "cardCompanyName": "외환카드"}, 
         {"cardCompanyCode": "CCPH", "cardCompanyName": "우리카드"}, 
         {"cardCompanyCode": "CCUF", "cardCompanyName": "은련카드"}, 
         {"cardCompanyCode": "CCSB", "cardCompanyName": "저축카드"}, 
         {"cardCompanyCode": "CCJB", "cardCompanyName": "전북카드"}, 
         {"cardCompanyCode": "CCCJ", "cardCompanyName": "제주카드"}, 
         {"cardCompanyCode": "CCHN", "cardCompanyName": "하나SK카드"}, 
         {"cardCompanyCode": "CCHM", "cardCompanyName": "한미카드"}, 
         {"cardCompanyCode": "CJCF", "cardCompanyName": "해외JCB"}, 
         {"cardCompanyCode": "CMCF", "cardCompanyName": "해외마스터"}, 
         {"cardCompanyCode": "CVSF", "cardCompanyName": "해외비자"}, 
         {"cardCompanyCode": "CCDI", "cardCompanyName": "현대카드"} 
     ], 
     "wholeBankList":[ 
         {"bankCode": "02", "bankName": "산업은행"}, 
         {"bankCode": "03", "bankName": "기업은행"}, 
         {"bankCode": "04", "bankName": "국민은행"}, 
         {"bankCode": "05", "bankName": "외환은행"}, 
         {"bankCode": "07", "bankName": "수협"}, 
         {"bankCode": "11", "bankName": "농협"}, 
         {"bankCode": "20", "bankName": "우리은행"}, 
         {"bankCode": "209", "bankName": "동양종합금융증권"}, 
         {"bankCode": "218", "bankName": "현대증권"}, 
         {"bankCode": "23", "bankName": "SC제일은행"}, 
         {"bankCode": "230", "bankName": "미래에셋증권"}, 
         {"bankCode": "238", "bankName": "대우증권"}, 
         {"bankCode": "240", "bankName": "삼성증권"}, 
         {"bankCode": "243", "bankName": "한국투자증권"}, 
         {"bankCode": "247", "bankName": "우리투자증권"}, 
         {"bankCode": "26", "bankName": "신한은행"}, 
         {"bankCode": "261", "bankName": "교보증권"}, 
         {"bankCode": "262", "bankName": "하이투자증권"}, 
         {"bankCode": "263", "bankName": "HMC투자증권"}, 
         {"bankCode": "264", "bankName": "키움증권"}, 
         {"bankCode": "265", "bankName": "이트레이드증권"}, 
         {"bankCode": "266", "bankName": "SK증권"}, 
         {"bankCode": "267", "bankName": "대신증권"}, 
         {"bankCode": "268", "bankName": "솔로몬투자증권"}, 
         {"bankCode": "269", "bankName": "한화증권"}, 
         {"bankCode": "27", "bankName": "씨티은행"}, 
         {"bankCode": "270", "bankName": "하나대투증권"}, 
         {"bankCode": "278", "bankName": "신한금융투자"}, 
         {"bankCode": "279", "bankName": "동부증권"}, 
         {"bankCode": "280", "bankName": "유진투자증권"}, 
         {"bankCode": "287", "bankName": "메리츠종합금융증권"}, 
         {"bankCode": "289", "bankName": "NH투자증권"}, 
         {"bankCode": "290", "bankName": "부국증권"}, 
         {"bankCode": "291", "bankName": "신영증권"}, 
         {"bankCode": "292", "bankName": "LIG투자증권"}, 
         {"bankCode": "31", "bankName": "대구은행"}, 
         {"bankCode": "32", "bankName": "부산은행"}, 
         {"bankCode": "34", "bankName": "광주은행"}, 
         {"bankCode": "35", "bankName": "제주은행"}, 
         {"bankCode": "37", "bankName": "전북은행"}, 
         {"bankCode": "39", "bankName": "경남은행"}, 
         {"bankCode": "45", "bankName": "새마을금고"}, 
         {"bankCode": "48", "bankName": "신용협동조합"}, 
         {"bankCode": "50", "bankName": "상호신용금고"}, 
         {"bankCode": "54", "bankName": "HSBC은행"}, 
         {"bankCode": "55", "bankName": "도이치은행"}, 
         {"bankCode": "71", "bankName": "우체국"}, 
         {"bankCode": "81", "bankName": "하나은행"}, 
         {"bankCode": "88", "bankName": "신한은행"} 
     ], 
     "interestFreeUrl": "http://www.payco.com", 
     "introduceContents": "" 
 }, 
 "message": "success", 
 "code": 0 
 } 
					
					

8. inApp 적용가이드

  • IOS > 쿠키저장소에 Policy를 NSHTTPCookieAcceptPolicyAlways로 설정이 필요합니다.
  • Android > 쿠키 및 자바스크립트 처리를 위한 웹뷰 설정이 필요합니다.
  • Android > 가맹점 앱에서 Payco 앱이 실행될 수 있도록 intent처리가 필요합니다.
  • Android > 추가적용사항
    • - ‘tel:’ URL scheme이 호출되는 경우 전화걸기가 실행 될 수 있도록 처리가 필요합니다.
    • - ‘about:blank’ 또는 ‘about:blank;’ 호출되는 경우 브라우저가 열리지 않고 무시하도록 처리가 필요합니다.
    • - inApp 주문예약시 추가설정

▷ 주문예약 > inAppYn

inApp 적용가이드 표
변수명 Type Max Length 필수여부 설명
inAppYn String 1 Y inApp 결제일때 Y
inAppYn 이 Y일 때 appUrl이 추가되어야함

▷ 주문예약 > extraData > appUrl

inApp 적용가이드 표
변수명 Type Max Length 필수여부 설명
AppUrl String 4000 N 인앱 결제시 PAYCO(앱결제시)/ISP모바일 등 앱에서
결제를 처리한 뒤 복귀할 앱 url scheme (ex. testapp://open)

※ 일반 신용카드 결제수단을 사용하는 경우 별도 문의 필요

inApp 적용가이드 > IOS > Sample

					
- (BOOL)application:(UIApplication *)application 
  didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
 {
     NSHTTPCookieStorage *cookieStorage=
     [NSHTTPCookieStorage sharedHTTPCookieStorage]; 
     [cookieStorage setCookieAcceptPolicy:
NSHTTPCookieAcceptPolicyAlways]; ..... return YES; }

Android > 쿠키 및 자바스크립트 처리를 위한 웹뷰 설정 > Sample

					
getSettings().setAppCacheEnabled(true);
getSettings().setDomStorageEnabled(true);
getSettings().setJavaScriptEnabled(true);
getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 
  
// Android LOLIPOP 이상에서만 작동하도록함
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) 
{  
	// https -> http 호출 허용.
	webView.getSettings().setMixedContentMode
	(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
  
	// 서드파티 쿠키 허용.
	CookieManager cookieManager = CookieManager.getInstance();
	cookieManager.setAcceptCookie(true);
	cookieManager.setAcceptThirdPartyCookies(webView, true);
}

setWebChromeClient(new WebChromeClient());
					
					

Android > Android >가맹점 앱에서 Payco 앱이 실행될 수 있도록 intent처리 > Sample

					
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {

	ClientType type = ClientType.getClientType(url);
	if (type.equals(ClientType.BLANK) || type.equals(ClientType.JAVASCRIPT)) {
			 return true;
	}
	
	if (type.equals(ClientType.WEB)) {
			 return false;
	}
	
	// ARS 인증을 위한 전화 연결
	if (url.startsWith("tel:")) {
			 startCallPhoneIntent(url);
			 return true;
	}
	
	// 앱 실행
	return handleAppUrl(url);
}
					
					

9. Iframe 적용가이드

필수사항

  • Iframe 적용시 최상단 포커스이동을 위해 onload="scroll(0,0)" 옵션 추가 및 height 600px로 처리
  • scroll 이슈관련 script 추가
  • extraData의 viewOptions > iframeYn='Y'로 예약처리 필수

Iframe 적용가이드 > sample

					
<iframe src="…" ……… height="600px" onload="scroll(0,0);"/>
   <script type="text/javascript"> 
   function paycoScroll(evt) { 
     if (evt.data == "payco_message") {
       scroll(0,0);
     }
     if (window.addEventListener) {
       window.addEventListener("message", paycoScroll, false);
     } else {
       window.attachEvent("onmessage", paycoScroll);
     }
   }
					
					

10. 유의사항

  • ERROR 코드 9000은 시스템 점검시 내려주는 코드이므로 해당 코드에 대한 메시지는 사용자에게 노출처리 부탁드립니다.
  • 결제수단 코드가 추가 될 수 있으니 참고부탁드립니다.
  • 모바일웹의 경우 페이코 연동은 페이지 이동방식으로 작업 부탁드립니다.
  • 주문예약API > 부가정보(extraData) > cancelMobileUrl에 취소버튼 클릭시 이동할 URL을 추가로 보내주세요.
페이지 상위로