Skip to content

Latest commit

 

History

History
83 lines (63 loc) · 3.87 KB

danal-card-request-billing-key.md

File metadata and controls

83 lines (63 loc) · 3.87 KB

다날-신용카드 정기결제(빌링) 연동 가이드 결제창

🌐 EN

다날-신용카드 결제창을 통해서 빌링키 발급과 최초 결제를 같이 요청하거나, 빌링키 발급을 요청하여 발급받은 빌링키로 결제를 요청할 수 있습니다.

ℹ️ 자세한 내용은 일반결제창으로 정기결제 연동하기를 참고하세요.

1. PG 설정하기

다날 정기결제 테스트 모드 설정 페이지의 1) 일반결제의 내용을 참고하여 PG 설정을 합니다.

2. 빌링키 발급 요청하기

IMP.request_pay(param, callback)을 호출하여 빌링키 발급을 위한 결제창을 호출합니다.

ℹ️ 자세한 내용은 일반결제창으로 빌링키 요청하기를 참고하세요.

PC와 모바일 모두 IMP.request_pay(param, callback) 호출 후 callback으로 실행됩니다.

  • pg :
    • 등록된 PG사가 하나일 경우에는 미 설정시 기본 PG사가 자동으로 적용됩니다.
    • 다날에서 발급받은 상점아이디가 하나인 경우에는 danal_tpay를, 여러개(각각 일반 및 정기)인 경우에는 danal_tpay.{상점아이디}를 입력합니다.
  • customer_uid : 빌링키 등록을 위해서 지정해야 합니다.
  • amount : 빌링키 발급만 하는 경우 "0"으로 지정하고, 빌링키 발급과 최초 결제를 같이 요청하는 경우 가격을 지정합니다.

2.1 빌링키 발급만 요청하기(amount : 0)

amount를 0으로 지정한 경우, 다날에서 최초 10원 테스트 결제를 하고 30분 쯤 후 자동 취소됩니다.

IMP.request_pay({
	pg : 'danal_tpay',
	pay_method : 'card', // 'card'만 지원됩니다.
	merchant_uid: "order_monthly_0001", // 상점에서 관리하는 주문 번호
	name : '최초인증결제',
	amount : 0, // 빌링키 발급만 진행하며 결제승인을 하지 않습니다.
	customer_uid : 'your-customer-unique-id', // 필수 입력.
	buyer_email : '[email protected]',
	buyer_name : '아임포트',
	buyer_tel : '02-1234-1234'
}, function(rsp) {
	if ( rsp.success ) {
		alert('빌링키 발급 성공');
	} else {
		alert('빌링키 발급 실패');
	}
});

2.2 빌링키 발급 및 최초 결제 요청하기(amount : 가격지정)

amount에 가격을 지정한 경우, 다날에서 테스트 결제(10원)를 수행하지 않습니다.

IMP.request_pay({
	pay_method : 'card', // 'card'만 지원됩니다.
	merchant_uid: "order_monthly_0001", // 상점에서 관리하는 주문 번호
	name : '최초인증결제',
	amount : 1004, // 빌링키 발급과 함께 1,004원 결제승인을 시도합니다.
	customer_uid : 'your-customer-unique-id', // 필수 입력.
	buyer_email : '[email protected]',
	buyer_name : '아임포트',
	buyer_tel : '02-1234-1234'
}, function(rsp) {
	if ( rsp.success ) {
		alert('빌링키 발급 성공');
	} else {
		alert('빌링키 발급 실패');
	}
});

3. 빌링키로 결제 요청하기

빌링키 발급이 성공하면 빌링키는 전달된 customer_uid 와 1:1 매칭되어 아임포트에 저장됩니다. 보안상의 이유로 서버는 빌링키에 직접 접근할 수 없기 때문에 customer_uid를 이용해서 재결제(POST /subscribe/payments/again) REST API를 다음과 같이 호출합니다.

curl -H "Content-Type: application/json" \   
     -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \
     https://api.iamport.kr/subscribe/payments/again