{"_id":"@aodjo/gitfle-payco","_rev":"2-83ee62c47b689e6b761758ea6acccb56","name":"@aodjo/gitfle-payco","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@aodjo/gitfle-payco","version":"1.0.0","keywords":["payco","payment","korea","sdk"],"author":{"name":"gitfle"},"license":"MIT","_id":"@aodjo/gitfle-payco@1.0.0","maintainers":[{"name":"aodjo","email":"me@junx.dev"}],"homepage":"https://github.com/aodjo/gitfle-payco#readme","bugs":{"url":"https://github.com/aodjo/gitfle-payco/issues"},"dist":{"shasum":"e3337752f49f0c488675cb24a711634dbd5e00b3","tarball":"https://registry.npmjs.org/@aodjo/gitfle-payco/-/gitfle-payco-1.0.0.tgz","fileCount":16,"integrity":"sha512-XaD0kogFFJnL+JyxeD9BrjsPj5199W5861S+StHD3FDLZkvYiihae0yJO5S6iY4pjk++LvzwqEIlKnPNnbEjFg==","signatures":[{"sig":"MEUCIGn3gNs6x/4kUhNuIr4yMQZhIFit5blEbe8VoNubJPgMAiEAidtDQsXA0wUuP2xwkFoQFZrBCu/hhfvHKIeJG2aCuxU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90963},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"3f1ee31f85eb9a08ed370f8d7f18077f5f4ef396","scripts":{"dev":"tsc -w","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"aodjo","email":"me@junx.dev"},"repository":{"url":"git+https://github.com/aodjo/gitfle-payco.git","type":"git"},"_npmVersion":"10.9.4","description":"PAYCO Payment SDK for Node.js","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/gitfle-payco_1.0.0_1772904234124_0.3835997216379725","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@aodjo/gitfle-payco","version":"1.0.1","description":"PAYCO Payment SDK for Node.js","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","dev":"tsc -w","prepublishOnly":"npm run build"},"keywords":["payco","payment","korea","sdk"],"author":{"name":"gitfle"},"license":"MIT","devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"repository":{"type":"git","url":"git+https://github.com/aodjo/gitfle-payco.git"},"_id":"@aodjo/gitfle-payco@1.0.1","gitHead":"a26bf1f352df66a177e0d1e579c0bf69420185f0","bugs":{"url":"https://github.com/aodjo/gitfle-payco/issues"},"homepage":"https://github.com/aodjo/gitfle-payco#readme","_nodeVersion":"22.22.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-Ac7DH6HTa/VjtpKLC8xkOXhYk19L9N5qyDXgllLHNOLl0TKKUTs4xcjGwF8BML+Lykf8v6IMQ+TIg/NAN4QPpQ==","shasum":"b593ee0080a1f3db1a9abd54379fec76bd033cff","tarball":"https://registry.npmjs.org/@aodjo/gitfle-payco/-/gitfle-payco-1.0.1.tgz","fileCount":16,"unpackedSize":90963,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHvx5rqJDq3M3WtYNpyDAWGGuXnERXOsHM0G6I4zQHpQAiAe7dYPC75kzDegIOafVq3yIsdLy426wVQifJROhE0k+A=="}]},"_npmUser":{"name":"aodjo","email":"me@junx.dev"},"directories":{},"maintainers":[{"name":"aodjo","email":"me@junx.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/gitfle-payco_1.0.1_1772904284256_0.35696926727352496"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-07T17:23:53.978Z","modified":"2026-03-07T17:24:44.515Z","1.0.0":"2026-03-07T17:23:54.265Z","1.0.1":"2026-03-07T17:24:44.400Z"},"bugs":{"url":"https://github.com/aodjo/gitfle-payco/issues"},"author":{"name":"gitfle"},"license":"MIT","homepage":"https://github.com/aodjo/gitfle-payco#readme","keywords":["payco","payment","korea","sdk"],"repository":{"type":"git","url":"git+https://github.com/aodjo/gitfle-payco.git"},"description":"PAYCO Payment SDK for Node.js","maintainers":[{"name":"aodjo","email":"me@junx.dev"}],"readme":"# Gitfle\r\n\r\n자신의 평소 코딩 습관을 진단 받아 보세요\r\n\r\n## 프로젝트 소개\r\n\r\n> 이 프로젝트는 [조코딩 x OpenAI x Primer AI 해커톤](https://hack.primer.kr/8)를 위해 제작되었습니다. <br/>\r\n> 이 레포지토리의 모든 저작물에 대한 저작권은 [Junsung Lee](https://junx.dev/)에 있습니다. (자세한 내용은 [LICENSE](/LICENSE)를 확인하세요) <br/>\r\n> 이 레포지토리는 [Junsung Lee](https://junx.dev/)에 의해 관리됩니다. <br/>\r\n> 이 레포지토리는 대회가 종료됨에 따라 26. 03. 08. 이후 Public Archive 처리 되었습니다. <br/>\r\n> 이 프로젝트에 관해 문의가 있으신가요? [me@junx.dev](mailto:me@junx.dev)를 통해 문의주세요.\r\n\r\n## Gitfle 소개\r\n\r\n- 본인의 Github으로 로그인을 하면, Gitfle 에서 본인의 레포지토리를 선택할 수 있어요.\r\n- 선택한 레포지토리를 AI Agent가 각각 탐색하면서 평가를 해요.\r\n- 각각의 Agent의 평가를 기반으로 최종 레포트와 학습 방향을 정리해 줘요.\r\n\r\n## 레포지토리 소개\r\n> 위 레포지토리는 `Payco 단건 결제` 에 관해 다룹니다. <br/>\r\n> Gitfle 프로젝트의 레포지토리는 여러 레포지토리로 분리되어 있으며, 이 레포지토리는 그 중 하나에 속합니다. <br />\r\n> 자세한 내용은 아래 표를 확인하세요. (별(\\*)표는 현재 레포지토리를 의미합니다.)\r\n\r\n| Part | URL |\r\n| ----- | ----- |\r\n| client | [aodjo/gitfle-client](https://github.com/aodjo/gitfle-client) |\r\n| server | [aodjo/gitfle-server](https://github.com/aodjo/gitfle-server) |\r\n| \\*payco | [aodjo/gitfle-payco](https://github.com/aodjo/gitfle-payco) |\r\n| naverpay | [aodjo/gitfle-naverpay](https://github.com/aodjo/gitfle-naverpay) |\r\n| kakaopay | [aodjo/gitfle-kakaopay](https://github.com/aodjo/gitfle-kakaopay) |\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install @aodjo/gitfle-payco\r\n```\r\n\r\n## Usage\r\n\r\n### 초기화\r\n\r\n```typescript\r\nimport { Payco } from '@aodjo/gitfle-payco'\r\n\r\nconst payco = new Payco({\r\n  sellerKey: 'S0FSJE',      // PAYCO에서 발급받은 가맹점 코드\r\n  cpId: 'PARTNERTEST',      // PAYCO에서 발급받은 상점 ID\r\n  productId: 'PROD_EASY',   // PAYCO에서 발급받은 상품 ID\r\n  mode: 'development'       // 'development' | 'production'\r\n})\r\n```\r\n\r\n### 결제 플로우\r\n\r\n#### 1. 주문 예약\r\n\r\n```typescript\r\nconst reserve = await payco.reserve({\r\n  sellerOrderReferenceKey: 'order-123',  // 가맹점 주문번호\r\n  totalPaymentAmt: 10000,                 // 총 결제금액\r\n  orderTitle: '테스트 상품',               // 주문명\r\n  returnUrl: 'https://example.com/payco/callback',  // 결제 완료 후 콜백 URL\r\n  orderMethod: 'EASYPAY',                 // EASYPAY: 비회원, EASYPAY_F: 회원\r\n  orderChannel: 'PC',                     // PC | MOBILE\r\n  inAppYn: 'N',                          // 인앱결제 여부\r\n  orderProducts: [{\r\n    productAmt: 10000,\r\n    productPaymentAmt: 10000,\r\n    orderQuantity: 1,\r\n    sortOrdering: 1,\r\n    productName: '테스트 상품',\r\n    sellerOrderProductReferenceKey: 'item-123'\r\n  }]\r\n})\r\n\r\n// 결제창 URL로 리다이렉트\r\n// reserve.result.orderSheetUrl\r\n```\r\n\r\n#### 2. 결제 승인\r\n\r\nreturnUrl로 전달된 파라미터를 사용하여 승인 처리:\r\n\r\n```typescript\r\n// returnUrl에서 받은 파라미터\r\n// code, reserveOrderNo, sellerOrderReferenceKey, paymentCertifyToken, totalPaymentAmt\r\n\r\nconst approval = await payco.approve({\r\n  reserveOrderNo: '202302082005802285',\r\n  sellerOrderReferenceKey: 'order-123',\r\n  paymentCertifyToken: 'JeF_D0w-1OW2...',\r\n  totalPaymentAmt: 10000\r\n})\r\n\r\n// 결제 완료\r\nconsole.log('주문번호:', approval.result.orderNo)\r\nconsole.log('취소용 키:', approval.result.orderCertifyKey)\r\n```\r\n\r\n#### 3. 결제 취소\r\n\r\n```typescript\r\nconst cancel = await payco.cancel({\r\n  orderNo: '202302082002764740',\r\n  orderCertifyKey: 'GiB3gCceGTsWAvgs...',\r\n  cancelTotalAmt: 10000\r\n})\r\n\r\nconsole.log('취소 완료:', cancel.result.cancelYmdt)\r\n```\r\n\r\n### 에러 처리\r\n\r\n```typescript\r\nimport { PaycoApiError, PaycoNetworkError, PaycoErrorCodes } from '@aodjo/gitfle-payco'\r\n\r\ntry {\r\n  const reserve = await payco.reserve({ ... })\r\n} catch (error) {\r\n  if (error instanceof PaycoApiError) {\r\n    console.log('API 에러:', error.code, error.message)\r\n\r\n    if (error.code === PaycoErrorCodes.ALREADY_PAID) {\r\n      console.log('이미 결제된 주문입니다.')\r\n    }\r\n  } else if (error instanceof PaycoNetworkError) {\r\n    console.log('네트워크 에러:', error.statusCode, error.message)\r\n  }\r\n}\r\n```\r\n\r\n## 테스트 환경\r\n\r\n개발 환경에서는 아래 테스트 가맹점 정보를 사용할 수 있습니다:\r\n\r\n| 항목 | 값 |\r\n|------|-----|\r\n| sellerKey | S0FSJE |\r\n| cpId | PARTNERTEST |\r\n| productId | PROD_EASY |\r\n\r\n## API Reference\r\n\r\n### Payco\r\n\r\n#### `constructor(options: PaycoOptions)`\r\n\r\n| 옵션 | 타입 | 필수 | 설명 |\r\n|------|------|------|------|\r\n| sellerKey | string | O | 가맹점 고유 코드 |\r\n| cpId | string | O | 상점 ID |\r\n| productId | string | O | 상품 ID |\r\n| mode | 'development' \\| 'production' | X | 환경 (기본: development) |\r\n\r\n#### `reserve(params: ReserveRequest): Promise<ReserveResponse>`\r\n\r\n주문 예약 API를 호출합니다.\r\n\r\n#### `approve(params: ApprovalRequest): Promise<ApprovalResponse>`\r\n\r\n결제 승인 API를 호출합니다.\r\n\r\n#### `cancel(params: CancelRequest): Promise<CancelResponse>`\r\n\r\n결제 취소 API를 호출합니다.\r\n\r\n## 라이선스\r\n\r\nMIT 라이선스입니다. 자세한 내용은 [LICENSE](/LICENSE)를 참고하세요.\r\n","readmeFilename":"README.md"}