결제창 SDK
SDK 설치
HTML 페이지에 스크립트 태그로 결제창 SDK 파일을 추가합니다. 스크립트가 로드되면 전역 객체(window)에 생기는 초기화 함수를 호출하세요.
<head>
<meta charset="utf-8" />
<!-- SDK 추가 -->
<script src="https://js.candypay.co.kr/payments-sdk/v1"></script>
</head>SDK 초기화
Candypay() 메서드로 SDK를 초기화해주세요.
반환되는 객체로 캔디페이 SDK의 모든 결제 서비스를 이용할 수 있어요.
내 상점의 클라이언트 키를 파라미터로 넣으면 캔디페이 SDK에서 상점의 정보를 확인할 수 있어요.
사용하고 싶은 제품에 따라 필요한 클라이언트 키 종류가 다른데요. 키 종류, 테스트 및 라이브 키 정보는 API 키 가이드에서 자세히 확인하세요.
const candypay = Candypay("test_ck_CANDYwX7K8mYw1lj05m8yQxzvNPG");파라미터
/**
* 캔디페이에서 발급하는 클라이언트 키입니다. 개발자센터의 API 키 메뉴에서 확인할 수 있어요.
*/
type ClientKey = string;candypay.payment()
결제창을 초기화합니다.
const payment = candypay.payment({ customerId });파라미터
interface Parameter {
/**
* 구매자를 식별하는 고유 아이디입니다.
* 이메일・전화번호나 자동 증가하는 숫자와 같이 유추가 가능한 값을 넣으면 안 됩니다.
* UUID와 같이 충분히 무작위적인 고유 값으로 생성해주세요.
* 영문 대소문자, 숫자, 특수문자 -, _, =, ., @ 중 최소 1개를 포함하는 최소 2자 이상 최대 50자 이하의 문자열이어야 합니다
*/
customerId: string
}payment.requestPayment()
결제창을 띄웁니다.
파라미터로 설정한 successUrl 또는 failUrl로 결제 요청의 결과를 확인할 수 있어요.
const url = await payment.requestPayment({
amount: {
value: 50000,
},
orderId: "bUjILtZPrmCluBhMOiqCs", // 고유 주문번호
orderName: "캔디 사탕 외 2건",
successUrl: window.location.origin + "/success", // 결제 요청이 성공하면 리다이렉트되는 URL
failUrl: window.location.origin + "/fail" // 결제 요청이 실패하면 리다이렉트되는 URL
});
console.log(url.toString()); // url.toString() 주소로 자동 리다이렉트파라미터
interface Parameter {
/**
* @minLength 16
* @maxLength 50
* 주문번호입니다. 결제 요청에서 내 상점이 직접 생성한 영문 대소문자, 숫자, 특수문자 -, _로 이루어진 16자 이상 50자 이하의 문자열입니다.
* 각 주문을 식별하는 역할로, 결제 데이터 관리를 위해 반드시 저장해야 합니다.
* 결제 상태가 변해도 orderId는 유지됩니다.
*/
orderId: string
/**
* @maxLength 100
* @example '생수 외 1건'
* 주문의 이름입니다. 가맹점이 직접 값을 지정해줘야 합니다. 구매상품으로 지정하는 것을 권장합니다.
*/
orderName: string
amount: {
value: number
}
/**
* 결제 요청 시 SDK에서 직접 추가할 수 있는 결제 관련 정보입니다. 최대 5개의 키-값(key-value) 쌍입니다.
* JSON으로 직렬화했을 때 2000자를 넘을 수 없습니다.
*/
metadata?: Jsonifiable
/**
* 결제 요청이 성공하면 리다이렉트되는 URL입니다.
* https://www.example.com/success와 같이 오리진을 포함한 형태로 설정해주세요.
* 리다이렉트되면 URL의 쿼리 파라미터로 amount, orderId, intentKey가 추가돼요.
*/
successUrl: string
/**
* 결제 요청이 실패하면 리다이렉트되는 URL입니다.
* https://www.example.com/fail와 같이 오리진을 포함한 형태로 설정해주세요.
* 리다이렉트되면 URL의 쿼리 파라미터로 에러 코드와 메시지를 확인할 수 있어요.
*/
failUrl: string
}응답
결제 요청이 성공하면 파라미터로 설정한 successUrl로 이동해요. 쿼리 파라미터의 amount 값이 메서드 파라미터로 설정한 amount와 같은지 반드시 확인하고 결제 승인 API를 호출해서 결제를 완료하세요.
{successUrl}?amount={AMOUNT}&orderId={ORDER_ID}&intentKey={INTENT_KEY}결제 요청이 실패하면 파라미터로 설정한 failUrl로 이동해요. 쿼리 파라미터로 에러 코드와 메시지를 확인하세요. details 값은 반드시 오지는 않습니다.
{failUrl}?code={ERROR_CODE}&message={ERROR_MESSAGE}&orderId={ORDER_ID}&details={DETAILS}Last updated on