@aodjo/gitfle-naverpay
v1.0.0
Published
NaverPay payment API client for Node.js
Downloads
101
Maintainers
Readme
Gitfle
자신의 평소 코딩 습관을 진단 받아 보세요
프로젝트 소개
이 프로젝트는 조코딩 x OpenAI x Primer AI 해커톤를 위해 제작되었습니다. 이 레포지토리의 모든 저작물에 대한 저작권은 Junsung Lee에 있습니다. (자세한 내용은 LICENSE를 확인하세요) 이 레포지토리는 Junsung Lee에 의해 관리됩니다. 이 레포지토리는 대회가 종료됨에 따라 26. 03. 08. 이후 Public Archive 처리 되었습니다. 이 프로젝트에 관해 문의가 있으신가요? [email protected]를 통해 문의주세요.
Gitfle 소개
- 본인의 Github으로 로그인을 하면, Gitfle 에서 본인의 레포지토리를 선택할 수 있어요.
- 선택한 레포지토리를 AI Agent가 각각 탐색하면서 평가를 해요.
- 각각의 Agent의 평가를 기반으로 최종 레포트와 학습 방향을 정리해 줘요.
레포지토리 소개
위 레포지토리는
네이버페이 단건 결제에 관해 다룹니다. Gitfle 프로젝트의 레포지토리는 여러 레포지토리로 분리되어 있으며, 이 레포지토리는 그 중 하나에 속합니다. 자세한 내용은 아래 표를 확인하세요. (별(*)표는 현재 레포지토리를 의미합니다.)
| Part | URL | | ----- | ----- | | client | aodjo/gitfle-client | | server | aodjo/gitfle-server | | payco | aodjo/gitfle-payco | | *naverpay | aodjo/gitfle-naverpay | | kakaopay | aodjo/gitfle-kakaopay |
설치
npm install @aodjo/gitfle-kakaopay사용법
import { NaverPay } from '@aodjo/gitfle-kakaopay';
const naverpay = new NaverPay({
clientId: process.env.NAVERPAY_CLIENT_ID,
clientSecret: process.env.NAVERPAY_CLIENT_SECRET,
chainId: process.env.NAVERPAY_CHAIN_ID,
mode: 'development', // 또는 'production'
});결제 예약
const reserve = await naverpay.reserve({
merchantPayKey: 'order_123',
productName: '코인 100개',
productCount: 1,
totalPayAmount: 8000,
taxScopeAmount: 8000,
taxExScopeAmount: 0,
returnUrl: 'http://example.com/payment/callback',
});
console.log(reserve.reserveId);결제창 URL 생성
const paymentUrl = naverpay.getPaymentUrl(reserve.reserveId);
// 사용자를 이 URL로 리다이렉트결제 승인
returnUrl 콜백에서 paymentId를 수신한 후:
const approve = await naverpay.approve({
paymentId: 'received_payment_id',
});
console.log(approve.detail.totalPayAmount);결제 취소
const cancel = await naverpay.cancel({
paymentId: 'payment_id',
cancelAmount: 8000,
cancelReason: '고객 요청',
cancelRequester: '2', // 1: 구매자, 2: 가맹점 관리자
taxScopeAmount: 8000,
taxExScopeAmount: 0,
});
console.log(cancel.totalRestAmount);환경 설정
| 모드 | API 도메인 | 서비스 도메인 | |------|-----------|--------------| | development | dev-pay.paygate.naver.com | test-m.pay.naver.com | | production | pay.paygate.naver.com | m.pay.naver.com |
에러 처리
import { NaverPayApiError, NaverPayNetworkError, NaverPayValidationError } from '@aodjo/gitfle-kakaopay';
try {
await naverpay.approve({ paymentId: 'invalid' });
} catch (error) {
if (error instanceof NaverPayApiError) {
console.error(`API 에러 [${error.code}]: ${error.errorMessage}`);
} else if (error instanceof NaverPayNetworkError) {
console.error('네트워크 에러:', error.message);
} else if (error instanceof NaverPayValidationError) {
console.error(`검증 에러 [${error.field}]: ${error.message}`);
}
}라이선스
MIT 라이선스입니다. 자세한 내용은 LICENSE를 참고하세요.
