@portone/mcp-server 0.15.0-alpha.4 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/docs/blog/posts/2025-12/portone-chatbot.md +116 -0
- package/assets/docs/help/admin-console/analytics/content32.md +0 -32
- package/assets/docs/help/admin-console/console-account/content31.md +2 -10
- package/assets/docs/help/admin-console/console_home/content34.md +5 -44
- package/assets/docs/help/admin-console/integration/content28.md +9 -21
- package/assets/docs/help/admin-console/payment-service/content29.md +7 -153
- package/assets/docs/help/admin-console/pg-settlement/content30.md +0 -11
- package/assets/docs/help/admin-console/pg-settlement-history/content35.md +0 -7
- package/assets/docs/help/admin-console-2025-10-17.md +47 -0
- package/assets/docs/help/content61.md +1 -1
- package/assets/docs/help/core-service/channel-setting/danal.md +1 -1
- package/assets/docs/help/core-service/channel-setting/galaxia.md +93 -0
- package/assets/docs/help/core-service/channel-setting/inicis.md +2 -3
- package/assets/docs/help/core-service/channel-setting/kcp_channel.md +39 -32
- package/assets/docs/help/core-service/channel-setting/kicc.md +57 -3
- package/assets/docs/help/core-service/channel-setting/nice.md +4 -2
- package/assets/docs/help/core-service/how-to-use/additional-galaxia.md +36 -0
- package/assets/docs/help/core-service/how-to-use/galaxia-contract.md +67 -0
- package/assets/docs/help/core-service/how-to-use/high-risk-industry.md +36 -46
- package/assets/docs/help/core-service/how-to-use/information-pg.md +2 -2
- package/assets/docs/help/core-service/how-to-use/kcp-contract.md +5 -1
- package/assets/docs/help/core-service/how-to-use/kicc-contract.md +38 -7
- package/assets/docs/help/core-service/how-to-use/requirements.md +3 -1
- package/assets/docs/help/core-service/how-to-use/shopify-guide.md +2 -2
- package/assets/docs/help/core-service/how-to-use/test-mode-cancel.md +5 -3
- package/assets/docs/help/core-service/payment-type/content200007.md +1 -1
- package/assets/docs/help/core-service/payment-type/content200047.md +26 -42
- package/assets/docs/help/core-service/payment-type/internationl-high-risk-industry.md +66 -0
- package/assets/docs/help/core-service/payment-type/internationl-pg.md +3 -1
- package/assets/docs/help/core-service/payment-type/schedule-requirement.md +1 -4
- package/assets/docs/help/faq/general-inquiry/portone-security.md +59 -0
- package/assets/docs/help/faq/payment-faq/vbank-test-guide.md +1 -8
- package/assets/docs/help/faq/platform-faq/platform_definition_partner.md +1 -1
- package/assets/docs/help/faq/platform-faq/platform_definition_settlement.md +1 -1
- package/assets/docs/help/faq/platform-faq/platform_definition_tax.md +24 -0
- package/assets/docs/help/faq/platform-faq/platform_introduction.md +1 -1
- package/assets/docs/help/faq/platform-faq/platform_introduction_conditions.md +19 -5
- package/assets/docs/help/faq/platform-faq/platform_nocode_hosting.md +1 -1
- package/assets/docs/help/faq/platform-faq/platform_nocode_use.md +1 -1
- package/assets/docs/help/faq/tax-invoice-faq/account_management_guide.md +37 -0
- package/assets/docs/help/faq/tax-invoice-faq/bulk_registration_account.md +16 -0
- package/assets/docs/help/faq/tax-invoice-faq/difference_account_partner.md +25 -0
- package/assets/docs/help/faq/{platform-faq → tax-invoice-faq}/platform_partnerships.md +1 -1
- package/assets/docs/help/faq/{platform-faq → tax-invoice-faq}/taxinvoice_bulk_issuance.md +1 -1
- package/assets/docs/help/faq/{platform-faq → tax-invoice-faq}/taxinvoice_cancel.md +1 -1
- package/assets/docs/help/faq/{platform-faq → tax-invoice-faq}/taxinvoice_delayed.md +1 -1
- package/assets/docs/help/faq/{platform-faq → tax-invoice-faq}/taxinvoice_forward_issuance.md +1 -1
- package/assets/docs/help/faq/{platform-faq → tax-invoice-faq}/taxinvoice_guide_atoz.md +1 -1
- package/assets/docs/help/faq/{platform-faq → tax-invoice-faq}/taxinvoice_partner_peristalsis.md +1 -1
- package/assets/docs/help/faq/{platform-faq → tax-invoice-faq}/taxinvoice_reverse_issuance_definition.md +1 -1
- package/assets/docs/help/faq/{platform-faq → tax-invoice-faq}/taxinvoice_reverse_issuance_partner_signup.md +1 -1
- package/assets/docs/help/notice-tosspayments-2026-01-15.md +62 -0
- package/assets/docs/help/notice-vape-2026-02-19.md +52 -0
- package/assets/docs/help/platform-2025-07-23.md +76 -0
- package/assets/docs/help/platform-2025-08-13.md +92 -0
- package/assets/docs/help/platform-2025-08-21.md +51 -0
- package/assets/docs/help/platform-2025-08-28.md +51 -0
- package/assets/docs/help/platform-2025-10-02.md +90 -0
- package/assets/docs/help/pricing/pg/domestic-and-oversea-fees.md +4 -2
- package/assets/docs/help/pricing/portone/portone-pricing.md +1 -1
- package/assets/docs/help/procedure/pg-application/start.md +6 -24
- package/assets/docs/help/procedure/service-addition/add-service.md +2 -0
- package/assets/docs/help/service/identity-verification/identity-verification.md +2 -4
- package/assets/docs/help/service/integration-type/integration-type.md +1 -2
- package/assets/docs/help/service/pg/pg-service-list.md +22 -1
- package/assets/docs/opi/ko/console/guide/reg.md +1 -1
- package/assets/docs/opi/ko/extra/confirm-process/readme-v1.md +5 -7
- package/assets/docs/opi/ko/extra/confirm-process/readme-v2.md +2 -2
- package/assets/docs/opi/ko/extra/identity-verification/readme-v2.md +1 -1
- package/assets/docs/opi/ko/extra/manual-confirm/readme-v2.md +1 -1
- package/assets/docs/opi/ko/integration/cancel/v1/virtual-account.md +4 -1
- package/assets/docs/opi/ko/integration/cancel/v2/readme.md +4 -1
- package/assets/docs/opi/ko/integration/pg/v1/daou/readme.md +131 -6
- package/assets/docs/opi/ko/integration/pg/v1/galaxia.md +579 -0
- package/assets/docs/opi/ko/integration/pg/v1/inicis-jp.md +490 -0
- package/assets/docs/opi/ko/integration/pg/v1/kakaopay.md +17 -0
- package/assets/docs/opi/ko/integration/pg/v1/kcp-v2-identity-verification.md +2 -0
- package/assets/docs/opi/ko/integration/pg/v1/kg-mobilians-v2.md +11 -0
- package/assets/docs/opi/ko/integration/pg/v1/kicc-v2.md +275 -0
- package/assets/docs/opi/ko/integration/pg/v1/kicc.md +2 -2
- package/assets/docs/opi/ko/integration/pg/v1/ksnet/readme.md +8 -0
- package/assets/docs/opi/ko/integration/pg/v1/nhn-kcp/kcp-quickpay.md +3 -0
- package/assets/docs/opi/ko/integration/pg/v1/nice.md +2 -2
- package/assets/docs/opi/ko/integration/pg/v1/paypal.md +1 -1
- package/assets/docs/opi/ko/integration/pg/v1/readme.md +8 -2
- package/assets/docs/opi/ko/integration/pg/v1/rt/readme.md +0 -2
- package/assets/docs/opi/ko/integration/pg/v1/spb/readme.md +8 -0
- package/assets/docs/opi/ko/integration/pg/v2/galaxia.md +662 -0
- package/assets/docs/opi/ko/integration/pg/v2/inicis-jp.md +3 -3
- package/assets/docs/opi/ko/integration/pg/v2/inicis-unified-identity-verification.md +0 -4
- package/assets/docs/opi/ko/integration/pg/v2/inicis-v2.md +2 -2
- package/assets/docs/opi/ko/integration/pg/v2/kcp-v2-identity-verification.md +1 -1
- package/assets/docs/opi/ko/integration/pg/v2/kcp-v2.md +2 -2
- package/assets/docs/opi/ko/integration/pg/v2/kicc-v2.md +316 -0
- package/assets/docs/opi/ko/integration/pg/v2/kpn.md +3 -3
- package/assets/docs/opi/ko/integration/pg/v2/ksnet.md +8 -0
- package/assets/docs/opi/ko/integration/pg/v2/paymentwall.md +171 -0
- package/assets/docs/opi/ko/integration/pg/v2/readme.md +16 -0
- package/assets/docs/opi/ko/integration/pg/v2/smartro-v2.md +1 -1
- package/assets/docs/opi/ko/integration/pg/v2/triple-a.md +341 -0
- package/assets/docs/opi/ko/integration/pg/v2/welcome.md +1 -1
- package/assets/docs/opi/ko/integration/ready/readme.md +105 -124
- package/assets/docs/opi/ko/integration/start/v2/checkout.md +59 -29
- package/assets/docs/opi/ko/integration/using-ai-tools.md +42 -0
- package/assets/docs/opi/ko/quick-guide/payment.md +5 -5
- package/assets/docs/opi/ko/support/code-info/pg-2.md +1 -1
- package/assets/docs/platform/ko/guides/dictionary.md +47 -0
- package/assets/docs/release-notes/platform/2023-08-31.md +2 -2
- package/assets/docs/release-notes/platform/2024-08-22.md +5 -5
- package/assets/docs/release-notes/platform/2024-10-21.md +9 -9
- package/assets/docs/release-notes/platform/2025-02-10.md +2 -2
- package/assets/docs/release-notes/platform/2026-02-19.md +55 -0
- package/assets/docs/release-notes/platform/2026-03-06.md +198 -0
- package/assets/docs/schema/browser-sdk.yml +390 -11
- package/assets/docs/schema/v1.openapi.json +58 -69
- package/assets/docs/schema/v1.openapi.yml +54 -100
- package/assets/docs/schema/v2.openapi.json +14855 -20616
- package/assets/docs/schema/v2.openapi.yml +7700 -11883
- package/assets/docs/sdk/ko/v2-mobile-sdk/android.md +62 -24
- package/assets/docs/sdk/ko/v2-mobile-sdk/react-native.md +82 -95
- package/assets/docs/sdk/ko/v2-mobile-sdk/readme.md +5 -4
- package/assets/docs/v1-docs-full.md +2162 -170
- package/assets/docs/v2-docs-full.md +2222 -204
- package/assets/docs/website-links.md +15 -5
- package/manifest.json +1 -1
- package/package.json +12 -12
- package/server/index.js +42 -15
- package/assets/docs/opi/ko/integration/pg/v1/hyphen.md +0 -196
- package/assets/docs/opi/ko/integration/pg/v1/nhn-kcp.md +0 -1152
- package/assets/docs/opi/ko/integration/pg/v2/hyphen.md +0 -205
- package/assets/docs/schema/browser-sdk.schema.json +0 -510
|
@@ -64,28 +64,32 @@
|
|
|
64
64
|
### V2 통합 가이드
|
|
65
65
|
|
|
66
66
|
- [스마트 라우팅](https://developers.portone.io/opi/ko/console/guide/smartrouting): 포트원 스마트 라우팅을 사용하기 위한 그룹 설정을 관리할 수 있습니다. 관리자콘솔 내 스마트 라우팅 그룹 설정 방법을 안내합니다.
|
|
67
|
-
- [컨펌 프로세스](https://developers.portone.io/opi/ko/extra/confirm-process/readme-v2): 결제
|
|
67
|
+
- [컨펌 프로세스](https://developers.portone.io/opi/ko/extra/confirm-process/readme-v2): 결제 승인 직전에 고객사 측에 결제 의사를 최종적으로 확인하는 기능입니다.
|
|
68
68
|
- [본인인증 연동하기](https://developers.portone.io/opi/ko/extra/identity-verification/readme-v2): 포트원을 이용하여 간편하게 본인인증을 연동하는 방법을 확인합니다.
|
|
69
69
|
- [수동 승인](https://developers.portone.io/opi/ko/extra/manual-confirm/readme-v2): 고객사 서버에서 API를 호출하여 결제를 승인하는 연동 방식입니다.
|
|
70
70
|
- [결제취소(환불) 연동하기](https://developers.portone.io/opi/ko/integration/cancel/v2/readme): 포트원 V2 결제취소 API를 이용한 결제취소 방법을 안내합니다.
|
|
71
71
|
- [다날 본인인증](https://developers.portone.io/opi/ko/integration/pg/v2/danal-identity-verification): 다날 본인인증 연동 방법을 안내합니다.
|
|
72
72
|
- [엑심베이](https://developers.portone.io/opi/ko/integration/pg/v2/eximbay-v2): 엑심베이 결제 연동 방법을 안내합니다.
|
|
73
|
+
- [갤럭시아머니트리](https://developers.portone.io/opi/ko/integration/pg/v2/galaxia): 갤럭시아머니트리 결제 연동 방법을 안내합니다.
|
|
73
74
|
- [KG이니시스 일본결제](https://developers.portone.io/opi/ko/integration/pg/v2/inicis-jp): KG이니시스 일본결제 연동 방법을 안내합니다.
|
|
74
75
|
- [KG이니시스 통합인증](https://developers.portone.io/opi/ko/integration/pg/v2/inicis-unified-identity-verification): KG이니시스 통합인증 연동 방법을 안내합니다.
|
|
75
76
|
- [KG이니시스](https://developers.portone.io/opi/ko/integration/pg/v2/inicis-v2): KG이니시스 결제 연동 방법을 안내합니다.
|
|
76
77
|
- [카카오페이](https://developers.portone.io/opi/ko/integration/pg/v2/kakaopay): 카카오페이 간편결제 연동 방법을 안내합니다.
|
|
77
78
|
- [KCP 본인인증](https://developers.portone.io/opi/ko/integration/pg/v2/kcp-v2-identity-verification): KCP 본인인증 연동 방법을 안내합니다.
|
|
78
79
|
- [NHN KCP](https://developers.portone.io/opi/ko/integration/pg/v2/kcp-v2): NHN KCP 연동 방법을 안내합니다.
|
|
80
|
+
- [이지페이(KICC) 해외결제](https://developers.portone.io/opi/ko/integration/pg/v2/kicc-v2): 이지페이(KICC) 해외결제 연동 방법을 안내합니다.
|
|
79
81
|
- [한국결제네트웍스(KPN)](https://developers.portone.io/opi/ko/integration/pg/v2/kpn): 한국결제네트웍스(KPN) 결제 연동 방법을 안내합니다.
|
|
80
82
|
- [KSNET](https://developers.portone.io/opi/ko/integration/pg/v2/ksnet): KSNET 결제 연동 방법을 안내합니다.
|
|
81
83
|
- [네이버페이 (결제형)](https://developers.portone.io/opi/ko/integration/pg/v2/naverpay): 네이버페이 간편결제 연동 방법을 안내합니다.
|
|
82
84
|
- [나이스정보통신](https://developers.portone.io/opi/ko/integration/pg/v2/nice-v2): 나이스정보통신 결제 연동 방법을 안내합니다.
|
|
83
85
|
- [페이레터 해외결제](https://developers.portone.io/opi/ko/integration/pg/v2/payletter-global): 페이레터 해외결제 연동 방법을 안내합니다.
|
|
86
|
+
- [페이먼트월](https://developers.portone.io/opi/ko/integration/pg/v2/paymentwall): 페이먼트월 결제 연동 방법을 안내합니다.
|
|
84
87
|
- [페이팔](https://developers.portone.io/opi/ko/integration/pg/v2/paypal-v2): 페이팔 결제 연동 방법을 안내합니다.
|
|
85
88
|
- [결제대행사 선택하여 연동하기](https://developers.portone.io/opi/ko/integration/pg/v2/readme): 각 PG사별 결제 연동 방법을 확인할 수 있습니다.
|
|
86
89
|
- [스마트로](https://developers.portone.io/opi/ko/integration/pg/v2/smartro-v2): 스마트로 결제 연동 방법을 안내합니다.
|
|
87
90
|
- [토스페이](https://developers.portone.io/opi/ko/integration/pg/v2/tosspay-v2): 토스페이 간편결제 연동 방법을 안내합니다.
|
|
88
91
|
- [토스페이먼츠](https://developers.portone.io/opi/ko/integration/pg/v2/tosspayments): 토스페이먼츠 결제 연동 방법을 안내합니다.
|
|
92
|
+
- [Triple-A](https://developers.portone.io/opi/ko/integration/pg/v2/triple-a): Triple-A 결제 연동 방법을 안내합니다.
|
|
89
93
|
- [웰컴페이먼츠](https://developers.portone.io/opi/ko/integration/pg/v2/welcome): 웰컴페이먼츠 결제 연동 방법을 안내합니다.
|
|
90
94
|
- [1. 빌링키 발급하기](https://developers.portone.io/opi/ko/integration/start/v2/billing/issue): 결제창 또는 API를 이용하여 빌링키를 발급할 수 있습니다.
|
|
91
95
|
- [2. 결제 요청하기](https://developers.portone.io/opi/ko/integration/start/v2/billing/payment): 포트원 빌링키 결제 API를 사용해 바로 결제를 요청합니다.
|
|
@@ -216,6 +220,8 @@
|
|
|
216
220
|
- [파트너 정산 자동화 2025-08-21](https://developers.portone.io/release-notes/platform/2025-08-21)
|
|
217
221
|
- [파트너 정산 자동화 2025-08-28](https://developers.portone.io/release-notes/platform/2025-08-28)
|
|
218
222
|
- [파트너 정산 자동화 2025-10-02](https://developers.portone.io/release-notes/platform/2025-10-02)
|
|
223
|
+
- [파트너 정산 자동화 2026-02-19](https://developers.portone.io/release-notes/platform/2026-02-19)
|
|
224
|
+
- [파트너 정산 자동화 2026-03-06](https://developers.portone.io/release-notes/platform/2026-03-06)
|
|
219
225
|
|
|
220
226
|
### 블로그
|
|
221
227
|
|
|
@@ -226,6 +232,7 @@
|
|
|
226
232
|
- [Data Evolution: The Shift from AWS DMS to GCP Datastream](https://developers.portone.io/blog/posts/2024-04/gcp-datastream): Gives an overview of the PortOne Data Infrastructure and the migration story from AWS DMS to GCP Datastream.
|
|
227
233
|
- [Solid로 간결하게 고성능 웹앱 만들기](https://developers.portone.io/blog/posts/2024-04/solid): 포트원에서 사용하는 프론트엔드 웹 프레임워크 중 하나인 Solid에 대해 소개하고, 포트원 내에서의 활용 사례를 다룹니다.
|
|
228
234
|
- [포트원 V2 이야기 - Event Sourcing으로 결제 시스템 만들기 (기본편)](https://developers.portone.io/blog/posts/2024-07/v2-event-sourcing-basic): 포트원 V2 시스템의 근간을 이루고 있는 기술 중 하나인 Event Sourcing에 대해 소개합니다.
|
|
235
|
+
- [포트원 AI 챗봇이 반복되는 기술 문의를 획기적으로 단축한 비결](https://developers.portone.io/blog/posts/2025-12/portone-chatbot): 잘 만든 AI 서비스 하나로 1000개의 기술 문의를 대신한 이야기
|
|
229
236
|
|
|
230
237
|
|
|
231
238
|
# https://developers.portone.io/opi/ko/console/guide/smartrouting
|
|
@@ -308,14 +315,14 @@ targetVersions:
|
|
|
308
315
|
|
|
309
316
|
---
|
|
310
317
|
title: 컨펌 프로세스
|
|
311
|
-
description: 결제
|
|
318
|
+
description: 결제 승인 직전에 고객사 측에 결제 의사를 최종적으로 확인하는 기능입니다.
|
|
312
319
|
targetVersions:
|
|
313
320
|
- v2
|
|
314
321
|
versionVariants:
|
|
315
322
|
v1: /opi/ko/extra/confirm-process/readme-v1
|
|
316
323
|
---
|
|
317
324
|
|
|
318
|
-
|
|
325
|
+
결제 승인 직전에 고객사 측에 결제 의사를 최종적으로 확인하는 기능입니다.
|
|
319
326
|
|
|
320
327
|
<div class="hint" data-style="info">
|
|
321
328
|
|
|
@@ -633,7 +640,7 @@ app.post("/identity-verifications", async (req, res) => {
|
|
|
633
640
|
- `ci`: 연계 정보(Connecting Information).
|
|
634
641
|
- 사람마다 고유하고 서비스별로 달라지지 않기 때문에, 서비스 간 연계에 사용할 수 있음.
|
|
635
642
|
- 다날의 경우 항상 제공.
|
|
636
|
-
- KCP의 경우
|
|
643
|
+
- KCP의 경우 가맹점 설정에 따라 제공.
|
|
637
644
|
- KG이니시스의 경우 카카오를 제외한 인증 업체에서 항상 제공. 카카오의 경우 별도 서류 작성이 필요합니다.
|
|
638
645
|
|
|
639
646
|
- `di`: 중복 가입 확인 정보(Duplication Information).
|
|
@@ -749,7 +756,7 @@ targetVersions:
|
|
|
749
756
|
|
|
750
757
|
**수동 승인을 사용할 수 없는 PG**
|
|
751
758
|
|
|
752
|
-
엑심베이, 페이레터
|
|
759
|
+
엑심베이, 페이레터 해외결제, 이지페이(KICC)의 경우 수동 승인을 지원하지 않고, 채널 설정에서도 해당 항목이 보이지 않습니다.
|
|
753
760
|
|
|
754
761
|
이는 근본적으로 위챗 결제와 같이 일부 해외 결제수단이 수동 승인을 지원하지 않기 때문입니다. 따라서 추후 포트원에 추가되는 PG가 이러한 결제수단을 지원한다면, 해당 PG에서는 수동 승인을 이용할 수 없을 가능성이 높습니다.
|
|
755
762
|
|
|
@@ -845,6 +852,9 @@ PG사를 통해 직접 취소할 경우 포트원과 결제 상태가 동기화
|
|
|
845
852
|
|
|
846
853
|
PG사는 이런 과정에서 발생할 수 있는 혼란을 미연에 방지하고자 **가상계좌 특약서비스에 가입한 고객사에 한해서만 가상계좌 환불을 제공**하고 있습니다.
|
|
847
854
|
|
|
855
|
+
단, **토스페이먼츠**의 경우 별도의 특약 가입 없이도 가상계좌 환불이 가능합니다.
|
|
856
|
+
이 경우 환불 시 기존 거래에서 발생한 수수료는 환불되지 않습니다.
|
|
857
|
+
|
|
848
858
|
</div>
|
|
849
859
|
|
|
850
860
|
- **필수 정보**: 환불 계좌 정보 (`refundAccount.bank`, `refundAccount.number`, `refundAccount.holderName`)
|
|
@@ -1076,7 +1086,7 @@ try {
|
|
|
1076
1086
|
|
|
1077
1087
|
**계좌 은행**
|
|
1078
1088
|
|
|
1079
|
-
[Bank](https://developers.portone.io/api/rest-v2/
|
|
1089
|
+
[Bank](https://developers.portone.io/api/rest-v2/payment#Bank) 타입 참고
|
|
1080
1090
|
|
|
1081
1091
|
- number: string
|
|
1082
1092
|
|
|
@@ -2403,6 +2413,672 @@ const response = await axios({
|
|
|
2403
2413
|
- 엑심베이의 경우 결제창을 닫은 이후에 결제가 성공 처리될 수 있습니다. 웹훅을 연동하여 결제 실패 상태에서 결제 성공 상태로 바뀌는 경우를 처리해야 합니다.
|
|
2404
2414
|
|
|
2405
2415
|
|
|
2416
|
+
# https://developers.portone.io/opi/ko/integration/pg/v2/galaxia
|
|
2417
|
+
|
|
2418
|
+
---
|
|
2419
|
+
title: 갤럭시아머니트리
|
|
2420
|
+
description: 갤럭시아머니트리 결제 연동 방법을 안내합니다.
|
|
2421
|
+
targetVersions:
|
|
2422
|
+
- v2
|
|
2423
|
+
versionVariants:
|
|
2424
|
+
v1: /opi/ko/integration/pg/v1/galaxia
|
|
2425
|
+
---
|
|
2426
|
+
|
|
2427
|
+
## 채널 설정하기
|
|
2428
|
+
|
|
2429
|
+
- [결제대행사 채널 설정하기](https://developers.portone.io/opi/ko/integration/ready/readme#3-결제대행사-채널-설정하기)의 내용을 참고하여 PG 설정을 진행합니다.
|
|
2430
|
+
|
|
2431
|
+
## 가능한 결제 수단
|
|
2432
|
+
|
|
2433
|
+
- **결제창 일반 결제**
|
|
2434
|
+
|
|
2435
|
+
`payMethod` 파라미터를 결제 수단에 따라 아래와 같이 설정해야 합니다.
|
|
2436
|
+
|
|
2437
|
+
- 카드 : `CARD`
|
|
2438
|
+
- 계좌이체 : `TRANSFER`
|
|
2439
|
+
- 가상계좌 : `VIRTUAL_ACCOUNT`
|
|
2440
|
+
- 휴대폰 소액 결제 : `MOBILE`
|
|
2441
|
+
- 상품권 : `GIFT_CERTIFICATE`
|
|
2442
|
+
- 간편결제 : `EASY_PAY`
|
|
2443
|
+
|
|
2444
|
+
- **결제창 빌링키 발급**
|
|
2445
|
+
|
|
2446
|
+
`billingKeyMethod` 파라미터를 결제 수단에 따라 아래와 같이 설정해야 합니다.
|
|
2447
|
+
|
|
2448
|
+
- 카드: `CARD`
|
|
2449
|
+
|
|
2450
|
+
- **결제창 빌링키 발급과 동시에 결제**
|
|
2451
|
+
|
|
2452
|
+
`billingKeyAndPayMethod` 파라미터를 결제 수단에 따라 아래와 같이 설정해야 합니다.
|
|
2453
|
+
|
|
2454
|
+
- 휴대폰: `MOBILE`
|
|
2455
|
+
|
|
2456
|
+
## SDK 결제 요청하기
|
|
2457
|
+
|
|
2458
|
+
결제 요청 시에는 `requestPayment` 함수를 호출해야 합니다.
|
|
2459
|
+
`channelKey` 파라미터에 결제 채널 연동 후 생성된 채널 키값을 지정하여 갤럭시아머니트리 채널 사용을 명시해주세요.
|
|
2460
|
+
|
|
2461
|
+
갤럭시아머니트리 기준으로 작성한 예시 코드는 아래와 같습니다.
|
|
2462
|
+
|
|
2463
|
+
<div class="tabs-container">
|
|
2464
|
+
|
|
2465
|
+
<div class="tabs-content" data-title="SDK 결제 요청">
|
|
2466
|
+
|
|
2467
|
+
```javascript
|
|
2468
|
+
import * as PortOne from "@portone/browser-sdk/v2";
|
|
2469
|
+
function requestPayment() {
|
|
2470
|
+
PortOne.requestPayment({
|
|
2471
|
+
storeId: "store-4ff4af41-85e3-4559-8eb8-0d08a2c6ceec", // 고객사 storeId로 변경해주세요.
|
|
2472
|
+
channelKey: "channel-key-9987cb87-6458-4888-b94e-68d9a2da896d", // 콘솔 결제 연동 화면에서 채널 연동 시 생성된 채널 키를 입력해주세요.
|
|
2473
|
+
paymentId: `payment${crypto.randomUUID()}`,
|
|
2474
|
+
orderName: "나이키 와플 트레이너 2 SD",
|
|
2475
|
+
totalAmount: 1000,
|
|
2476
|
+
currency: "KRW",
|
|
2477
|
+
payMethod: "CARD",
|
|
2478
|
+
customer: {
|
|
2479
|
+
customerId: "customer-1234", // 고객사가 구매자에게 부여한 고유 ID (필수)
|
|
2480
|
+
fullName: "포트원",
|
|
2481
|
+
phoneNumber: "010-0000-1234",
|
|
2482
|
+
email: "test@portone.io",
|
|
2483
|
+
},
|
|
2484
|
+
bypass: {
|
|
2485
|
+
galaxia: {
|
|
2486
|
+
ITEM_CODE: "상품코드", // 필수, 최대 10바이트
|
|
2487
|
+
},
|
|
2488
|
+
},
|
|
2489
|
+
});
|
|
2490
|
+
}
|
|
2491
|
+
```
|
|
2492
|
+
|
|
2493
|
+
</div>
|
|
2494
|
+
|
|
2495
|
+
</div>
|
|
2496
|
+
|
|
2497
|
+
### 주요 파라미터
|
|
2498
|
+
|
|
2499
|
+
- storeId: string
|
|
2500
|
+
|
|
2501
|
+
**상점 아이디**
|
|
2502
|
+
|
|
2503
|
+
포트원 계정에 생성된 상점을 식별하는 고유한 값으로 관리자 콘솔에서 확인할 수 있습니다.
|
|
2504
|
+
|
|
2505
|
+
- paymentId: string
|
|
2506
|
+
|
|
2507
|
+
**고객사 주문 고유 번호**
|
|
2508
|
+
|
|
2509
|
+
고객사에서 채번하는 주문 고유 번호로 매번 고유하게 채번되어야 합니다. (최대 64자)
|
|
2510
|
+
|
|
2511
|
+
- orderName: string
|
|
2512
|
+
|
|
2513
|
+
**주문명**
|
|
2514
|
+
|
|
2515
|
+
주문명으로 고객사에서 자유롭게 입력합니다. 갤럭시아머니트리의 경우 필수로 입력해야 합니다.
|
|
2516
|
+
|
|
2517
|
+
- channelKey: string
|
|
2518
|
+
|
|
2519
|
+
**채널 키**
|
|
2520
|
+
|
|
2521
|
+
포트원 콘솔 내 \[연동 관리] > \[연동 정보] > \[채널 관리] 화면에서 채널 추가 시 생성되는 값입니다. 결제 호출 시 채널을 지정할 때 사용됩니다.
|
|
2522
|
+
|
|
2523
|
+
- totalAmount: number
|
|
2524
|
+
|
|
2525
|
+
**결제 금액**
|
|
2526
|
+
|
|
2527
|
+
결제 금액으로 결제를 원하는 통화(currency)별 scale factor(소수점 몇번째 자리까지 유효한지)를 고려한 number 형식만 허용됩니다.
|
|
2528
|
+
|
|
2529
|
+
- currency: string
|
|
2530
|
+
|
|
2531
|
+
**결제 통화**
|
|
2532
|
+
|
|
2533
|
+
결제통화로 원화 결제 시 `KRW`로 입력해야 합니다. 갤럭시아머니트리의 경우 `KRW`만 지원됩니다.
|
|
2534
|
+
|
|
2535
|
+
- payMethod: string
|
|
2536
|
+
|
|
2537
|
+
**결제수단 구분코드**
|
|
2538
|
+
|
|
2539
|
+
결제 호출 시 결제수단을 지정할 때 사용됩니다.
|
|
2540
|
+
|
|
2541
|
+
- 신용카드 : `CARD`
|
|
2542
|
+
- 실시간 계좌이체 : `TRANSFER`
|
|
2543
|
+
- 가상계좌 : `VIRTUAL_ACCOUNT`
|
|
2544
|
+
- 휴대폰 소액결제 : `MOBILE`
|
|
2545
|
+
- 상품권 : `GIFT_CERTIFICATE`
|
|
2546
|
+
- 간편 결제 : `EASY_PAY`
|
|
2547
|
+
|
|
2548
|
+
- taxFreeAmount?: number
|
|
2549
|
+
|
|
2550
|
+
**면세 금액** (기본값: 0)
|
|
2551
|
+
|
|
2552
|
+
- vatAmount?: number
|
|
2553
|
+
|
|
2554
|
+
**부가세 금액**
|
|
2555
|
+
|
|
2556
|
+
미 입력시 과세 금액의 1/11로 자동 계산됩니다.
|
|
2557
|
+
|
|
2558
|
+
- customer: object
|
|
2559
|
+
|
|
2560
|
+
**고객 정보**
|
|
2561
|
+
|
|
2562
|
+
- customerId: string
|
|
2563
|
+
|
|
2564
|
+
**구매자 고유 ID**
|
|
2565
|
+
|
|
2566
|
+
고객사가 구매자를 특정하기 위해 채번한 고유 번호입니다. 갤럭시아머니트리의 경우 필수 입력이며 최대 20자까지 허용됩니다.
|
|
2567
|
+
|
|
2568
|
+
- fullName?: string
|
|
2569
|
+
|
|
2570
|
+
**구매자 전체 이름**
|
|
2571
|
+
|
|
2572
|
+
- firstName?: string
|
|
2573
|
+
|
|
2574
|
+
**구매자 이름**
|
|
2575
|
+
|
|
2576
|
+
- lastName?: string
|
|
2577
|
+
|
|
2578
|
+
**구매자 성**
|
|
2579
|
+
|
|
2580
|
+
- phoneNumber?: string
|
|
2581
|
+
|
|
2582
|
+
**구매자 연락처**
|
|
2583
|
+
|
|
2584
|
+
계좌이체 결제 시 필수 입력입니다.
|
|
2585
|
+
|
|
2586
|
+
- email?: string
|
|
2587
|
+
|
|
2588
|
+
**구매자 이메일**
|
|
2589
|
+
|
|
2590
|
+
- redirectUrl?: string
|
|
2591
|
+
|
|
2592
|
+
**모바일 환경에서 트랜잭션 종료 후 302 리디렉션 될 URL**
|
|
2593
|
+
|
|
2594
|
+
갤럭시아머니트리의 경우 **모바일 환경에서 필수 입력**입니다.
|
|
2595
|
+
|
|
2596
|
+
- noticeUrls?: string\[]
|
|
2597
|
+
|
|
2598
|
+
**트랜잭션 종료 후 웹훅이 발송 될 고객사 서버 URL**
|
|
2599
|
+
|
|
2600
|
+
설정시 콘솔에 설정된 웹훅 URL은 override 되며 해당 주소로만 웹훅이 발송됩니다.
|
|
2601
|
+
|
|
2602
|
+
- appScheme?: string
|
|
2603
|
+
|
|
2604
|
+
**IOS 앱에서 결제시 카드/은행 앱에서 인증 후 복귀 될 고객사 커스텀 앱 URL Scheme**
|
|
2605
|
+
|
|
2606
|
+
- 예: `portone://`
|
|
2607
|
+
- 주의: **IOS 앱 결제시 필수** 입력이며 **앱이 아닌 모바일 웹 결제시에는 입력하지 마세요.**
|
|
2608
|
+
|
|
2609
|
+
- isEscrow?: boolean
|
|
2610
|
+
|
|
2611
|
+
**에스크로 결제 여부** (기본값: false)
|
|
2612
|
+
|
|
2613
|
+
갤럭시아머니트리의 경우, 계좌이체/가상계좌 결제시 에스크로 결제가 허용됩니다.
|
|
2614
|
+
|
|
2615
|
+
- virtualAccount?: object
|
|
2616
|
+
|
|
2617
|
+
**가상계좌 결제 관련 설정**
|
|
2618
|
+
|
|
2619
|
+
- accountExpiry?: object
|
|
2620
|
+
|
|
2621
|
+
**입금 만료 기한**
|
|
2622
|
+
|
|
2623
|
+
갤럭시아머니트리의 경우 가상계좌 결제시 **필수 입력**입니다.
|
|
2624
|
+
|
|
2625
|
+
- validHours?: integer
|
|
2626
|
+
|
|
2627
|
+
**유효 시간**
|
|
2628
|
+
|
|
2629
|
+
- dueDate?: string
|
|
2630
|
+
|
|
2631
|
+
**만료 시점**
|
|
2632
|
+
|
|
2633
|
+
시간은 RFC 3339 date-time 형식으로 입력해야 합니다.
|
|
2634
|
+
|
|
2635
|
+
- card?: object
|
|
2636
|
+
|
|
2637
|
+
**카드 결제 관련 설정**
|
|
2638
|
+
|
|
2639
|
+
- cardCompany?: string
|
|
2640
|
+
|
|
2641
|
+
**카드사 다이렉트 호출 시 카드사 코드**
|
|
2642
|
+
|
|
2643
|
+
[카드사 코드](https://developers.portone.io/opi/ko/support/code-info/card-code) 참조
|
|
2644
|
+
|
|
2645
|
+
- installment?: object
|
|
2646
|
+
|
|
2647
|
+
**할부 설정**
|
|
2648
|
+
|
|
2649
|
+
- monthOption?: object
|
|
2650
|
+
|
|
2651
|
+
**할부 개월 수 옵션**
|
|
2652
|
+
|
|
2653
|
+
- fixedMonth?: number
|
|
2654
|
+
|
|
2655
|
+
**고정 할부 개월 수**
|
|
2656
|
+
|
|
2657
|
+
일시불일 시 0으로 설정합니다.
|
|
2658
|
+
|
|
2659
|
+
- availableMonthList?: number\[]
|
|
2660
|
+
|
|
2661
|
+
**선택 가능한 할부 개월 수 목록**
|
|
2662
|
+
|
|
2663
|
+
예시: `[0, 2, 3, 4, 5, 6]` - 일시불을 포함한 2, 3, 4, 5, 6개월까지 할부개월 선택 가능
|
|
2664
|
+
|
|
2665
|
+
- mobile?: object
|
|
2666
|
+
|
|
2667
|
+
**휴대폰 결제 관련 설정**
|
|
2668
|
+
|
|
2669
|
+
- carrier?: string
|
|
2670
|
+
|
|
2671
|
+
**휴대폰 통신사 코드**
|
|
2672
|
+
|
|
2673
|
+
`SKT`, `KT`, `LGU`, `HELLO`, `KCT`, `SK7`
|
|
2674
|
+
|
|
2675
|
+
- giftCertificate?: object
|
|
2676
|
+
|
|
2677
|
+
**상품권 결제 관련 설정**
|
|
2678
|
+
|
|
2679
|
+
- giftCertificateType?: string
|
|
2680
|
+
|
|
2681
|
+
**상품권 종류**
|
|
2682
|
+
|
|
2683
|
+
- 컬쳐랜드: `CULTURELAND`
|
|
2684
|
+
- 스마트문상: `SMART_MUNSANG`
|
|
2685
|
+
- 도서문화상품권: `BOOKNLIFE`
|
|
2686
|
+
- 해피머니: `HAPPYMONEY`
|
|
2687
|
+
|
|
2688
|
+
- easyPay?: object
|
|
2689
|
+
|
|
2690
|
+
**간편결제 관련 설정**
|
|
2691
|
+
|
|
2692
|
+
- easyPayProvider?: string
|
|
2693
|
+
|
|
2694
|
+
**간편결제사 코드**
|
|
2695
|
+
|
|
2696
|
+
- 카카오페이: `KAKAOPAY`
|
|
2697
|
+
- 네이버페이: `NAVERPAY`
|
|
2698
|
+
- 토스페이: `TOSSPAY`
|
|
2699
|
+
- 삼성페이: `SAMSUNGPAY`
|
|
2700
|
+
- 애플페이: `APPLEPAY`
|
|
2701
|
+
- 페이코: `PAYCO`
|
|
2702
|
+
- 머니트리: `MONEYTREE`
|
|
2703
|
+
|
|
2704
|
+
- bypass: object
|
|
2705
|
+
|
|
2706
|
+
**PG사 결제창 호출 시 PG사로 그대로 bypass할 파라미터들의 모음**
|
|
2707
|
+
|
|
2708
|
+
- galaxia: object
|
|
2709
|
+
|
|
2710
|
+
**갤럭시아머니트리 전용 파라미터**
|
|
2711
|
+
|
|
2712
|
+
- ITEM\_CODE: string
|
|
2713
|
+
|
|
2714
|
+
**구매 상품코드**
|
|
2715
|
+
|
|
2716
|
+
갤럭시아머니트리에서 발급받은 상품 코드를 입력합니다. (최대 10자, **필수**)
|
|
2717
|
+
|
|
2718
|
+
### 유의사항
|
|
2719
|
+
|
|
2720
|
+
<details>
|
|
2721
|
+
|
|
2722
|
+
<summary>갤럭시아머니트리 지원 결제 수단</summary>
|
|
2723
|
+
|
|
2724
|
+
- CARD (신용카드)
|
|
2725
|
+
|
|
2726
|
+
- TRANSFER (실시간 계좌이체) + 에스크로
|
|
2727
|
+
|
|
2728
|
+
- VIRTUAL\_ACCOUNT (가상계좌) + 에스크로
|
|
2729
|
+
|
|
2730
|
+
- MOBILE (휴대폰소액결제)
|
|
2731
|
+
|
|
2732
|
+
- GIFT\_CERTIFICATE (상품권)
|
|
2733
|
+
- CULTURELAND (컬쳐랜드)
|
|
2734
|
+
- SMART\_MUNSANG (스마트문상)
|
|
2735
|
+
- BOOKNLIFE (도서문화상품권)
|
|
2736
|
+
- HAPPYMONEY (해피머니)
|
|
2737
|
+
|
|
2738
|
+
- EASY\_PAY (간편결제)
|
|
2739
|
+
- KAKAOPAY (카카오페이)
|
|
2740
|
+
- NAVERPAY (네이버페이)
|
|
2741
|
+
- TOSSPAY (토스페이)
|
|
2742
|
+
- SAMSUNGPAY (삼성페이)
|
|
2743
|
+
- APPLEPAY (애플페이)
|
|
2744
|
+
- PAYCO (페이코)
|
|
2745
|
+
- MONEYTREE (머니트리)
|
|
2746
|
+
|
|
2747
|
+
</details>
|
|
2748
|
+
|
|
2749
|
+
<details>
|
|
2750
|
+
|
|
2751
|
+
<summary>가능한 트랜잭션 환경</summary>
|
|
2752
|
+
|
|
2753
|
+
- PC (iframe)
|
|
2754
|
+
- 모바일 (리디렉션)
|
|
2755
|
+
|
|
2756
|
+
</details>
|
|
2757
|
+
|
|
2758
|
+
## SDK 빌링키 발급 요청하기
|
|
2759
|
+
|
|
2760
|
+
빌링키 발급 요청 시에는 `requestIssueBillingKey` 함수를 호출해야 합니다.
|
|
2761
|
+
`channelKey` 파라미터에 결제 채널 연동 후 생성된 채널 키값을 지정하여 갤럭시아머니트리 채널 사용을 명시해주세요.
|
|
2762
|
+
|
|
2763
|
+
갤럭시아머니트리 기준으로 작성한 예시 코드는 아래와 같습니다.
|
|
2764
|
+
|
|
2765
|
+
<div class="tabs-container">
|
|
2766
|
+
|
|
2767
|
+
<div class="tabs-content" data-title="SDK 빌링키 발급 요청">
|
|
2768
|
+
|
|
2769
|
+
```javascript
|
|
2770
|
+
import * as PortOne from "@portone/browser-sdk/v2";
|
|
2771
|
+
function requestIssueBillingKey() {
|
|
2772
|
+
PortOne.requestIssueBillingKey({
|
|
2773
|
+
storeId: "store-4ff4af41-85e3-4559-8eb8-0d08a2c6ceec", // 고객사 storeId로 변경해주세요.
|
|
2774
|
+
channelKey: "channel-key-3b37819a-1c72-4deb-a245-8c810af5403d", // 콘솔 결제 연동 화면에서 채널 연동 시 생성된 채널 키를 입력해주세요.
|
|
2775
|
+
billingKeyMethod: "CARD", // 갤럭시아머니트리의 경우 'CARD'만 지원됩니다.
|
|
2776
|
+
issueId: "test-issueId",
|
|
2777
|
+
issueName: "빌링키 발급",
|
|
2778
|
+
displayAmount: 1000,
|
|
2779
|
+
currency: "KRW",
|
|
2780
|
+
customer: {
|
|
2781
|
+
customerId: "customer-1234", // 고객사가 구매자에게 부여한 고유 ID (필수)
|
|
2782
|
+
fullName: "포트원",
|
|
2783
|
+
phoneNumber: "010-0000-1234",
|
|
2784
|
+
email: "test@portone.io",
|
|
2785
|
+
},
|
|
2786
|
+
bypass: {
|
|
2787
|
+
galaxia: {
|
|
2788
|
+
ITEM_CODE: "상품코드", // 필수, 최대 10바이트
|
|
2789
|
+
},
|
|
2790
|
+
},
|
|
2791
|
+
});
|
|
2792
|
+
}
|
|
2793
|
+
```
|
|
2794
|
+
|
|
2795
|
+
</div>
|
|
2796
|
+
|
|
2797
|
+
</div>
|
|
2798
|
+
|
|
2799
|
+
### 주요 파라미터
|
|
2800
|
+
|
|
2801
|
+
- storeId: string
|
|
2802
|
+
|
|
2803
|
+
**상점 아이디**
|
|
2804
|
+
|
|
2805
|
+
포트원 계정에 생성된 상점을 식별하는 고유한 값으로 관리자 콘솔에서 확인할 수 있습니다.
|
|
2806
|
+
|
|
2807
|
+
- channelKey: string
|
|
2808
|
+
|
|
2809
|
+
**채널 키**
|
|
2810
|
+
|
|
2811
|
+
포트원 콘솔 내 \[연동 관리] > \[연동 정보] > \[채널 관리] 화면에서 채널 추가 시 생성되는 값입니다. 결제 호출 시 채널을 지정할 때 사용됩니다.
|
|
2812
|
+
|
|
2813
|
+
- billingKeyMethod: string
|
|
2814
|
+
|
|
2815
|
+
**빌링키 발급수단**
|
|
2816
|
+
|
|
2817
|
+
갤럭시아머니트리는 빌링키 발급 수단으로 카드만을 지원하므로 해당 파라미터는 `CARD`로 고정해야 합니다.
|
|
2818
|
+
|
|
2819
|
+
- issueId: string
|
|
2820
|
+
|
|
2821
|
+
**빌링키 발급 건 고유 ID**
|
|
2822
|
+
|
|
2823
|
+
고객사에서 채번하여 사용해야 합니다.
|
|
2824
|
+
|
|
2825
|
+
- issueName: string
|
|
2826
|
+
|
|
2827
|
+
**빌링키 발급 시 결제창에 표시되는 제목**
|
|
2828
|
+
|
|
2829
|
+
갤럭시아머니트리의 경우 필수로 입력해야 합니다.
|
|
2830
|
+
|
|
2831
|
+
- displayAmount?: number
|
|
2832
|
+
|
|
2833
|
+
**결제창에 표시될 금액**
|
|
2834
|
+
|
|
2835
|
+
빌링키 발급 시 amount가 0이거나 미입력시 1000원으로 노출됩니다. (결제 발생하지 않음)
|
|
2836
|
+
|
|
2837
|
+
- currency?: string
|
|
2838
|
+
|
|
2839
|
+
**결제 통화**
|
|
2840
|
+
|
|
2841
|
+
갤럭시아머니트리의 경우 `KRW`만 지원됩니다.
|
|
2842
|
+
|
|
2843
|
+
- customer: object
|
|
2844
|
+
|
|
2845
|
+
**고객 정보**
|
|
2846
|
+
|
|
2847
|
+
- customerId: string
|
|
2848
|
+
|
|
2849
|
+
**구매자 고유 ID**
|
|
2850
|
+
|
|
2851
|
+
고객사가 구매자를 특정하기 위해 채번한 고유 번호입니다. 갤럭시아머니트리의 경우 필수 입력입니다.
|
|
2852
|
+
|
|
2853
|
+
- fullName?: string
|
|
2854
|
+
|
|
2855
|
+
**구매자 전체 이름**
|
|
2856
|
+
|
|
2857
|
+
- firstName?: string
|
|
2858
|
+
|
|
2859
|
+
**구매자 이름**
|
|
2860
|
+
|
|
2861
|
+
- lastName?: string
|
|
2862
|
+
|
|
2863
|
+
**구매자 성**
|
|
2864
|
+
|
|
2865
|
+
- phoneNumber?: string
|
|
2866
|
+
|
|
2867
|
+
**구매자 연락처**
|
|
2868
|
+
|
|
2869
|
+
- email?: string
|
|
2870
|
+
|
|
2871
|
+
**구매자 이메일**
|
|
2872
|
+
|
|
2873
|
+
- redirectUrl?: string
|
|
2874
|
+
|
|
2875
|
+
**모바일 환경에서 트랜잭션 종료 후 302 리디렉션 될 URL**
|
|
2876
|
+
|
|
2877
|
+
갤럭시아머니트리의 경우 **모바일 환경에서 필수 입력**입니다.
|
|
2878
|
+
|
|
2879
|
+
- bypass: object
|
|
2880
|
+
|
|
2881
|
+
**PG사 결제창 호출 시 PG사로 그대로 bypass할 파라미터들의 모음**
|
|
2882
|
+
|
|
2883
|
+
- galaxia: object
|
|
2884
|
+
|
|
2885
|
+
**갤럭시아머니트리 전용 파라미터**
|
|
2886
|
+
|
|
2887
|
+
- ITEM\_CODE: string
|
|
2888
|
+
|
|
2889
|
+
**구매 상품코드**
|
|
2890
|
+
|
|
2891
|
+
고객사에서 내부적으로 관리하는 상품 코드를 입력합니다. (최대 10자, **필수**)
|
|
2892
|
+
|
|
2893
|
+
<details>
|
|
2894
|
+
|
|
2895
|
+
<summary>갤럭시아머니트리 지원 빌링키 발급 수단</summary>
|
|
2896
|
+
|
|
2897
|
+
- CARD (카드)
|
|
2898
|
+
|
|
2899
|
+
</details>
|
|
2900
|
+
|
|
2901
|
+
## SDK 빌링키 발급 및 결제 요청하기
|
|
2902
|
+
|
|
2903
|
+
빌링키 발급과 동시에 결제 요청 시에는 `requestIssueBillingKeyAndPay` 함수를 호출해야 합니다.
|
|
2904
|
+
`channelKey` 파라미터에 결제 채널 연동 후 생성된 채널 키값을 지정하여 갤럭시아머니트리 채널 사용을 명시해주세요.
|
|
2905
|
+
|
|
2906
|
+
갤럭시아머니트리 기준으로 작성한 예시 코드는 아래와 같습니다.
|
|
2907
|
+
|
|
2908
|
+
<div class="tabs-container">
|
|
2909
|
+
|
|
2910
|
+
<div class="tabs-content" data-title="SDK 빌링키 발급 및 결제 요청">
|
|
2911
|
+
|
|
2912
|
+
```javascript
|
|
2913
|
+
import * as PortOne from "@portone/browser-sdk/v2";
|
|
2914
|
+
function requestIssueBillingKeyAndPay() {
|
|
2915
|
+
PortOne.requestIssueBillingKeyAndPay({
|
|
2916
|
+
storeId: "store-4ff4af41-85e3-4559-8eb8-0d08a2c6ceec", // 고객사 storeId로 변경해주세요.
|
|
2917
|
+
channelKey: "channel-key-3b37819a-1c72-4deb-a245-8c810af5403d", // 콘솔 결제 연동 화면에서 채널 연동 시 생성된 채널 키를 입력해주세요.
|
|
2918
|
+
billingKeyAndPayMethod: "MOBILE", // 갤럭시아머니트리의 경우 'MOBILE'만 지원됩니다.
|
|
2919
|
+
paymentId: `payment${crypto.randomUUID()}`,
|
|
2920
|
+
orderName: "월간 이용권 정기결제",
|
|
2921
|
+
totalAmount: 1000, // 전달한 금액 만큼 실제로 승인이 됩니다.
|
|
2922
|
+
currency: "KRW",
|
|
2923
|
+
customer: {
|
|
2924
|
+
customerId: "customer-1234", // 고객사가 구매자에게 부여한 고유 ID (필수)
|
|
2925
|
+
fullName: "포트원",
|
|
2926
|
+
phoneNumber: "010-0000-1234",
|
|
2927
|
+
email: "test@portone.io",
|
|
2928
|
+
},
|
|
2929
|
+
bypass: {
|
|
2930
|
+
galaxia: {
|
|
2931
|
+
ITEM_CODE: "상품코드", // 필수, 최대 10바이트
|
|
2932
|
+
},
|
|
2933
|
+
},
|
|
2934
|
+
});
|
|
2935
|
+
}
|
|
2936
|
+
```
|
|
2937
|
+
|
|
2938
|
+
</div>
|
|
2939
|
+
|
|
2940
|
+
</div>
|
|
2941
|
+
|
|
2942
|
+
### 주요 파라미터
|
|
2943
|
+
|
|
2944
|
+
- storeId: string
|
|
2945
|
+
|
|
2946
|
+
**상점 아이디**
|
|
2947
|
+
|
|
2948
|
+
포트원 계정에 생성된 상점을 식별하는 고유한 값으로 관리자 콘솔에서 확인할 수 있습니다.
|
|
2949
|
+
|
|
2950
|
+
- channelKey: string
|
|
2951
|
+
|
|
2952
|
+
**채널 키**
|
|
2953
|
+
|
|
2954
|
+
포트원 콘솔 내 \[연동 관리] > \[연동 정보] > \[채널 관리] 화면에서 채널 추가 시 생성되는 값입니다. 결제 호출 시 채널을 지정할 때 사용됩니다.
|
|
2955
|
+
|
|
2956
|
+
- billingKeyAndPayMethod: string
|
|
2957
|
+
|
|
2958
|
+
**빌링키 발급 및 결제수단**
|
|
2959
|
+
|
|
2960
|
+
갤럭시아머니트리의 경우, 빌링키 발급과 동시에 결제 수단은 `MOBILE`만 허용되며 **반드시 `MOBILE`을 필수로 입력해주셔야** 합니다.
|
|
2961
|
+
|
|
2962
|
+
- paymentId: string
|
|
2963
|
+
|
|
2964
|
+
**주문 번호**
|
|
2965
|
+
|
|
2966
|
+
매번 고유하게 채번되어야 합니다.
|
|
2967
|
+
|
|
2968
|
+
- orderName: string
|
|
2969
|
+
|
|
2970
|
+
**주문명**
|
|
2971
|
+
|
|
2972
|
+
갤럭시아머니트리의 경우 필수로 입력해야 합니다.
|
|
2973
|
+
|
|
2974
|
+
- totalAmount: number
|
|
2975
|
+
|
|
2976
|
+
**결제 금액**
|
|
2977
|
+
|
|
2978
|
+
**string** 이 아닌 점에 유의하세요. 전달한 금액 만큼 실제로 승인이 됩니다.
|
|
2979
|
+
|
|
2980
|
+
- currency?: string
|
|
2981
|
+
|
|
2982
|
+
**결제 통화**
|
|
2983
|
+
|
|
2984
|
+
갤럭시아머니트리의 경우 `KRW`만 지원됩니다.
|
|
2985
|
+
|
|
2986
|
+
- customer: object
|
|
2987
|
+
|
|
2988
|
+
**고객 정보**
|
|
2989
|
+
|
|
2990
|
+
- customerId: string
|
|
2991
|
+
|
|
2992
|
+
**구매자 고유 ID**
|
|
2993
|
+
|
|
2994
|
+
고객사가 구매자를 특정하기 위해 채번한 고유 번호입니다. 갤럭시아머니트리의 경우 필수 입력이며 최대 20자까지 허용됩니다.
|
|
2995
|
+
|
|
2996
|
+
- fullName?: string
|
|
2997
|
+
|
|
2998
|
+
**구매자 전체 이름**
|
|
2999
|
+
|
|
3000
|
+
- firstName?: string
|
|
3001
|
+
|
|
3002
|
+
**구매자 이름**
|
|
3003
|
+
|
|
3004
|
+
- lastName?: string
|
|
3005
|
+
|
|
3006
|
+
**구매자 성**
|
|
3007
|
+
|
|
3008
|
+
- phoneNumber?: string
|
|
3009
|
+
|
|
3010
|
+
**구매자 연락처**
|
|
3011
|
+
|
|
3012
|
+
- email?: string
|
|
3013
|
+
|
|
3014
|
+
**구매자 이메일**
|
|
3015
|
+
|
|
3016
|
+
- redirectUrl?: string
|
|
3017
|
+
|
|
3018
|
+
**모바일 환경에서 트랜잭션 종료 후 302 리디렉션 될 URL**
|
|
3019
|
+
|
|
3020
|
+
갤럭시아머니트리의 경우 **모바일 환경에서 필수 입력**입니다.
|
|
3021
|
+
|
|
3022
|
+
- mobile?: object
|
|
3023
|
+
|
|
3024
|
+
**휴대폰 결제 관련 설정**
|
|
3025
|
+
|
|
3026
|
+
- carrier?: string
|
|
3027
|
+
|
|
3028
|
+
**휴대폰 통신사 코드**
|
|
3029
|
+
|
|
3030
|
+
`SKT`, `KT`, `LGU`, `HELLO`, `KCT`, `SK7`
|
|
3031
|
+
|
|
3032
|
+
- bypass: object
|
|
3033
|
+
|
|
3034
|
+
**PG사 결제창 호출 시 PG사로 그대로 bypass할 파라미터들의 모음**
|
|
3035
|
+
|
|
3036
|
+
- galaxia: object
|
|
3037
|
+
|
|
3038
|
+
**갤럭시아머니트리 전용 파라미터**
|
|
3039
|
+
|
|
3040
|
+
- ITEM\_CODE: string
|
|
3041
|
+
|
|
3042
|
+
**구매 상품코드**
|
|
3043
|
+
|
|
3044
|
+
갤럭시아머니트리에서 발급받은 상품 코드를 입력합니다. (최대 10자, **필수**)
|
|
3045
|
+
|
|
3046
|
+
<details>
|
|
3047
|
+
|
|
3048
|
+
<summary>갤럭시아머니트리 지원 빌링키 발급과 동시에 결제 수단</summary>
|
|
3049
|
+
|
|
3050
|
+
- MOBILE (휴대폰소액결제)
|
|
3051
|
+
|
|
3052
|
+
</details>
|
|
3053
|
+
|
|
3054
|
+
## 연동 유의사항
|
|
3055
|
+
|
|
3056
|
+
### 갤럭시아머니트리 필수 파라미터
|
|
3057
|
+
|
|
3058
|
+
갤럭시아머니트리 연동 시 아래 파라미터는 필수로 입력해야 합니다.
|
|
3059
|
+
|
|
3060
|
+
- `bypass.galaxia.ITEM_CODE`: 고객사에서 내부적으로 관리하는 상품 코드 (최대 10자)
|
|
3061
|
+
- `customer.customerId`: 고객사가 구매자에게 부여한 고유 ID (최대 20자)
|
|
3062
|
+
- `orderName`: 주문명
|
|
3063
|
+
|
|
3064
|
+
### 모바일 결제 시 필수 파라미터
|
|
3065
|
+
|
|
3066
|
+
모바일 환경에서 결제 시 `redirectUrl` 파라미터를 필수로 입력해야 합니다.
|
|
3067
|
+
|
|
3068
|
+
### 가상계좌 결제 시 필수 파라미터
|
|
3069
|
+
|
|
3070
|
+
가상계좌 결제 시 `virtualAccount.accountExpiry` 파라미터를 필수로 입력해야 합니다.
|
|
3071
|
+
|
|
3072
|
+
### 빌링키 발급 제약사항
|
|
3073
|
+
|
|
3074
|
+
- **결제창 빌링키 발급**: 카드(`CARD`)만 지원
|
|
3075
|
+
- **결제창 빌링키 발급과 동시에 결제**: 휴대폰(`MOBILE`)만 지원
|
|
3076
|
+
|
|
3077
|
+
### 지원 통화
|
|
3078
|
+
|
|
3079
|
+
갤럭시아머니트리는 `KRW`만 지원합니다.
|
|
3080
|
+
|
|
3081
|
+
|
|
2406
3082
|
# https://developers.portone.io/opi/ko/integration/pg/v2/inicis-jp
|
|
2407
3083
|
|
|
2408
3084
|
---
|
|
@@ -2555,13 +3231,13 @@ function requestPayment() {
|
|
|
2555
3231
|
|
|
2556
3232
|
- validHours?: integer
|
|
2557
3233
|
|
|
2558
|
-
|
|
3234
|
+
**유효 시간**
|
|
2559
3235
|
|
|
2560
3236
|
- dueDate?: string
|
|
2561
3237
|
|
|
2562
|
-
|
|
3238
|
+
**만료 시점**
|
|
2563
3239
|
|
|
2564
|
-
|
|
3240
|
+
시간은 ISO8601 형식으로 입력해야 합니다.
|
|
2565
3241
|
|
|
2566
3242
|
- easyPay?: object
|
|
2567
3243
|
|
|
@@ -2825,10 +3501,6 @@ versionVariants:
|
|
|
2825
3501
|
|
|
2826
3502
|
- [결제대행사 채널 설정하기](https://developers.portone.io/opi/ko/integration/ready/readme#3-결제대행사-채널-설정하기) 페이지의 내용을 참고하여 채널 설정을 진행합니다.
|
|
2827
3503
|
|
|
2828
|
-
## 사전 계약 안내
|
|
2829
|
-
|
|
2830
|
-
SMS를 통한 본인인증을 진행하기 위해서는 KG이니시스와 별도 계약이 필요합니다.
|
|
2831
|
-
|
|
2832
3504
|
## SDK를 통해 본인인증하기
|
|
2833
3505
|
|
|
2834
3506
|
- [본인인증 연동하기](https://developers.portone.io/opi/ko/extra/identity-verification/readme-v2) 페이지의 내용을 참고하여 연동을 진행합니다.
|
|
@@ -3359,7 +4031,7 @@ KG이니시스의 경우 아래 간편결제사를 지원합니다. `easyPay.eas
|
|
|
3359
4031
|
|
|
3360
4032
|
- 카카오페이: `KAKAOPAY`
|
|
3361
4033
|
- 네이버페이: `NAVERPAY`
|
|
3362
|
-
- 삼성페이: `
|
|
4034
|
+
- 삼성페이: `SAMSUNGPAY`
|
|
3363
4035
|
- ssg페이: `SSGPAY`
|
|
3364
4036
|
- 애플페이: `APPLEPAY`
|
|
3365
4037
|
- lpay: `LPAY`
|
|
@@ -3931,7 +4603,7 @@ const issueResponse = await axios({
|
|
|
3931
4603
|
**발급 은행**
|
|
3932
4604
|
|
|
3933
4605
|
- 은행코드는 ENUM으로 정의되어 있습니다.
|
|
3934
|
-
- [BANK ENUM 바로가기](https://developers.portone.io/api/rest-v2/
|
|
4606
|
+
- [BANK ENUM 바로가기](https://developers.portone.io/api/rest-v2/payment#Bank)
|
|
3935
4607
|
|
|
3936
4608
|
- expiry: object
|
|
3937
4609
|
|
|
@@ -4920,7 +5592,7 @@ await axios({
|
|
|
4920
5592
|
|
|
4921
5593
|
### `identityVerificationId` 파라미터 유의사항
|
|
4922
5594
|
|
|
4923
|
-
영어 대소문자와 숫자만 사용 가능하며
|
|
5595
|
+
영어 대소문자와 숫자만 사용 가능하며 40자 이하로 입력해야 합니다.
|
|
4924
5596
|
|
|
4925
5597
|
|
|
4926
5598
|
# https://developers.portone.io/opi/ko/integration/pg/v2/kcp-v2
|
|
@@ -5167,7 +5839,7 @@ function requestPayment() {
|
|
|
5167
5839
|
{
|
|
5168
5840
|
"bypass": {
|
|
5169
5841
|
"kcp_v2": {
|
|
5170
|
-
"site_logo": "https://portone.io/assets/portone.jpg",
|
|
5842
|
+
"site_logo": "https://developers.portone.io/assets/portone.jpg",
|
|
5171
5843
|
"skin_indx": 6,
|
|
5172
5844
|
"shop_user_id": "user_id1",
|
|
5173
5845
|
"site_name": "포트원 고객사"
|
|
@@ -5704,7 +6376,7 @@ const issueResponse = await axios({
|
|
|
5704
6376
|
**발급 은행**
|
|
5705
6377
|
|
|
5706
6378
|
- 은행코드는 ENUM으로 정의되어 있습니다.
|
|
5707
|
-
- [BANK ENUM 바로가기](https://developers.portone.io/api/rest-v2/
|
|
6379
|
+
- [BANK ENUM 바로가기](https://developers.portone.io/api/rest-v2/payment#Bank)
|
|
5708
6380
|
|
|
5709
6381
|
- expiry: object
|
|
5710
6382
|
|
|
@@ -6202,6 +6874,326 @@ const response = await axios({
|
|
|
6202
6874
|
**결제 예정 시점**
|
|
6203
6875
|
|
|
6204
6876
|
|
|
6877
|
+
# https://developers.portone.io/opi/ko/integration/pg/v2/kicc-v2
|
|
6878
|
+
|
|
6879
|
+
---
|
|
6880
|
+
title: 이지페이(KICC) 해외결제
|
|
6881
|
+
description: 이지페이(KICC) 해외결제 연동 방법을 안내합니다.
|
|
6882
|
+
targetVersions:
|
|
6883
|
+
- v2
|
|
6884
|
+
---
|
|
6885
|
+
|
|
6886
|
+
## 채널 설정하기
|
|
6887
|
+
|
|
6888
|
+
- [결제대행사 채널 설정하기](https://developers.portone.io/opi/ko/integration/ready/readme#3-결제대행사-채널-설정하기)의 내용을 참고하여 PG 설정을 진행합니다.
|
|
6889
|
+
|
|
6890
|
+
## 가능한 결제 수단
|
|
6891
|
+
|
|
6892
|
+
- **결제창 일반 결제**
|
|
6893
|
+
|
|
6894
|
+
KICC 해외결제를 통해 위챗페이와 알리페이 플러스를 이용할 수 있습니다.
|
|
6895
|
+
이용하고자 하는 결제사 별 파라미터는 아래를 참고해주세요.
|
|
6896
|
+
|
|
6897
|
+
## SDK 결제 요청하기
|
|
6898
|
+
|
|
6899
|
+
결제 요청 시에는 `requestPayment` 함수를 호출해야 합니다.
|
|
6900
|
+
`channelKey` 파라미터에 결제 채널 연동 후 생성된 채널 키값을 지정하여 KICC 채널 사용을 명시해주세요.
|
|
6901
|
+
|
|
6902
|
+
KICC 기준으로 작성한 예시 코드는 아래와 같습니다.
|
|
6903
|
+
|
|
6904
|
+
<div class="tabs-container">
|
|
6905
|
+
|
|
6906
|
+
<div class="tabs-content" data-title="위챗페이">
|
|
6907
|
+
|
|
6908
|
+
```javascript
|
|
6909
|
+
import * as PortOne from "@portone/browser-sdk/v2";
|
|
6910
|
+
function requestPayment() {
|
|
6911
|
+
PortOne.requestPayment({
|
|
6912
|
+
storeId: "store-4ff4af41-85e3-4559-8eb8-0d08a2c6ceec", // 고객사 storeId로 변경해주세요.
|
|
6913
|
+
channelKey: "channel-key-9987cb87-6458-4888-b94e-68d9a2da896d", // 콘솔 결제 연동 화면에서 채널 연동 시 생성된 채널 키를 입력해주세요.
|
|
6914
|
+
paymentId: `payment${crypto.randomUUID()}`,
|
|
6915
|
+
orderName: "PortOne Purchase",
|
|
6916
|
+
totalAmount: 100, // 1 USD
|
|
6917
|
+
currency: "USD",
|
|
6918
|
+
payMethod: "EASY_PAY",
|
|
6919
|
+
easyPay: {
|
|
6920
|
+
easyPayProvider: "WECHAT",
|
|
6921
|
+
},
|
|
6922
|
+
locale: "KO_KR",
|
|
6923
|
+
customer: {
|
|
6924
|
+
fullName: "PortOne",
|
|
6925
|
+
email: "test@example.com",
|
|
6926
|
+
},
|
|
6927
|
+
});
|
|
6928
|
+
}
|
|
6929
|
+
```
|
|
6930
|
+
|
|
6931
|
+
**주요 파라미터 설명**
|
|
6932
|
+
|
|
6933
|
+
- storeId: string
|
|
6934
|
+
|
|
6935
|
+
**스토어 아이디**
|
|
6936
|
+
|
|
6937
|
+
포트원 계정에 생성된 상점을 식별하는 고유한 값으로 관리자 콘솔에서 확인할 수 있습니다.
|
|
6938
|
+
|
|
6939
|
+
- paymentId: string
|
|
6940
|
+
|
|
6941
|
+
**고객사 주문 고유 번호**
|
|
6942
|
+
|
|
6943
|
+
- 고객사가 채번하는 주문 고유 번호입니다.
|
|
6944
|
+
- 이미 승인 완료 된 `paymentId`로 결제를 시도하는 경우 에러가 발생합니다.
|
|
6945
|
+
|
|
6946
|
+
- orderName: string
|
|
6947
|
+
|
|
6948
|
+
**주문명**
|
|
6949
|
+
|
|
6950
|
+
주문명으로 고객사에서 자유롭게 입력합니다.
|
|
6951
|
+
|
|
6952
|
+
KICC와 위챗페이에서는 영문만 사용하는 것을 권장합니다.
|
|
6953
|
+
|
|
6954
|
+
- channelKey: string
|
|
6955
|
+
|
|
6956
|
+
**채널 키**
|
|
6957
|
+
|
|
6958
|
+
콘솔에서 채널 연동 시 생성된 채널 키입니다.
|
|
6959
|
+
|
|
6960
|
+
- totalAmount: number
|
|
6961
|
+
|
|
6962
|
+
**결제 금액**
|
|
6963
|
+
|
|
6964
|
+
결제 금액(실제 결제 금액 X 10^ 해당 currency의 scale factor, 예: $1.50 -> 150)
|
|
6965
|
+
|
|
6966
|
+
- currency: string
|
|
6967
|
+
|
|
6968
|
+
**결제 통화 코드**
|
|
6969
|
+
|
|
6970
|
+
[ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) 통화 코드
|
|
6971
|
+
|
|
6972
|
+
- `KRW`: 한국 원
|
|
6973
|
+
- `USD`: 미국 달러
|
|
6974
|
+
|
|
6975
|
+
- locale?: Locale
|
|
6976
|
+
|
|
6977
|
+
**결제창 언어**
|
|
6978
|
+
|
|
6979
|
+
- `ZH_CN`: 중국어 (중국 본토) (기본값)
|
|
6980
|
+
- `KO_KR`: 한국어
|
|
6981
|
+
- `EN_US`: 영어
|
|
6982
|
+
- `ZH_TW`: 중국어 (대만)
|
|
6983
|
+
|
|
6984
|
+
- customer?: object
|
|
6985
|
+
|
|
6986
|
+
**고객 정보**
|
|
6987
|
+
|
|
6988
|
+
- fullName?: string
|
|
6989
|
+
|
|
6990
|
+
**구매자 전체 이름**
|
|
6991
|
+
|
|
6992
|
+
`fullName`과 `firstName` / `lastName`이 모두 입력된 경우 `fullName`으로 기록됩니다.
|
|
6993
|
+
|
|
6994
|
+
- firstName?: string
|
|
6995
|
+
|
|
6996
|
+
**구매자 이름**
|
|
6997
|
+
|
|
6998
|
+
`firstName`을 입력하는 경우 `lastName`도 필수로 입력해야 합니다. `fullName`이 없고,
|
|
6999
|
+
`firstName`과 `lastName`이 존재하는 경우 `{firstName} {lastName}`으로 저장됩니다.
|
|
7000
|
+
|
|
7001
|
+
- lastName?: string
|
|
7002
|
+
|
|
7003
|
+
**구매자 성**
|
|
7004
|
+
|
|
7005
|
+
`lastName`을 입력하는 경우 `firstName`도 필수로 입력해야 합니다.
|
|
7006
|
+
|
|
7007
|
+
- phoneNumber?: string
|
|
7008
|
+
|
|
7009
|
+
**구매자 연락처**
|
|
7010
|
+
|
|
7011
|
+
- email?: string
|
|
7012
|
+
|
|
7013
|
+
**구매자 이메일 주소**
|
|
7014
|
+
|
|
7015
|
+
</div>
|
|
7016
|
+
|
|
7017
|
+
<div class="tabs-content" data-title="알리페이 플러스">
|
|
7018
|
+
|
|
7019
|
+
```javascript
|
|
7020
|
+
import * as PortOne from "@portone/browser-sdk/v2";
|
|
7021
|
+
function requestPayment() {
|
|
7022
|
+
PortOne.requestPayment({
|
|
7023
|
+
storeId: "store-4ff4af41-85e3-4559-8eb8-0d08a2c6ceec", // 고객사 storeId로 변경해주세요.
|
|
7024
|
+
channelKey: "channel-key-9987cb87-6458-4888-b94e-68d9a2da896d", // 콘솔 결제 연동 화면에서 채널 연동 시 생성된 채널 키를 입력해주세요.
|
|
7025
|
+
paymentId: `payment${crypto.randomUUID()}`,
|
|
7026
|
+
orderName: "PortOne Purchase",
|
|
7027
|
+
orderDescription: "Description for Order",
|
|
7028
|
+
totalAmount: 100, // 1 USD
|
|
7029
|
+
currency: "USD",
|
|
7030
|
+
payMethod: "ALIPAY_PLUS",
|
|
7031
|
+
alipayPlus: {
|
|
7032
|
+
easyPayProvider: "ALIPAY",
|
|
7033
|
+
},
|
|
7034
|
+
customer: {
|
|
7035
|
+
fullName: "PortOne",
|
|
7036
|
+
email: "test@example.com",
|
|
7037
|
+
},
|
|
7038
|
+
});
|
|
7039
|
+
}
|
|
7040
|
+
```
|
|
7041
|
+
|
|
7042
|
+
**주요 파라미터 설명**
|
|
7043
|
+
|
|
7044
|
+
- storeId: string
|
|
7045
|
+
|
|
7046
|
+
**스토어 아이디**
|
|
7047
|
+
|
|
7048
|
+
포트원 계정에 생성된 상점을 식별하는 고유한 값으로 관리자 콘솔에서 확인할 수 있습니다.
|
|
7049
|
+
|
|
7050
|
+
- paymentId: string
|
|
7051
|
+
|
|
7052
|
+
**고객사 주문 고유 번호**
|
|
7053
|
+
|
|
7054
|
+
- 고객사가 채번하는 주문 고유 번호입니다.
|
|
7055
|
+
- 이미 승인 완료 된 `paymentId`로 결제를 시도하는 경우 에러가 발생합니다.
|
|
7056
|
+
|
|
7057
|
+
- orderName: string
|
|
7058
|
+
|
|
7059
|
+
**주문명**
|
|
7060
|
+
|
|
7061
|
+
주문명으로 고객사에서 자유롭게 입력합니다.
|
|
7062
|
+
|
|
7063
|
+
KICC와 알리페이 플러스에서는 영문만 사용하는 것을 권장합니다.
|
|
7064
|
+
|
|
7065
|
+
- orderDescription: string
|
|
7066
|
+
|
|
7067
|
+
**주문 상세 정보**
|
|
7068
|
+
|
|
7069
|
+
주문 상세 정보로 고객사에서 자유롭게 입력합니다.
|
|
7070
|
+
|
|
7071
|
+
KICC와 알리페이 플러스에서는 영문만 사용하는 것을 권장합니다.
|
|
7072
|
+
|
|
7073
|
+
- channelKey: string
|
|
7074
|
+
|
|
7075
|
+
**채널 키**
|
|
7076
|
+
|
|
7077
|
+
콘솔에서 채널 연동 시 생성된 채널 키입니다.
|
|
7078
|
+
|
|
7079
|
+
- totalAmount: number
|
|
7080
|
+
|
|
7081
|
+
**결제 금액**
|
|
7082
|
+
|
|
7083
|
+
결제 금액(실제 결제 금액 X 10^ 해당 currency의 scale factor, 예: $1.50 -> 150)
|
|
7084
|
+
|
|
7085
|
+
- currency: string
|
|
7086
|
+
|
|
7087
|
+
**결제 통화 코드**
|
|
7088
|
+
|
|
7089
|
+
[ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) 통화 코드
|
|
7090
|
+
|
|
7091
|
+
- `KRW`: 한국 원
|
|
7092
|
+
- `USD`: 미국 달러
|
|
7093
|
+
|
|
7094
|
+
- alipayPlus: object
|
|
7095
|
+
|
|
7096
|
+
**알리페이 플러스 정보**
|
|
7097
|
+
|
|
7098
|
+
- easyPayProvider?: string
|
|
7099
|
+
|
|
7100
|
+
**알리페이 플러스를 통해 이용할 간편결제**
|
|
7101
|
+
|
|
7102
|
+
미입력 시 이용 가능한 간편결제 수단이 모두 노출되는 알리페이 플러스 통합 월렛 화면이 표기됩니다.
|
|
7103
|
+
|
|
7104
|
+
- `ALIPAY`: Alipay (알리페이)
|
|
7105
|
+
- `TRUE_MONEY`: TrueMoney (트루머니)
|
|
7106
|
+
- `ALIPAY_HK`: AlipayHK (알리페이 홍콩)
|
|
7107
|
+
- `TOUCH_N_GO`: Touch 'n Go (터치앤고)
|
|
7108
|
+
- `G_CASH`: GCash (지캐시)
|
|
7109
|
+
- `DANA`: DANA (다나)
|
|
7110
|
+
- `RABBIT_LINE_PAY`: Rabbit LINE Pay (래빗 라인페이)
|
|
7111
|
+
- `BPI`: BPI - Bank of the Philippine Islands (필리핀 제도 은행)
|
|
7112
|
+
- `BOOST`: Boost (부스트)
|
|
7113
|
+
- `BILL_EASE`: BillEase (빌이즈)
|
|
7114
|
+
- `TINABA`: Tinaba (티나바)
|
|
7115
|
+
- `MPAY`: MPay (엠페이)
|
|
7116
|
+
- `KREDIVO`: Kredivo (크레디보)
|
|
7117
|
+
|
|
7118
|
+
- customer?: object
|
|
7119
|
+
|
|
7120
|
+
**고객 정보**
|
|
7121
|
+
|
|
7122
|
+
- fullName?: string
|
|
7123
|
+
|
|
7124
|
+
**구매자 전체 이름**
|
|
7125
|
+
|
|
7126
|
+
`fullName`과 `firstName` / `lastName`이 모두 입력된 경우 `fullName`으로 기록됩니다.
|
|
7127
|
+
|
|
7128
|
+
- firstName?: string
|
|
7129
|
+
|
|
7130
|
+
**구매자 이름**
|
|
7131
|
+
|
|
7132
|
+
`firstName`을 입력하는 경우 `lastName`도 필수로 입력해야 합니다. `fullName`이 없고,
|
|
7133
|
+
`firstName`과 `lastName`이 존재하는 경우 `{firstName} {lastName}`으로 저장됩니다.
|
|
7134
|
+
|
|
7135
|
+
- lastName?: string
|
|
7136
|
+
|
|
7137
|
+
**구매자 성**
|
|
7138
|
+
|
|
7139
|
+
`lastName`을 입력하는 경우 `firstName`도 필수로 입력해야 합니다.
|
|
7140
|
+
|
|
7141
|
+
- phoneNumber?: string
|
|
7142
|
+
|
|
7143
|
+
**구매자 연락처**
|
|
7144
|
+
|
|
7145
|
+
- email?: string
|
|
7146
|
+
|
|
7147
|
+
**구매자 이메일 주소**
|
|
7148
|
+
|
|
7149
|
+
결제 완료 메일이 발송됩니다.
|
|
7150
|
+
|
|
7151
|
+
</div>
|
|
7152
|
+
|
|
7153
|
+
</div>
|
|
7154
|
+
|
|
7155
|
+
## 유의 사항
|
|
7156
|
+
|
|
7157
|
+
<div class="tabs-container">
|
|
7158
|
+
|
|
7159
|
+
<div class="tabs-content" data-title="위챗페이">
|
|
7160
|
+
|
|
7161
|
+
### 결제 승인
|
|
7162
|
+
|
|
7163
|
+
위챗페이의 경우 위챗 앱을 이용해 QR코드를 스캔하여 결제를 진행하는 방식으로 결제창이 닫힌 이후에도 구매자가 QR코드를 이미
|
|
7164
|
+
스캔해둔 상태라면 언제든지 결제 승인이 발생할 수 있습니다.
|
|
7165
|
+
|
|
7166
|
+
따라서 PC에서 callback / Mobile에서 redirect 된 이후 결제내역 조회를 통해 확인된 상태값을 100% 신뢰하지 않도록
|
|
7167
|
+
해야하며 웹훅 연동은 필수로 진행해야합니다.
|
|
7168
|
+
|
|
7169
|
+
### 결제 취소
|
|
7170
|
+
|
|
7171
|
+
위챗페이의 경우 결제 취소가 비동기로 처리됩니다. 결제 취소 요청에 대한 응답으로 주문 상태를 변경하지 않고
|
|
7172
|
+
웹훅을 통해 결제 취소 결과를 반영하도록 처리가 필요합니다.
|
|
7173
|
+
|
|
7174
|
+
### 도메인 등록
|
|
7175
|
+
|
|
7176
|
+
위챗페이는 KICC를 통해 결제창이 오픈될 고객사 결제 페이지 도메인에 대한 등록 요청이 필요합니다.
|
|
7177
|
+
|
|
7178
|
+
등록되어있지 않은 도메인에 대해서는 모바일 결제 시도 시 오류 페이지로 연결되므로 유의 바랍니다.
|
|
7179
|
+
|
|
7180
|
+
</div>
|
|
7181
|
+
|
|
7182
|
+
<div class="tabs-content" data-title="알리페이 플러스">
|
|
7183
|
+
|
|
7184
|
+
### 결제 승인
|
|
7185
|
+
|
|
7186
|
+
알리페이 플러스의 경우 일부 결제 수단은 앱으로 QR코드를 스캔하여 결제를 진행하는 방식으로 결제창이 닫힌 이후에도 구매자가 QR코드를 이미
|
|
7187
|
+
스캔해둔 상태라면 언제든지 결제 승인이 발생할 수 있습니다.
|
|
7188
|
+
|
|
7189
|
+
따라서 PC에서 callback / Mobile에서 redirect 된 이후 결제내역 조회를 통해 확인된 상태값을 100% 신뢰하지 않도록
|
|
7190
|
+
해야하며 웹훅 연동은 필수로 진행해야합니다.
|
|
7191
|
+
|
|
7192
|
+
</div>
|
|
7193
|
+
|
|
7194
|
+
</div>
|
|
7195
|
+
|
|
7196
|
+
|
|
6205
7197
|
# https://developers.portone.io/opi/ko/integration/pg/v2/kpn
|
|
6206
7198
|
|
|
6207
7199
|
---
|
|
@@ -6485,7 +7477,7 @@ function requestPayment() {
|
|
|
6485
7477
|
|
|
6486
7478
|
- 카카오페이: `KAKAOPAY`
|
|
6487
7479
|
- 네이버페이: `NAVERPAY`
|
|
6488
|
-
- 삼성페이: `
|
|
7480
|
+
- 삼성페이: `SAMSUNGPAY`
|
|
6489
7481
|
- 토스페이: `TOSSPAY`
|
|
6490
7482
|
- 페이코: `PAYCO`
|
|
6491
7483
|
|
|
@@ -6572,7 +7564,7 @@ function requestPayment() {
|
|
|
6572
7564
|
|
|
6573
7565
|
한국결제네트웍스(KPN)에서 가상계좌 발급이 가능한 은행은 아래와 같습니다.
|
|
6574
7566
|
|
|
6575
|
-
은행코드는 [BANK ENUM](https://developers.portone.io/api/rest-v2/
|
|
7567
|
+
은행코드는 [BANK ENUM](https://developers.portone.io/api/rest-v2/payment#Bank)으로 정의되어 있으며
|
|
6576
7568
|
아래 목록에 대한 ENUM 코드를 매핑하여 API에 사용하실 수 있습니다.
|
|
6577
7569
|
|
|
6578
7570
|
- 기업은행
|
|
@@ -6830,7 +7822,7 @@ const issueResponse = await axios({
|
|
|
6830
7822
|
**발급 은행**
|
|
6831
7823
|
|
|
6832
7824
|
- 은행코드는 ENUM으로 정의되어 있습니다.
|
|
6833
|
-
- [BANK ENUM 바로가기](https://developers.portone.io/api/rest-v2/
|
|
7825
|
+
- [BANK ENUM 바로가기](https://developers.portone.io/api/rest-v2/payment#Bank)
|
|
6834
7826
|
|
|
6835
7827
|
- expiry: object
|
|
6836
7828
|
|
|
@@ -7622,6 +8614,14 @@ async function schedulePayment() {
|
|
|
7622
8614
|
- `0` : 간편결제 수단 표시 하지 않음
|
|
7623
8615
|
- `1` : 간편결제 수단 표시함
|
|
7624
8616
|
|
|
8617
|
+
- sndKakaopayType?: string
|
|
8618
|
+
|
|
8619
|
+
카카오페이 결제시 허용할 결제수단
|
|
8620
|
+
|
|
8621
|
+
- `CARD`: 카드 결제만 허용
|
|
8622
|
+
- `MONEY`: 카카오머니 결제만 허용
|
|
8623
|
+
- 미입력시 모든 결제수단 허용
|
|
8624
|
+
|
|
7625
8625
|
### 카드 다이렉트 호출
|
|
7626
8626
|
|
|
7627
8627
|
- customer?: object
|
|
@@ -9011,6 +10011,181 @@ targetVersions:
|
|
|
9011
10011
|
- 페이레터의 경우 결제창을 닫은 이후에 결제가 성공 처리될 수 있습니다. 웹훅을 연동하여 결제 실패 상태에서 결제 성공 상태로 바뀌는 경우를 처리해야 합니다.
|
|
9012
10012
|
|
|
9013
10013
|
|
|
10014
|
+
# https://developers.portone.io/opi/ko/integration/pg/v2/paymentwall
|
|
10015
|
+
|
|
10016
|
+
---
|
|
10017
|
+
title: 페이먼트월
|
|
10018
|
+
description: 페이먼트월 결제 연동 방법을 안내합니다.
|
|
10019
|
+
targetVersions:
|
|
10020
|
+
- v2
|
|
10021
|
+
---
|
|
10022
|
+
|
|
10023
|
+
## 채널 설정하기
|
|
10024
|
+
|
|
10025
|
+
- [결제대행사 채널 설정하기](https://developers.portone.io/opi/ko/integration/ready/readme#3-결제대행사-채널-설정하기)의 내용을 참고하여 PG 설정을 진행합니다.
|
|
10026
|
+
|
|
10027
|
+
## 가능한 결제 수단
|
|
10028
|
+
|
|
10029
|
+
페이먼트월의 경우, `payMethod` 파라미터를 지원하고 있지 않아, 국가IP에 맞는 결제수단이 기본으로 노출됩니다.
|
|
10030
|
+
특정 결제수단만 노출하고 싶으신 경우, 아래에 후술될 `bypass.paymentwall.ps` 파라미터를 사용하시면 됩니다.
|
|
10031
|
+
|
|
10032
|
+
- 페이먼트월 결제수단 코드는 포트원 코드와 상이하므로, [PAYMENTWALL Docs](https://docs.paymentwall.com/reference/payment-system-shortcodes)에서 `Payment System short code`를 확인 후 입력해야 합니다.
|
|
10033
|
+
|
|
10034
|
+
## SDK 결제 요청하기
|
|
10035
|
+
|
|
10036
|
+
결제 요청 시에는 `requestPayment` 함수를 호출해야 합니다.
|
|
10037
|
+
`channelKey` 파라미터에 결제 채널 연동 후 생성된 채널 키값을 지정하여 페이먼트월 채널 사용을 명시해주세요.
|
|
10038
|
+
|
|
10039
|
+
페이먼트월 기준으로 작성한 예시 코드는 아래와 같습니다.
|
|
10040
|
+
|
|
10041
|
+
<div class="tabs-container">
|
|
10042
|
+
|
|
10043
|
+
<div class="tabs-content" data-title="SDK 결제 요청">
|
|
10044
|
+
|
|
10045
|
+
```javascript
|
|
10046
|
+
import * as PortOne from "@portone/browser-sdk/v2";
|
|
10047
|
+
function requestPayment() {
|
|
10048
|
+
PortOne.requestPayment({
|
|
10049
|
+
storeId: "store-4ff4af41-85e3-4559-8eb8-0d08a2c6ceec", // 고객사 storeId로 변경해주세요.
|
|
10050
|
+
channelKey: "channel-key-9987cb87-6458-4888-b94e-68d9a2da896d", // 콘솔 결제 연동 화면에서 채널 연동 시 생성된 채널 키를 입력해주세요.
|
|
10051
|
+
paymentId: `payment${crypto.randomUUID()}`,
|
|
10052
|
+
orderName: "PortOne Purchase",
|
|
10053
|
+
totalAmount: 1000,
|
|
10054
|
+
currency: "KRW",
|
|
10055
|
+
customer: {
|
|
10056
|
+
customerId: "customer-1234", // 고객사가 구매자에게 부여한 고유 ID
|
|
10057
|
+
email: "test@portone.io",
|
|
10058
|
+
},
|
|
10059
|
+
});
|
|
10060
|
+
}
|
|
10061
|
+
```
|
|
10062
|
+
|
|
10063
|
+
</div>
|
|
10064
|
+
|
|
10065
|
+
</div>
|
|
10066
|
+
|
|
10067
|
+
### 주요 파라미터
|
|
10068
|
+
|
|
10069
|
+
- storeId: string
|
|
10070
|
+
|
|
10071
|
+
**상점 아이디**
|
|
10072
|
+
|
|
10073
|
+
포트원 계정에 생성된 상점을 식별하는 고유한 값으로 관리자 콘솔에서 확인할 수 있습니다.
|
|
10074
|
+
|
|
10075
|
+
- paymentId: string
|
|
10076
|
+
|
|
10077
|
+
**고객사 주문 고유 번호**
|
|
10078
|
+
|
|
10079
|
+
고객사에서 채번하는 주문 고유 번호로 매번 고유하게 채번되어야 합니다.
|
|
10080
|
+
|
|
10081
|
+
- orderName: string
|
|
10082
|
+
|
|
10083
|
+
**주문명**
|
|
10084
|
+
|
|
10085
|
+
주문명으로 고객사에서 자유롭게 입력합니다.
|
|
10086
|
+
|
|
10087
|
+
- channelKey: string
|
|
10088
|
+
|
|
10089
|
+
**채널 키**
|
|
10090
|
+
|
|
10091
|
+
포트원 콘솔 내 \[연동 관리] > \[연동 정보] > \[채널 관리] 화면에서 채널 추가 시 생성되는 값입니다. 결제 호출 시 채널을 지정할 때 사용됩니다.
|
|
10092
|
+
|
|
10093
|
+
- totalAmount: number
|
|
10094
|
+
|
|
10095
|
+
**결제 금액**
|
|
10096
|
+
|
|
10097
|
+
결제 금액(실제 결제 금액 X 10^ 해당 currency의 scale factor, 예: $1.50 -> 150)
|
|
10098
|
+
|
|
10099
|
+
- currency: string
|
|
10100
|
+
|
|
10101
|
+
**결제 통화 코드**
|
|
10102
|
+
|
|
10103
|
+
- ISO 4217 통화 코드
|
|
10104
|
+
- [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)
|
|
10105
|
+
|
|
10106
|
+
- locale?: Locale
|
|
10107
|
+
|
|
10108
|
+
**결제창 언어**
|
|
10109
|
+
|
|
10110
|
+
- `KO_KR`: 한국어
|
|
10111
|
+
- `EN_US`: 영어
|
|
10112
|
+
- `JA_JP`: 일본어
|
|
10113
|
+
- `ZH_CN`: 중국어 (중국 본토)
|
|
10114
|
+
- `ZH_TW`: 중국어 (대만)
|
|
10115
|
+
- `TH_TH`: 타이어
|
|
10116
|
+
- `RU_RU`: 러시아어
|
|
10117
|
+
- `VI_VN`: 베트남어
|
|
10118
|
+
- `FR_FR`: 프랑스어
|
|
10119
|
+
- `NL_NL`: 네덜란드어
|
|
10120
|
+
- `ES_ES`: 에스파냐어
|
|
10121
|
+
- `PT_PT`: 포르투갈어
|
|
10122
|
+
- `DE_DE`: 독일어
|
|
10123
|
+
- `IT_IT`: 이탈리아어
|
|
10124
|
+
- `PL_PL`: 폴란드어
|
|
10125
|
+
- `TR_TR`: 터키어
|
|
10126
|
+
- `SV_SE`: 스웨덴어
|
|
10127
|
+
- `FI_FI`: 핀란드어
|
|
10128
|
+
- `UK_UA`: 우크라이나어
|
|
10129
|
+
- `EL_GR`: 그리스어
|
|
10130
|
+
- `TL_PH`: 타갈로그어
|
|
10131
|
+
- `HI_IN`: 힌디어
|
|
10132
|
+
- `HR_HR`: 크로아티아어
|
|
10133
|
+
- `LT_LT`: 리투아니아어
|
|
10134
|
+
- `SL_SI`: 슬로베니아어
|
|
10135
|
+
- `SR_RS`: 세르비아어
|
|
10136
|
+
- `BG_BG`: 불가리아어
|
|
10137
|
+
- `PT_BR`: 포르투갈어 (브라질)
|
|
10138
|
+
|
|
10139
|
+
- customer: object
|
|
10140
|
+
|
|
10141
|
+
**고객 정보**
|
|
10142
|
+
|
|
10143
|
+
페이먼트월의 경우 구매자 고유 ID와 이메일은 필수 입력 항목입니다.
|
|
10144
|
+
|
|
10145
|
+
- customerId: string
|
|
10146
|
+
|
|
10147
|
+
**구매자 고유 ID**
|
|
10148
|
+
|
|
10149
|
+
고객사가 구매자를 특정하기 위해 채번한 고유 번호입니다.
|
|
10150
|
+
|
|
10151
|
+
- email: string
|
|
10152
|
+
|
|
10153
|
+
**구매자 이메일**
|
|
10154
|
+
|
|
10155
|
+
- bypass?: oneof object
|
|
10156
|
+
|
|
10157
|
+
**PG사 결제창 호출 시 PG사로 그대로 bypass할 파라미터들의 모음**
|
|
10158
|
+
|
|
10159
|
+
- paymentwall?: object
|
|
10160
|
+
|
|
10161
|
+
**페이먼트월 특수 파라미터**
|
|
10162
|
+
|
|
10163
|
+
- widget?: string
|
|
10164
|
+
|
|
10165
|
+
**위젯 코드**
|
|
10166
|
+
|
|
10167
|
+
`pw_1`과 `t3_1`만 입력 가능하며, 미설정시 기본(`pw_1`) 결제창이 활성화됩니다.
|
|
10168
|
+
|
|
10169
|
+
- ps?: string
|
|
10170
|
+
|
|
10171
|
+
**결제수단 단독 노출**
|
|
10172
|
+
|
|
10173
|
+
페이먼트월 결제수단 코드는 포트원 코드와 상이하므로, [PAYMENTWALL Docs](https://docs.paymentwall.com/reference/payment-system-shortcodes)에서 `Payment System short code`를 확인 후 입력해야 합니다.
|
|
10174
|
+
|
|
10175
|
+
- country\_code?: string
|
|
10176
|
+
|
|
10177
|
+
**국가 코드**
|
|
10178
|
+
|
|
10179
|
+
지정된 국가에서 지원되는 결제수단이 결제창에 노출됩니다. [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)를 참고하여 해당하는 국가코드를 입력해야 합니다.
|
|
10180
|
+
|
|
10181
|
+
## 유의사항
|
|
10182
|
+
|
|
10183
|
+
- 페이먼트월 프로젝트는 반드시 페이먼트월에서 제공하는 포트원 전용 링크를 통해 생성해야 합니다. 정상적으로 생성된 프로젝트는 프로젝트명 뒤에 `[import]`가 표시됩니다.
|
|
10184
|
+
- 페이먼트월을 통해 결제하는 경우 [페이먼트월 배송 정보 등록 API](https://developers.portone.io/api/rest-v2/pgSpecific#post%20%2Fpaymentwall%2Fdelivery%2Fconfirm)를 반드시 연동해야 합니다. 등록된 배송 정보는 차지백 발생 시 상품 배송 완료를 증빙하는 자료로 활용됩니다.
|
|
10185
|
+
- 요청 통화와 승인 통화(프로세싱 통화)가 다른 경우 부분 취소는 지원되지 않으며, 전체 취소만 가능합니다.
|
|
10186
|
+
- 국내 가상계좌 결제는 지원되지 않습니다.
|
|
10187
|
+
|
|
10188
|
+
|
|
9014
10189
|
# https://developers.portone.io/opi/ko/integration/pg/v2/paypal-v2
|
|
9015
10190
|
|
|
9016
10191
|
---
|
|
@@ -11060,6 +12235,22 @@ versionVariants:
|
|
|
11060
12235
|
- 해외결제 일반결제 : 카드 / 유니온페이 / 알리페이 / 위챗페이
|
|
11061
12236
|
- 해외결제 정기결제 : 카드 / 유니온페이
|
|
11062
12237
|
|
|
12238
|
+
- **이지페이(KICC)**
|
|
12239
|
+
|
|
12240
|
+
- 연동 기능 : 인증결제(결제창)
|
|
12241
|
+
|
|
12242
|
+
- 결제 수단
|
|
12243
|
+
|
|
12244
|
+
- 해외결제 일반결제 : 위챗페이 / 알리페이 플러스
|
|
12245
|
+
|
|
12246
|
+
- **페이먼트월**
|
|
12247
|
+
|
|
12248
|
+
- 연동 기능 : 인증결제(결제창)
|
|
12249
|
+
|
|
12250
|
+
- 결제 수단
|
|
12251
|
+
|
|
12252
|
+
- 해외결제 일반결제
|
|
12253
|
+
|
|
11063
12254
|
### 본인인증
|
|
11064
12255
|
|
|
11065
12256
|
- **다날 본인인증**
|
|
@@ -11748,7 +12939,7 @@ const issueResponse = await axios({
|
|
|
11748
12939
|
**발급 은행**
|
|
11749
12940
|
|
|
11750
12941
|
- 은행코드는 ENUM으로 정의되어 있습니다.
|
|
11751
|
-
- [BANK ENUM 바로가기](https://developers.portone.io/api/rest-v2/
|
|
12942
|
+
- [BANK ENUM 바로가기](https://developers.portone.io/api/rest-v2/payment#Bank)
|
|
11752
12943
|
|
|
11753
12944
|
- expiry: object
|
|
11754
12945
|
|
|
@@ -13119,6 +14310,351 @@ async function schedulePayment() {
|
|
|
13119
14310
|
발생하는 이슈로 포트원과 무관합니다.
|
|
13120
14311
|
|
|
13121
14312
|
|
|
14313
|
+
# https://developers.portone.io/opi/ko/integration/pg/v2/triple-a
|
|
14314
|
+
|
|
14315
|
+
---
|
|
14316
|
+
title: Triple-A
|
|
14317
|
+
description: Triple-A 결제 연동 방법을 안내합니다.
|
|
14318
|
+
targetVersions:
|
|
14319
|
+
- v2
|
|
14320
|
+
---
|
|
14321
|
+
|
|
14322
|
+
## 채널 설정하기
|
|
14323
|
+
|
|
14324
|
+
- [결제대행사 채널 설정하기](https://developers.portone.io/opi/ko/integration/ready/readme#3-결제대행사-채널-설정하기) 페이지의 내용을 참고하여 채널 설정을 진행합니다.
|
|
14325
|
+
|
|
14326
|
+
## SDK 결제 요청하기
|
|
14327
|
+
|
|
14328
|
+
결제 요청 시에는 `requestPayment` 함수를 호출해야 합니다. `channelKey` 파라미터에 결제 채널 연동 후 생성된 채널 키를 지정하여 Triple-A 채널 사용을 명시해주세요.
|
|
14329
|
+
|
|
14330
|
+
<div class="tabs-container">
|
|
14331
|
+
|
|
14332
|
+
<div class="tabs-content" data-title="SDK 결제 요청">
|
|
14333
|
+
|
|
14334
|
+
```javascript
|
|
14335
|
+
import * as PortOne from "@portone/browser-sdk/v2";
|
|
14336
|
+
PortOne.requestPayment({
|
|
14337
|
+
storeId: "store-4ff4af41-85e3-4559-8eb8-0d08a2c6ceec", // 고객사 storeId로 변경해주세요.
|
|
14338
|
+
channelKey: "channel-key-9987cb87-6458-4888-b94e-68d9a2da896d", // 콘솔 결제 연동 화면에서 채널 연동 시 생성된 채널 키를 입력해주세요.
|
|
14339
|
+
paymentId: `payment${crypto.randomUUID()}`,
|
|
14340
|
+
orderName: "PortOne Purchase",
|
|
14341
|
+
totalAmount: 100, // 1 USD
|
|
14342
|
+
currency: "USD",
|
|
14343
|
+
customer: {
|
|
14344
|
+
fullName: "PortOne",
|
|
14345
|
+
email: "test@example.com",
|
|
14346
|
+
},
|
|
14347
|
+
});
|
|
14348
|
+
```
|
|
14349
|
+
|
|
14350
|
+
</div>
|
|
14351
|
+
|
|
14352
|
+
</div>
|
|
14353
|
+
|
|
14354
|
+
### 사용 가능 파라미터
|
|
14355
|
+
|
|
14356
|
+
- storeId: string
|
|
14357
|
+
|
|
14358
|
+
**상점 아이디**
|
|
14359
|
+
|
|
14360
|
+
- paymentId: string
|
|
14361
|
+
|
|
14362
|
+
**고객사 주문 고유 번호**
|
|
14363
|
+
|
|
14364
|
+
- 고객사가 채번하는 주문 고유 번호입니다.
|
|
14365
|
+
- 이미 승인된 `paymentId`로 결제를 시도하는 경우 에러가 발생합니다.
|
|
14366
|
+
|
|
14367
|
+
- orderName: string
|
|
14368
|
+
|
|
14369
|
+
**주문명**
|
|
14370
|
+
|
|
14371
|
+
Triple-A로 전달되지 않으며 포트원 결제 내역 확인 시에만 사용됩니다.
|
|
14372
|
+
|
|
14373
|
+
- channelKey: string
|
|
14374
|
+
|
|
14375
|
+
**채널 키**
|
|
14376
|
+
|
|
14377
|
+
Triple-A 채널의 채널키를 입력합니다.
|
|
14378
|
+
|
|
14379
|
+
- totalAmount: number
|
|
14380
|
+
|
|
14381
|
+
**결제 금액**
|
|
14382
|
+
|
|
14383
|
+
결제 금액을 정수로 나타냅니다.
|
|
14384
|
+
|
|
14385
|
+
해외 통화의 경우 통화의 최소 단위(minor unit)를 기준으로 합니다. 예를 들어, USD의 최소 단위는 센트(0.01 USD)이므로, 6 USD의 경우 100배하여 600으로 입력합니다.
|
|
14386
|
+
|
|
14387
|
+
최소 단위는 [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html)에 표준화된 것을 기준으로 합니다.
|
|
14388
|
+
|
|
14389
|
+
- KRW: 1배
|
|
14390
|
+
- USD: 100배
|
|
14391
|
+
- JPY: 1배
|
|
14392
|
+
|
|
14393
|
+
- currency: string
|
|
14394
|
+
|
|
14395
|
+
**결제 통화 코드**
|
|
14396
|
+
|
|
14397
|
+
- ISO 4217 통화 코드
|
|
14398
|
+
- [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)
|
|
14399
|
+
|
|
14400
|
+
- locale?: Locale
|
|
14401
|
+
|
|
14402
|
+
**결제창 언어**
|
|
14403
|
+
|
|
14404
|
+
- `EN_US`: 영어
|
|
14405
|
+
- `ZH_CN`: 중국어 (중국 본토)
|
|
14406
|
+
- `JA_JP`: 일본어
|
|
14407
|
+
- `RU_RU`: 러시아어
|
|
14408
|
+
- `VI_VN`: 베트남어
|
|
14409
|
+
- `ID_ID`: 인도네시아어
|
|
14410
|
+
- `FR_FR`: 프랑스어
|
|
14411
|
+
- `NL_NL`: 네덜란드어
|
|
14412
|
+
- `ES_ES`: 스페인어
|
|
14413
|
+
- `PT_PT`: 포르투갈어
|
|
14414
|
+
- `DE_DE`: 독일어
|
|
14415
|
+
- `IT_IT`: 이탈리아어
|
|
14416
|
+
- `PL_PL`: 폴란드어
|
|
14417
|
+
- `AR_001`: 현대 표준 아랍어
|
|
14418
|
+
|
|
14419
|
+
- customer?: object
|
|
14420
|
+
|
|
14421
|
+
**고객 정보**
|
|
14422
|
+
|
|
14423
|
+
- customerId?: string
|
|
14424
|
+
|
|
14425
|
+
**구매자 ID**
|
|
14426
|
+
|
|
14427
|
+
구매자를 식별하는 고유한 값으로, 값이 없으면 포트원에서 자동으로 생성합니다.
|
|
14428
|
+
|
|
14429
|
+
- fullName?: string
|
|
14430
|
+
|
|
14431
|
+
**구매자 전체 이름**
|
|
14432
|
+
|
|
14433
|
+
`fullName`이 없고 `firstName`과 `lastName`이 있는 경우 `${lastName} ${firstName}`이 대신 사용됩니다.
|
|
14434
|
+
|
|
14435
|
+
- firstName?: string
|
|
14436
|
+
|
|
14437
|
+
**구매자 이름**
|
|
14438
|
+
|
|
14439
|
+
`firstName`을 입력하는 경우 `lastName`도 필수로 입력해야 합니다. `fullName`이 없고,
|
|
14440
|
+
`firstName`과 `lastName`이 존재하는 경우 `{firstName} {lastName}`으로 저장됩니다.
|
|
14441
|
+
|
|
14442
|
+
- lastName?: string
|
|
14443
|
+
|
|
14444
|
+
**구매자 성**
|
|
14445
|
+
|
|
14446
|
+
`lastName`을 입력하는 경우 `firstName`도 필수로 입력해야 합니다.
|
|
14447
|
+
|
|
14448
|
+
- phoneNumber?: string
|
|
14449
|
+
|
|
14450
|
+
**구매자 휴대전화 번호**
|
|
14451
|
+
|
|
14452
|
+
`+6591234567`과 같이 `+(국가코드)`로 시작하는 [E.164](https://www.itu.int/rec/T-REC-E.164/) 형식의 전화번호를 입력합니다.
|
|
14453
|
+
|
|
14454
|
+
- email?: string
|
|
14455
|
+
|
|
14456
|
+
**구매자 이메일 주소**
|
|
14457
|
+
|
|
14458
|
+
- products?: object\[]
|
|
14459
|
+
|
|
14460
|
+
**구매 상품 정보**
|
|
14461
|
+
|
|
14462
|
+
입력 시 결제창에 상품 정보가 표시됩니다.
|
|
14463
|
+
|
|
14464
|
+
- id: string
|
|
14465
|
+
|
|
14466
|
+
**상품 ID**
|
|
14467
|
+
|
|
14468
|
+
- name: string
|
|
14469
|
+
|
|
14470
|
+
**상품명**
|
|
14471
|
+
|
|
14472
|
+
- amount: number
|
|
14473
|
+
|
|
14474
|
+
**상품 단위 가격**
|
|
14475
|
+
|
|
14476
|
+
상품의 단위당 가격을 정수로 나타냅니다.
|
|
14477
|
+
|
|
14478
|
+
해외 통화의 경우 통화의 최소 단위(minor unit)를 기준으로 합니다. 예를 들어, USD의 최소 단위는 센트(0.01 USD)이므로, 6 USD의 경우 100배하여 600으로 입력합니다.
|
|
14479
|
+
|
|
14480
|
+
최소 단위는 [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html)에 표준화된 것을 기준으로 합니다.
|
|
14481
|
+
|
|
14482
|
+
- KRW: 1배
|
|
14483
|
+
- USD: 100배
|
|
14484
|
+
- JPY: 1배
|
|
14485
|
+
|
|
14486
|
+
- quantity: number
|
|
14487
|
+
|
|
14488
|
+
**상품 수량**
|
|
14489
|
+
|
|
14490
|
+
- bypass?: oneof object
|
|
14491
|
+
|
|
14492
|
+
- triple\_a?: object
|
|
14493
|
+
|
|
14494
|
+
**Triple-A 특수 파라미터**
|
|
14495
|
+
|
|
14496
|
+
- payer\_poi?: string
|
|
14497
|
+
|
|
14498
|
+
**결제자 신원 증명 정보**
|
|
14499
|
+
|
|
14500
|
+
신분증, 여권 등 결제자의 신원을 증명할 수 있는 자료의 URL을 입력합니다.
|
|
14501
|
+
|
|
14502
|
+
SGD 1500 이상의 결제 등 결제자 신원 조회가 필요한 경우에, `payer_poi`를 입력하면 별도의 신원 요청 과정을 거치지 않고 결제가 진행됩니다.
|
|
14503
|
+
|
|
14504
|
+
- shipping\_cost?: number
|
|
14505
|
+
|
|
14506
|
+
**배송비**
|
|
14507
|
+
|
|
14508
|
+
결제창에 표시할 배송비를 정수로 나타냅니다.
|
|
14509
|
+
`products`가 지정된 경우에만 사용할 수 있습니다.
|
|
14510
|
+
|
|
14511
|
+
해외 통화의 경우 통화의 최소 단위(minor unit)를 기준으로 합니다. 예를 들어, USD의 최소 단위는 센트(0.01 USD)이므로, 6 USD의 경우 100배하여 600으로 입력합니다.
|
|
14512
|
+
|
|
14513
|
+
최소 단위는 [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html)에 표준화된 것을 기준으로 합니다.
|
|
14514
|
+
|
|
14515
|
+
- KRW: 1배
|
|
14516
|
+
- USD: 100배
|
|
14517
|
+
- JPY: 1배
|
|
14518
|
+
|
|
14519
|
+
- shipping\_discount?: number
|
|
14520
|
+
|
|
14521
|
+
**배송비 할인 금액**
|
|
14522
|
+
|
|
14523
|
+
결제창에 표시할 배송비 할인 금액을 정수로 나타냅니다.
|
|
14524
|
+
`products`가 지정된 경우에만 사용할 수 있습니다.
|
|
14525
|
+
|
|
14526
|
+
- tax\_cost?: number
|
|
14527
|
+
|
|
14528
|
+
**세금**
|
|
14529
|
+
|
|
14530
|
+
결제창에 표시할 세금을 정수로 나타냅니다.
|
|
14531
|
+
`products`가 지정된 경우에만 사용할 수 있습니다.
|
|
14532
|
+
|
|
14533
|
+
## API 결제 취소 요청하기
|
|
14534
|
+
|
|
14535
|
+
암호화폐 결제의 경우 결제 취소를 위해서는 환불받을 지갑 주소를 입력받아야 합니다.
|
|
14536
|
+
|
|
14537
|
+
API로 취소 요청 시, 구매자의 이메일 주소를 전달하면 해당 메일을 통해 지갑 주소 입력 및 환불 절차가 진행됩니다.
|
|
14538
|
+
|
|
14539
|
+
결제 취소 요청을 구매자가 확인하고 지갑 주소를 입력하는 시점에 환불 금액이 확정됩니다.
|
|
14540
|
+
환불 금액은 결제 요청 금액을 환불 시점에 암호화폐로 환산한 금액입니다.
|
|
14541
|
+
환불 금액이 확정된 이후 입력한 지갑 주소로 환불이 진행됩니다.
|
|
14542
|
+
|
|
14543
|
+
<div class="tabs-container">
|
|
14544
|
+
|
|
14545
|
+
<div class="tabs-content" data-title="API 결제 취소">
|
|
14546
|
+
|
|
14547
|
+
```ts
|
|
14548
|
+
const response = await fetch(
|
|
14549
|
+
`https://api.portone.io/payments/${paymentId}/cancel`,
|
|
14550
|
+
{
|
|
14551
|
+
method: "POST",
|
|
14552
|
+
headers: {
|
|
14553
|
+
Authorization: `PortOne ${PORTONE_API_SECRET}`,
|
|
14554
|
+
"Content-Type": "application/json",
|
|
14555
|
+
},
|
|
14556
|
+
body: JSON.stringify({
|
|
14557
|
+
reason: "단순 변심 전체 취소",
|
|
14558
|
+
refundEmail: "buyer@example.com",
|
|
14559
|
+
}),
|
|
14560
|
+
},
|
|
14561
|
+
);
|
|
14562
|
+
|
|
14563
|
+
const {
|
|
14564
|
+
cancellation: { id },
|
|
14565
|
+
} = await response.json(); // id: 취소 요청 아이디
|
|
14566
|
+
```
|
|
14567
|
+
|
|
14568
|
+
</div>
|
|
14569
|
+
|
|
14570
|
+
</div>
|
|
14571
|
+
|
|
14572
|
+
### 사용 가능 파라미터
|
|
14573
|
+
|
|
14574
|
+
- paymentId: string
|
|
14575
|
+
|
|
14576
|
+
**고객사 주문 고유 번호**
|
|
14577
|
+
|
|
14578
|
+
- 결제 요청 시에 사용한 `paymentId`를 입력합니다.
|
|
14579
|
+
|
|
14580
|
+
- storeId?: string
|
|
14581
|
+
|
|
14582
|
+
**상점 아이디**
|
|
14583
|
+
|
|
14584
|
+
하위 상점의 결제를 취소할 경우 필수로 입력합니다.
|
|
14585
|
+
|
|
14586
|
+
- amount?: number
|
|
14587
|
+
|
|
14588
|
+
취소 총 금액
|
|
14589
|
+
|
|
14590
|
+
값을 입력하지 않으면 전액 취소됩니다.
|
|
14591
|
+
|
|
14592
|
+
- currentCancellableAmount?: number
|
|
14593
|
+
|
|
14594
|
+
**결제 건의 취소 가능 잔액**
|
|
14595
|
+
|
|
14596
|
+
본 취소 요청 이전의 취소 가능 잔액으로써, 값을 입력하면 잔액이 일치하는 경우에만 취소가 진행됩니다.
|
|
14597
|
+
값을 입력하지 않으면 별도의 검증 처리를 수행하지 않습니다.
|
|
14598
|
+
|
|
14599
|
+
- refundEmail: string
|
|
14600
|
+
|
|
14601
|
+
**환불 이메일**
|
|
14602
|
+
|
|
14603
|
+
Triple-A 결제 환불에 필요합니다. 해당 이메일로 환불 안내가 발송됩니다.
|
|
14604
|
+
|
|
14605
|
+
- reason: string
|
|
14606
|
+
|
|
14607
|
+
**취소 사유**
|
|
14608
|
+
|
|
14609
|
+
- skipWebhook?: boolean
|
|
14610
|
+
|
|
14611
|
+
**웹훅 생략 여부**
|
|
14612
|
+
|
|
14613
|
+
취소가 성공했을 때 웹훅을 전송하지 않으려면 `true`로 설정합니다.
|
|
14614
|
+
|
|
14615
|
+
## API 결제 취소 요청 취소
|
|
14616
|
+
|
|
14617
|
+
결제 취소를 요청했을 때, 구매자가 아직 지갑 주소를 입력하지 않았다면 취소 요청을 취소할 수 있습니다.
|
|
14618
|
+
|
|
14619
|
+
결제 취소 요청 결과로 획득한 `cancellation.id` 값을 사용하여 요청합니다.
|
|
14620
|
+
|
|
14621
|
+
<div class="tabs-container">
|
|
14622
|
+
|
|
14623
|
+
<div class="tabs-content" data-title="API 결제 취소 요청 취소">
|
|
14624
|
+
|
|
14625
|
+
```ts
|
|
14626
|
+
const response = await fetch(
|
|
14627
|
+
`https://api.portone.io/payments/${paymentId}/cancellations/${cancellationId}/stop`,
|
|
14628
|
+
{
|
|
14629
|
+
method: "POST",
|
|
14630
|
+
headers: { Authorization: `PortOne ${PORTONE_API_SECRET}` },
|
|
14631
|
+
},
|
|
14632
|
+
);
|
|
14633
|
+
```
|
|
14634
|
+
|
|
14635
|
+
</div>
|
|
14636
|
+
|
|
14637
|
+
</div>
|
|
14638
|
+
|
|
14639
|
+
### 사용 가능 파라미터
|
|
14640
|
+
|
|
14641
|
+
- paymentId: string
|
|
14642
|
+
|
|
14643
|
+
**고객사 주문 고유 번호**
|
|
14644
|
+
|
|
14645
|
+
- 결제 요청 시에 사용한 `paymentId`를 입력합니다.
|
|
14646
|
+
|
|
14647
|
+
- cancellationId: string
|
|
14648
|
+
|
|
14649
|
+
**취소 요청 아이디**
|
|
14650
|
+
|
|
14651
|
+
- storeId?: string
|
|
14652
|
+
|
|
14653
|
+
**상점 아이디**
|
|
14654
|
+
|
|
14655
|
+
하위 상점의 취소 요청인 경우 필수로 입력합니다.
|
|
14656
|
+
|
|
14657
|
+
|
|
13122
14658
|
# https://developers.portone.io/opi/ko/integration/pg/v2/welcome
|
|
13123
14659
|
|
|
13124
14660
|
---
|
|
@@ -14065,7 +15601,7 @@ const issueResponse = await axios({
|
|
|
14065
15601
|
**발급 은행**
|
|
14066
15602
|
|
|
14067
15603
|
- 은행코드는 ENUM으로 정의되어 있습니다.
|
|
14068
|
-
- [BANK ENUM 바로가기](https://developers.portone.io/api/rest-v2/
|
|
15604
|
+
- [BANK ENUM 바로가기](https://developers.portone.io/api/rest-v2/payment#Bank)
|
|
14069
15605
|
|
|
14070
15606
|
- expiry: object
|
|
14071
15607
|
|
|
@@ -14954,7 +16490,64 @@ const response = await PortOne.requestPayment({
|
|
|
14954
16490
|
|
|
14955
16491
|
## 3. 결제 완료 처리 (브라우저)
|
|
14956
16492
|
|
|
14957
|
-
|
|
16493
|
+
결제창에서의 작업이 끝나면 완료/실패 여부를 포함한 결과가 전달됩니다. (가상계좌 결제의 경우 완료는 가상계좌 발급 완료를 의미합니다.)
|
|
16494
|
+
|
|
16495
|
+
결과는 리다이렉트 방식 또는 반환값 방식 중 하나로 확인할 수 있습니다.
|
|
16496
|
+
|
|
16497
|
+
- `redirectUrl`이 설정되어 있고 `forceRedirect: true`인 경우 (리다이렉트 방식)
|
|
16498
|
+
- 완료/실패시 `redirectUrl`로 리다이렉트되고, 쿼리 문자열로 결과를 확인합니다.
|
|
16499
|
+
- 하나의 흐름으로 PC와 모바일 결제를 모두 지원할 수 있는 가장 간단한 방식입니다.
|
|
16500
|
+
|
|
16501
|
+
- `redirectUrl`이 설정되지 않은 경우 (반환값 방식)
|
|
16502
|
+
- 완료/실패시 함수의 반환값인 Promise가 리졸브되고, await하여 결과를 확인합니다.
|
|
16503
|
+
- **모바일 결제 UI가 제대로 표시되지 않을 수 있습니다.** PC 결제 UI로 충분할 때에만 사용하십시오.
|
|
16504
|
+
- KG이니시스 일본 결제 등 몇몇 결제 수단의 경우 PC에서도 리다이렉트가 강제되어 이 흐름을 사용할 수 없습니다.
|
|
16505
|
+
|
|
16506
|
+
- `redirectUrl`이 설정되어 있고 `forceRedirect: true`가 아닌 경우 (리다이렉트 또는 반환값 방식)
|
|
16507
|
+
- 환경에 따라 리다이렉트가 일어나는지 반환값이 리졸브되는지가 자동으로 결정됩니다. 코드는 두 흐름 모두 지원해야 합니다.
|
|
16508
|
+
- PC 환경에서는 반환값으로, 모바일 환경에서는 리다이렉트로 결과를 확인하여 최적화된 경험을 제공하고 싶을 때 사용하십시오.
|
|
16509
|
+
|
|
16510
|
+
리다이렉트 방식과 반환값 방식에 대한 자세한 설명은 아래를 참고하세요.
|
|
16511
|
+
|
|
16512
|
+
### 3-1. 리다이렉트 방식의 경우
|
|
16513
|
+
|
|
16514
|
+
결제창에서의 작업이 끝나면 지정한 `redirectUrl`로 리다이렉트됩니다. 이 경우에는 함수 호출 결과를 이용할 수 없고,
|
|
16515
|
+
결제 성공 여부 등은 [쿼리 문자열](http://en.wikipedia.org/wiki/Query_string)로 전달받게 됩니다.
|
|
16516
|
+
|
|
16517
|
+
리다이렉트 방식 결제 지원을 위해, 모바일 환경을 지원해야 하는 경우 **`redirectUrl`을 꼭 지정하여** 호출하여야 합니다.
|
|
16518
|
+
지정하지 않은 경우 모바일 결제 UI가 표시되지 않을 수 있습니다.
|
|
16519
|
+
|
|
16520
|
+
<div class="hint" data-style="warning">
|
|
16521
|
+
|
|
16522
|
+
`redirectUrl`은 `https://` 또는 `http://`로 시작해야 합니다.
|
|
16523
|
+
|
|
16524
|
+
</div>
|
|
16525
|
+
|
|
16526
|
+
```ts
|
|
16527
|
+
PortOne.requestPayment({
|
|
16528
|
+
/* 파라미터 생략 */
|
|
16529
|
+
redirectUrl: `${BASE_URL}/payment-redirect`,
|
|
16530
|
+
forceRedirect: true, // 리다이렉트 방식만 사용하기 위한 설정
|
|
16531
|
+
});
|
|
16532
|
+
```
|
|
16533
|
+
|
|
16534
|
+
쿼리 문자열로 전달되는 주요 필드는 다음과 같습니다.
|
|
16535
|
+
전체 필드 목록은 [requestPayment 응답 형식](https://developers.portone.io/sdk/ko/v2-sdk/payment-response)을 참조해 주시기 바랍니다.
|
|
16536
|
+
|
|
16537
|
+
|키 |설명 |비고 |
|
|
16538
|
+
|---------|-------------------|----------------------------|
|
|
16539
|
+
|paymentId|결제 건 ID |공통 |
|
|
16540
|
+
|code |오류 코드 |실패 시 |
|
|
16541
|
+
|message |오류 문구 |실패 시 |
|
|
16542
|
+
|pgCode |PG 오류 코드 그대로|실패 및 PG 오류 코드 존재 시|
|
|
16543
|
+
|pgMessage|PG 오류 문구 그대로|실패 및 PG 오류 문구 존재 시|
|
|
16544
|
+
|
|
16545
|
+
예를 들어 paymentId가 `payment-39ecfa97`, redirectUrl이 `https://example.com/payment-redirect`인 경우,
|
|
16546
|
+
결제 성공 시에 `https://example.com/payment-redirect?paymentId=payment-39ecfa97`로 리다이렉트됩니다.
|
|
16547
|
+
|
|
16548
|
+
### 3-2. 반환값 방식의 경우
|
|
16549
|
+
|
|
16550
|
+
`PortOne.requestPayment()` 함수의 반환값인 프로미스를 통해 결제 요청의 결과를 확인합니다.
|
|
14958
16551
|
|
|
14959
16552
|
`code`가 있으면 결제 과정에서 오류가 발생한 것이므로 적절히 처리하여야 합니다.
|
|
14960
16553
|
|
|
@@ -14995,36 +16588,9 @@ async function requestPayment() {
|
|
|
14995
16588
|
|pgCode |PG 오류 코드 그대로|실패 및 PG 오류 코드 존재 시|
|
|
14996
16589
|
|pgMessage|PG 오류 문구 그대로|실패 및 PG 오류 문구 존재 시|
|
|
14997
16590
|
|
|
14998
|
-
### 3-1. redirect 방식의 경우
|
|
14999
|
-
|
|
15000
|
-
모바일 환경에서의 결제는 대부분 redirect 방식으로 이루어집니다. redirect 방식에서는 브라우저가 결제창으로 리다이렉트되었다가, 결제창에서의 작업이 끝나면
|
|
15001
|
-
지정한 `redirectUrl`로 다시 리다이렉트됩니다. 이 경우에는 함수 호출 결과를 이용할 수 없고,
|
|
15002
|
-
결제 성공 여부 등은 [쿼리 문자열](http://en.wikipedia.org/wiki/Query_string)로 전달받게 됩니다.
|
|
15003
|
-
|
|
15004
|
-
```ts
|
|
15005
|
-
PortOne.requestPayment({
|
|
15006
|
-
/* 파라미터 생략 */
|
|
15007
|
-
redirectUrl: `${BASE_URL}/payment-redirect`,
|
|
15008
|
-
});
|
|
15009
|
-
```
|
|
15010
|
-
|
|
15011
|
-
쿼리 문자열로 전달되는 주요 필드는 다음과 같습니다.
|
|
15012
|
-
전체 필드 목록은 [requestPayment 응답 형식](https://developers.portone.io/sdk/ko/v2-sdk/payment-response)을 참조해 주시기 바랍니다.
|
|
15013
|
-
|
|
15014
|
-
|키 |설명 |비고 |
|
|
15015
|
-
|---------|-------------------|----------------------------|
|
|
15016
|
-
|paymentId|결제 건 ID |공통 |
|
|
15017
|
-
|code |오류 코드 |실패 시 |
|
|
15018
|
-
|message |오류 문구 |실패 시 |
|
|
15019
|
-
|pgCode |PG 오류 코드 그대로|실패 및 PG 오류 코드 존재 시|
|
|
15020
|
-
|pgMessage|PG 오류 문구 그대로|실패 및 PG 오류 문구 존재 시|
|
|
15021
|
-
|
|
15022
|
-
예를 들어 paymentId가 `payment-39ecfa97`, redirectUrl이 `https://example.com/payment-redirect`인 경우,
|
|
15023
|
-
결제 성공 시에 `https://example.com/payment-redirect?paymentId=payment-39ecfa97`로 리다이렉트됩니다.
|
|
15024
|
-
|
|
15025
16591
|
## 4. 결제 완료 처리 (서버)
|
|
15026
16592
|
|
|
15027
|
-
|
|
16593
|
+
서버는 포트원의 [결제 조회 API](https://developers.portone.io/api/rest-v2/payment#get%20%2Fpayments%2F%7BpaymentId%7D)를
|
|
15028
16594
|
호출하여 해당 결제 건의 상태를 확인하고 결제 완료 처리를 하여야 합니다.
|
|
15029
16595
|
|
|
15030
16596
|
<div class="hint" data-style="info">
|
|
@@ -17651,7 +19217,7 @@ ni @portone/browser-sdk
|
|
|
17651
19217
|
|
|
17652
19218
|
<div class="hint" data-style="warning">
|
|
17653
19219
|
|
|
17654
|
-
KG이니시스 결제 시
|
|
19220
|
+
KG이니시스 결제 시 구매자 이름, 전화번호, 이메일을 필수로 입력해야 합니다.
|
|
17655
19221
|
|
|
17656
19222
|
</div>
|
|
17657
19223
|
|
|
@@ -17661,7 +19227,7 @@ ni @portone/browser-sdk
|
|
|
17661
19227
|
|
|
17662
19228
|
<div class="hint" data-style="warning">
|
|
17663
19229
|
|
|
17664
|
-
스마트로 결제 시 구매자
|
|
19230
|
+
스마트로 결제 시 구매자 전화번호를 필수로 입력해야 합니다.
|
|
17665
19231
|
|
|
17666
19232
|
</div>
|
|
17667
19233
|
|
|
@@ -17682,7 +19248,7 @@ ni @portone/browser-sdk
|
|
|
17682
19248
|
<div class="hint" data-style="warning">
|
|
17683
19249
|
|
|
17684
19250
|
엑심베이의 경우 구매자 이름과 이메일을 필수로 입력해야 합니다.
|
|
17685
|
-
일본 편의점 결제 사용 시 구매자
|
|
19251
|
+
일본 편의점 결제 사용 시 구매자 전화번호를 필수로 입력해야 합니다.
|
|
17686
19252
|
|
|
17687
19253
|
</div>
|
|
17688
19254
|
|
|
@@ -17714,7 +19280,7 @@ ni @portone/browser-sdk
|
|
|
17714
19280
|
|
|
17715
19281
|
- phoneNumber?: string
|
|
17716
19282
|
|
|
17717
|
-
**구매자
|
|
19283
|
+
**구매자 전화번호**
|
|
17718
19284
|
|
|
17719
19285
|
- email?: string
|
|
17720
19286
|
|
|
@@ -18546,7 +20112,7 @@ ni @portone/browser-sdk
|
|
|
18546
20112
|
|
|
18547
20113
|
- phoneNumber?: string
|
|
18548
20114
|
|
|
18549
|
-
**상점
|
|
20115
|
+
**상점 전화번호**
|
|
18550
20116
|
|
|
18551
20117
|
- address?: string
|
|
18552
20118
|
|
|
@@ -19144,7 +20710,7 @@ versionVariants:
|
|
|
19144
20710
|
|
|
19145
20711
|
포트원 모바일 SDK는 Javascript로 작성된 포트원 V2 SDK를 모바일 환경에서 모바일 플랫폼 네이티브 코드(Kotlin, Swift 등) 으로 사용 가능하도록 만들어진 SDK입니다.
|
|
19146
20712
|
|
|
19147
|
-
현재는 Android, iOS, React Native를 지원하고
|
|
20713
|
+
현재는 Android, iOS, React Native, Flutter를 지원하고 있습니다.
|
|
19148
20714
|
|
|
19149
20715
|
## Android SDK
|
|
19150
20716
|
|
|
@@ -19164,11 +20730,12 @@ React Native 환경에서 사용 가능한 SDK입니다. 해당 Git 레포지토
|
|
|
19164
20730
|
|
|
19165
20731
|
- [GitHub 링크](https://github.com/portone-io/react-native-sdk)
|
|
19166
20732
|
|
|
19167
|
-
## Flutter
|
|
20733
|
+
## Flutter SDK
|
|
19168
20734
|
|
|
19169
|
-
Flutter 환경에서 사용 가능한 SDK
|
|
20735
|
+
Flutter 환경에서 사용 가능한 SDK입니다. V1 및 V2 결제/본인인증을 지원하며, 해당 Git 레포지토리의 README.md 파일을 참고하여 사용하실 수 있습니다.
|
|
19170
20736
|
|
|
19171
|
-
- [GitHub 링크](https://github.com/portone-io/
|
|
20737
|
+
- [GitHub 링크](https://github.com/portone-io/portone_flutter)
|
|
20738
|
+
- [pub.dev 링크](https://pub.dev/packages/portone_flutter)
|
|
19172
20739
|
|
|
19173
20740
|
|
|
19174
20741
|
# https://developers.portone.io/sdk/ko/v2-sdk/billing-key-and-pay-request
|
|
@@ -21167,7 +22734,7 @@ title: 전자결제 신청
|
|
|
21167
22734
|
description: 결제대행사 및 결제수단을 선택하고 전자결제를 신청하는 과정을 안내합니다.
|
|
21168
22735
|
---
|
|
21169
22736
|
|
|
21170
|
-
포트원 관리자콘솔에서 [로그인](https://admin.portone.io/auth/signin)을 한 뒤 좌측
|
|
22737
|
+
포트원 관리자콘솔에서 [로그인](https://admin.portone.io/auth/signin)을 한 뒤 좌측 하단에 있는
|
|
21171
22738
|
**\[전자결제 신청]** 버튼을 클릭하면 고객사가 사용하고자 하는 모든 결제 수단과 이를 지원하는 결제대행사를
|
|
21172
22739
|
신청할 수 있는 페이지로 이동합니다.
|
|
21173
22740
|
|
|
@@ -24592,6 +26159,21 @@ targetVersions:
|
|
|
24592
26159
|
|
|
24593
26160
|
<details>
|
|
24594
26161
|
|
|
26162
|
+
<summary>갤럭시아머니트리</summary>
|
|
26163
|
+
|
|
26164
|
+
1. [갤럭시아머니트리 가맹점 관리자](https://cpadmin.billgate.net) 접속 후 로그인을 합니다.
|
|
26165
|
+
2. \[기술지원]→\[암호화 정보 확인]을 클릭합니다.
|
|
26166
|
+
3. \[상용서버] 또는 \[테스트서버]를 선택합니다.
|
|
26167
|
+
4. MID, KEY, IV 값을 확인할 수 있습니다.
|
|
26168
|
+
|
|
26169
|
+
(이미지 첨부: 갤럭시아머니트리 BillGate 내 암호화 정보 확인 화면)
|
|
26170
|
+
|
|
26171
|
+
5. 포트원 콘솔에서 채널 추가 시 \[MID], \[KEY], \[IV]를 입력한 후 `저장`을 클릭합니다.
|
|
26172
|
+
|
|
26173
|
+
</details>
|
|
26174
|
+
|
|
26175
|
+
<details>
|
|
26176
|
+
|
|
24595
26177
|
<summary>나이스정보통신</summary>
|
|
24596
26178
|
|
|
24597
26179
|
<div class="hint" data-style="info">
|
|
@@ -24760,6 +26342,8 @@ targetVersions:
|
|
|
24760
26342
|
|
|
24761
26343
|
<summary>키움페이</summary>
|
|
24762
26344
|
|
|
26345
|
+
#### 채널 설정
|
|
26346
|
+
|
|
24763
26347
|
1. [키움페이 상점관리자](http://agent.kiwoompay.co.kr/) 접속 후 로그인을 합니다.
|
|
24764
26348
|
2. \[고객지원]→\[기술지원]→\[연동정보설정]를 클릭합니다.
|
|
24765
26349
|
3. CPID를 선택하여 `조회하기`를 클릭합니다.
|
|
@@ -24770,6 +26354,19 @@ targetVersions:
|
|
|
24770
26354
|
|
|
24771
26355
|
6. 포트원 콘솔에서 채널 추가 시 \[CPID], \[결제연동키]를 입력한 후 `저장`을 클릭합니다.
|
|
24772
26356
|
|
|
26357
|
+
#### 결제 결과 통보 URL 설정
|
|
26358
|
+
|
|
26359
|
+
키움페이에서 포트원으로 결제 결과를 전달받기 위해 통보 URL을 설정해야 합니다.
|
|
26360
|
+
|
|
26361
|
+
1. [키움페이 상점관리자](http://agent.kiwoompay.co.kr/) 접속 후 로그인을 합니다.
|
|
26362
|
+
2. \[고객지원]→\[기술지원]→\[연동정보설정]를 클릭합니다.
|
|
26363
|
+
3. CPID를 선택하여 `조회하기`를 클릭합니다.
|
|
26364
|
+
4. 결제수단을 선택합니다.
|
|
26365
|
+
5. `결제 통지URL` 항목에 `https://service.iamport.kr/daou_payments/result`를 입력합니다.
|
|
26366
|
+
6. `취소통지사용여부` 항목을 `아니오`로 설정합니다.
|
|
26367
|
+
|
|
26368
|
+
(이미지 첨부: 키움페이 상점관리자 내 통보 URL 설정 화면)
|
|
26369
|
+
|
|
24773
26370
|
</details>
|
|
24774
26371
|
|
|
24775
26372
|
<!-- VERSION-SPECIFIC: V1 ONLY CONTENT END -->
|
|
@@ -24854,63 +26451,8 @@ targetVersions:
|
|
|
24854
26451
|
|
|
24855
26452
|
<div class="tabs-content" data-title="결제창 일반/정기 결제">
|
|
24856
26453
|
|
|
24857
|
-
|
|
24858
|
-
|
|
24859
|
-
<div class="hint" data-style="info">
|
|
24860
|
-
|
|
24861
|
-
- **INILite Key**는 정기결제 시 필수로 입력해야 합니다.
|
|
24862
|
-
- **INIAPI Key**, **INIAPI IV** 하위 상점 관련 API 사용시 필수로 입력해야 합니다. [영수증 내 하위 상점 거래 등록 API 바로가기](/api/rest-v1/partner#post%20%2Fpartners%2Freceipts%2F%7Bimp_uid%7D)
|
|
24863
|
-
|
|
24864
|
-
</div>
|
|
24865
|
-
|
|
24866
|
-
<!-- VERSION-SPECIFIC: V1 ONLY CONTENT END -->
|
|
24867
|
-
|
|
24868
|
-
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT START -->
|
|
24869
|
-
|
|
24870
|
-
<div class="hint" data-style="info">
|
|
24871
|
-
|
|
24872
|
-
크레덴셜 중 **hashKey** 는 선택사항으로, KG이니시스에서 제공하는 모바일 금액위변조 방지 기능 사용을 원하실 경우 입력하시면 됩니다.
|
|
24873
|
-
|
|
24874
|
-
</div>
|
|
24875
|
-
|
|
24876
|
-
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT END -->
|
|
24877
|
-
|
|
24878
|
-
1. [KG이니시스 가맹점관리자](http://iniweb.inicis.com/security/login.do) 접속 후 로그인을 합니다.
|
|
24879
|
-
|
|
24880
|
-
2. \[상점정보]→\[계약정보]→\[부가정보]를 클릭합니다.
|
|
24881
|
-
|
|
24882
|
-
3. 아래의 크레덴셜 값들을 확인합니다. 값이 표시되지 않는 경우 생성/갱신 버튼을 클릭해 주세요.
|
|
24883
|
-
|
|
24884
|
-
<ul>
|
|
24885
|
-
|
|
24886
|
-
<li>**웹결제 signkey 생성 조회**의 조회 버튼을 클릭하여 값을 확인할 수 있습니다.</li>
|
|
24887
|
-
<li>**INIAPI key 생성 갱신**의 조회 버튼을 클릭하여 \[INIAPI KEY], \[INIAPI IV] 값을 확인할 수 있습니다.</li>
|
|
24888
|
-
|
|
24889
|
-
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT START -->
|
|
24890
|
-
|
|
24891
|
-
<li>**모바일 금액위변조 HashKey**의 조회 버튼을 클릭하여 값을 확인할 수 있습니다.</li>
|
|
24892
|
-
|
|
24893
|
-
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT END -->
|
|
24894
|
-
|
|
24895
|
-
</ul>
|
|
24896
|
-
|
|
24897
|
-
(이미지 첨부: KG이니시스 가맹점관리자 내 크레덴셜 정보 조회 화면 1)
|
|
24898
|
-
|
|
24899
|
-
4. INILite Key의 조회 버튼을 클릭하여 값을 확인할 수 있습니다.
|
|
24900
|
-
|
|
24901
|
-
(이미지 첨부: KG이니시스 가맹점관리자 내 크레덴셜 정보 조회 화면 2)
|
|
24902
|
-
|
|
24903
|
-
5. 포트원 콘솔에서 채널 추가 시 \[상점아이디]와 위 과정에서 발급받은 크레덴셜 값들을 입력한 후 `저장`을 클릭합니다.
|
|
24904
|
-
|
|
24905
|
-
<!-- VERSION-SPECIFIC: V1 ONLY CONTENT START -->
|
|
24906
|
-
|
|
24907
|
-
<div class="hint" data-style="warning">
|
|
24908
|
-
|
|
24909
|
-
포트원 V1 결제모듈을 사용하시는 경우 KG이니시스로부터 전달받은 키파일을 별도로 등록해야 합니다. 키파일 등록과 관련하여 문의사항이 있는 경우 채널톡으로 문의해주세요.
|
|
24910
|
-
|
|
24911
|
-
</div>
|
|
24912
|
-
|
|
24913
|
-
<!-- VERSION-SPECIFIC: V1 ONLY CONTENT END -->
|
|
26454
|
+
1. KG이니시스 계약 완료 이후, 이니시스로부터 전달 받은 MID, INIAPI Key, CBT 타입 값을 포트원 콘솔에서 채널 추가 시
|
|
26455
|
+
`[PG상점아이디 (MID)]`, `[INIAPI Key]`, `[CBT Type]` 항목에 입력 혹은 선택 후 저장을 클릭합니다.
|
|
24914
26456
|
|
|
24915
26457
|
</div>
|
|
24916
26458
|
|
|
@@ -24972,63 +26514,8 @@ DI\_CODE는 12자리로 고객사에서 자체적으로 사이트(서비스)를
|
|
|
24972
26514
|
|
|
24973
26515
|
<div class="tabs-content" data-title="결제창 일반/정기 결제">
|
|
24974
26516
|
|
|
24975
|
-
|
|
24976
|
-
|
|
24977
|
-
<div class="hint" data-style="info">
|
|
24978
|
-
|
|
24979
|
-
- **INILite Key**는 정기결제 시 필수로 입력해야 합니다.
|
|
24980
|
-
- **INIAPI Key**, **INIAPI IV** 하위 상점 관련 API 사용시 필수로 입력해야 합니다. [영수증 내 하위 상점 거래 등록 API 바로가기](/api/rest-v1/partner#post%20%2Fpartners%2Freceipts%2F%7Bimp_uid%7D)
|
|
24981
|
-
|
|
24982
|
-
</div>
|
|
24983
|
-
|
|
24984
|
-
<!-- VERSION-SPECIFIC: V1 ONLY CONTENT END -->
|
|
24985
|
-
|
|
24986
|
-
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT START -->
|
|
24987
|
-
|
|
24988
|
-
<div class="hint" data-style="info">
|
|
24989
|
-
|
|
24990
|
-
크레덴셜 중 **hashKey** 는 선택사항으로, KG이니시스에서 제공하는 모바일 금액위변조 방지 기능 사용을 원하실 경우 입력하시면 됩니다.
|
|
24991
|
-
|
|
24992
|
-
</div>
|
|
24993
|
-
|
|
24994
|
-
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT END -->
|
|
24995
|
-
|
|
24996
|
-
1. [KG이니시스 가맹점관리자](http://iniweb.inicis.com/security/login.do) 접속 후 로그인을 합니다.
|
|
24997
|
-
|
|
24998
|
-
2. \[상점정보]→\[계약정보]→\[부가정보]를 클릭합니다.
|
|
24999
|
-
|
|
25000
|
-
3. 아래의 크레덴셜 값들을 확인합니다. 값이 표시되지 않는 경우 생성/갱신 버튼을 클릭해 주세요.
|
|
25001
|
-
|
|
25002
|
-
<ul>
|
|
25003
|
-
|
|
25004
|
-
<li>**웹결제 signkey 생성 조회**의 조회 버튼을 클릭하여 값을 확인할 수 있습니다.</li>
|
|
25005
|
-
<li>**INIAPI key 생성 갱신**의 조회 버튼을 클릭하여 \[INIAPI KEY], \[INIAPI IV] 값을 확인할 수 있습니다.</li>
|
|
25006
|
-
|
|
25007
|
-
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT START -->
|
|
25008
|
-
|
|
25009
|
-
<li>**모바일 금액위변조 HashKey**의 조회 버튼을 클릭하여 값을 확인할 수 있습니다.</li>
|
|
25010
|
-
|
|
25011
|
-
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT END -->
|
|
25012
|
-
|
|
25013
|
-
</ul>
|
|
25014
|
-
|
|
25015
|
-
(이미지 첨부: KG이니시스 가맹점관리자 내 크레덴셜 정보 조회 화면 1)
|
|
25016
|
-
|
|
25017
|
-
4. INILite Key의 조회 버튼을 클릭하여 값을 확인할 수 있습니다.
|
|
25018
|
-
|
|
25019
|
-
(이미지 첨부: KG이니시스 가맹점관리자 내 크레덴셜 정보 조회 화면 2)
|
|
25020
|
-
|
|
25021
|
-
5. 포트원 콘솔에서 채널 추가 시 \[상점아이디]와 위 과정에서 발급받은 크레덴셜 값들을 입력한 후 `저장`을 클릭합니다.
|
|
25022
|
-
|
|
25023
|
-
<!-- VERSION-SPECIFIC: V1 ONLY CONTENT START -->
|
|
25024
|
-
|
|
25025
|
-
<div class="hint" data-style="warning">
|
|
25026
|
-
|
|
25027
|
-
포트원 V1 결제모듈을 사용하시는 경우 KG이니시스로부터 전달받은 키파일을 별도로 등록해야 합니다. 키파일 등록과 관련하여 문의사항이 있는 경우 채널톡으로 문의해주세요.
|
|
25028
|
-
|
|
25029
|
-
</div>
|
|
25030
|
-
|
|
25031
|
-
<!-- VERSION-SPECIFIC: V1 ONLY CONTENT END -->
|
|
26517
|
+
1. KG이니시스 계약 완료 이후, 이니시스로부터 전달 받은 MID, INIAPI Key, CBT 타입 값을 포트원 콘솔에서 채널 추가 시
|
|
26518
|
+
`[PG상점아이디 (MID)]`, `[INIAPI Key]`, `[CBT Type]` 항목에 입력 혹은 선택 후 저장을 클릭합니다.
|
|
25032
26519
|
|
|
25033
26520
|
</div>
|
|
25034
26521
|
|
|
@@ -25096,7 +26583,7 @@ DI\_CODE는 12자리로 고객사에서 자체적으로 사이트(서비스)를
|
|
|
25096
26583
|
|
|
25097
26584
|
(이미지 첨부: KCP 파트너관리자 내 관리용 사설인증서 발급 완료 화면)
|
|
25098
26585
|
|
|
25099
|
-
4. \[
|
|
26586
|
+
4. \[자동결제]→\[그룹관리]→\[그룹등록]을 클릭합니다.
|
|
25100
26587
|
|
|
25101
26588
|
5. \[상점정보]→\[사이트코드]에서 그룹등록할 사이트코드를 선택합니다.
|
|
25102
26589
|
|
|
@@ -25108,7 +26595,7 @@ DI\_CODE는 12자리로 고객사에서 자체적으로 사이트(서비스)를
|
|
|
25108
26595
|
|
|
25109
26596
|
(이미지 첨부: KCP 파트너관리자 내 관리용 그룹등록 화면)
|
|
25110
26597
|
|
|
25111
|
-
9. \[
|
|
26598
|
+
9. \[자동결제]→\[그룹관리]→\[그룹조회]를 클릭합니다.
|
|
25112
26599
|
|
|
25113
26600
|
10. \[사이트코드]에서 사용한 사이트코드를 선택한 후 \[검색]을 클릭합니다.
|
|
25114
26601
|
|
|
@@ -25132,7 +26619,7 @@ DI\_CODE는 12자리로 고객사에서 자체적으로 사이트(서비스)를
|
|
|
25132
26619
|
|
|
25133
26620
|
(이미지 첨부: KCP 파트너관리자 내 관리용 사설인증서 발급 완료 화면)
|
|
25134
26621
|
|
|
25135
|
-
4. \[
|
|
26622
|
+
4. \[자동결제]→\[그룹관리]→\[그룹등록]을 클릭합니다.
|
|
25136
26623
|
|
|
25137
26624
|
5. \[상점정보]→\[사이트코드]에서 그룹등록할 사이트코드를 선택합니다.
|
|
25138
26625
|
|
|
@@ -25144,7 +26631,7 @@ DI\_CODE는 12자리로 고객사에서 자체적으로 사이트(서비스)를
|
|
|
25144
26631
|
|
|
25145
26632
|
(이미지 첨부: KCP 파트너관리자 내 관리용 그룹등록 화면)
|
|
25146
26633
|
|
|
25147
|
-
9. \[
|
|
26634
|
+
9. \[자동결제]→\[그룹관리]→\[그룹조회]를 클릭합니다.
|
|
25148
26635
|
|
|
25149
26636
|
10. \[사이트코드]에서 사용한 사이트코드를 선택한 후 \[검색]을 클릭합니다.
|
|
25150
26637
|
|
|
@@ -25215,7 +26702,7 @@ DI\_CODE는 12자리로 고객사에서 자체적으로 사이트(서비스)를
|
|
|
25215
26702
|
9. 정기결제를 이용하시는 경우, 아래 절차를 진행해주세요.
|
|
25216
26703
|
|
|
25217
26704
|
1. [KCP 파트너관리자](http://partner.kcp.co.kr/) 접속 후 로그인을 합니다.
|
|
25218
|
-
2. \[
|
|
26705
|
+
2. \[자동결제]→\[그룹관리]→\[그룹등록]을 클릭합니다.
|
|
25219
26706
|
3. \[상점정보]→\[사이트코드]에서 그룹등록할 사이트코드를 선택합니다.
|
|
25220
26707
|
4. \[그룹정보]에서 \[유형3]을 선택한 후 원하는 그룹명을 입력합니다.
|
|
25221
26708
|
5. \[결제입력 정보]에서 \[결제유형] 및 \[납부유형]을 확인하시고 고객사 유형에 맞게 선택합니다.
|
|
@@ -25223,7 +26710,7 @@ DI\_CODE는 12자리로 고객사에서 자체적으로 사이트(서비스)를
|
|
|
25223
26710
|
|
|
25224
26711
|
(이미지 첨부: KCP 파트너관리자 내 관리용 그룹등록 화면)
|
|
25225
26712
|
|
|
25226
|
-
7. \[
|
|
26713
|
+
7. \[자동결제]→\[그룹관리]→\[그룹조회]를 클릭합니다.
|
|
25227
26714
|
8. \[사이트코드]에서 사용한 사이트코드를 선택한 후 \[검색]을 클릭합니다.
|
|
25228
26715
|
|
|
25229
26716
|
(이미지 첨부: KCP 파트너관리자 내 관리용 그룹조회 화면)
|
|
@@ -25324,10 +26811,10 @@ PG 거래대사 메뉴를 사용하시는 경우 \[대사 시크릿 키] 항목
|
|
|
25324
26811
|
|
|
25325
26812
|
</details>
|
|
25326
26813
|
|
|
25327
|
-
<!-- VERSION-SPECIFIC: V1 ONLY CONTENT START -->
|
|
25328
|
-
|
|
25329
26814
|
<details>
|
|
25330
26815
|
|
|
26816
|
+
<!-- VERSION-SPECIFIC: V1 ONLY CONTENT START -->
|
|
26817
|
+
|
|
25331
26818
|
<summary>페이먼트월</summary>
|
|
25332
26819
|
|
|
25333
26820
|
1. [페이먼트월](http://api.paymentwall.com/developers/applications) 접속 후 로그인을 합니다.
|
|
@@ -25355,10 +26842,41 @@ PG 거래대사 메뉴를 사용하시는 경우 \[대사 시크릿 키] 항목
|
|
|
25355
26842
|
|
|
25356
26843
|
(이미지 첨부: 페이먼트월 Pingback 설정 화면)
|
|
25357
26844
|
|
|
25358
|
-
</details>
|
|
25359
|
-
|
|
25360
26845
|
<!-- VERSION-SPECIFIC: V1 ONLY CONTENT END -->
|
|
25361
26846
|
|
|
26847
|
+
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT START -->
|
|
26848
|
+
|
|
26849
|
+
<summary>페이먼트월</summary>
|
|
26850
|
+
|
|
26851
|
+
1. [페이먼트월](http://api.paymentwall.com/developers/applications) 접속 후 로그인을 합니다.
|
|
26852
|
+
2. \[My Projects]를 클릭합니다.
|
|
26853
|
+
|
|
26854
|
+
(이미지 첨부: 페이먼트월 페이지 내 Key 조회 화면)
|
|
26855
|
+
|
|
26856
|
+
3. 포트원 콘솔에서 채널 추가 시 \[Project Key], \[Secret Key]를 입력한 후 `저장`을 클릭합니다.
|
|
26857
|
+
|
|
26858
|
+
#### 핑백(Pingback) URL 설정하기
|
|
26859
|
+
|
|
26860
|
+
페이먼트월에서 포트원으로 결제 결과를 전달받기 위해 핑백 URL을 설정해야 합니다.
|
|
26861
|
+
|
|
26862
|
+
1. [페이먼트월](https://api.paymentwall.com/developers/applications) 페이지에서 \[My Projects]를 클릭합니다.
|
|
26863
|
+
|
|
26864
|
+
(이미지 첨부: 페이먼트월 My Projects 메뉴)
|
|
26865
|
+
|
|
26866
|
+
2. 사용할 프로젝트의 \[Settings] 탭을 클릭합니다.
|
|
26867
|
+
|
|
26868
|
+
(이미지 첨부: 페이먼트월 프로젝트 setting 탭)
|
|
26869
|
+
|
|
26870
|
+
3. \[Pingback type]을 `URL`로 선택합니다.
|
|
26871
|
+
4. \[Pingback URL]에 `https://tx-gateway-service.prod.iamport.co/paymentwall`를 입력합니다.
|
|
26872
|
+
5. \[Pingback signature version]을 `3`으로 설정합니다.
|
|
26873
|
+
|
|
26874
|
+
(이미지 첨부: 페이먼트월 Pingback 설정 화면)
|
|
26875
|
+
|
|
26876
|
+
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT END -->
|
|
26877
|
+
|
|
26878
|
+
</details>
|
|
26879
|
+
|
|
25362
26880
|
<details>
|
|
25363
26881
|
|
|
25364
26882
|
<summary>페이팔</summary>
|
|
@@ -25469,6 +26987,36 @@ PG 거래대사 메뉴를 사용하시는 경우 \[대사 시크릿 키] 항목
|
|
|
25469
26987
|
|
|
25470
26988
|
</details>
|
|
25471
26989
|
|
|
26990
|
+
<details>
|
|
26991
|
+
|
|
26992
|
+
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT START -->
|
|
26993
|
+
|
|
26994
|
+
<summary>Triple-A</summary>
|
|
26995
|
+
|
|
26996
|
+
1. Triple-A 대시보드의 API Credentials 페이지로 이동합니다.
|
|
26997
|
+
2. `+ Create credentials` 버튼을 클릭하여 Client ID와 Client Secret을 생성합니다.
|
|
26998
|
+
3. API IDs 리스트에서 Merchant key를 확인합니다.
|
|
26999
|
+
4. 포트원 콘솔에서 채널 추가 시 확인한 Merchant Key를 PG 상점아이디에 입력하고, Client ID와 Client Secret을 입력한 후 `저장`을 클릭합니다.
|
|
27000
|
+
|
|
27001
|
+
<div class="hint" data-style="info">
|
|
27002
|
+
|
|
27003
|
+
테스트 환경에서는 Testnet3 testBTC로만 결제가 가능합니다.
|
|
27004
|
+
|
|
27005
|
+
</div>
|
|
27006
|
+
|
|
27007
|
+
<!-- VERSION-SPECIFIC: V2 ONLY CONTENT END -->
|
|
27008
|
+
|
|
27009
|
+
</details>
|
|
27010
|
+
|
|
27011
|
+
<details>
|
|
27012
|
+
|
|
27013
|
+
<summary>이지페이(KICC)</summary>
|
|
27014
|
+
|
|
27015
|
+
1. KICC 계약 완료 이후, KICC로부터 전달 받은 MID, 가맹점 암호키 값을 포트원 콘솔에서 채널 추가 시
|
|
27016
|
+
`[가맹점 ID]`, `[암복호화 키]` 항목에 입력한 후 저장을 클릭합니다.
|
|
27017
|
+
|
|
27018
|
+
</details>
|
|
27019
|
+
|
|
25472
27020
|
## <span id="integration-identifiers">4. 포트원 연동정보 확인하기</span>
|
|
25473
27021
|
|
|
25474
27022
|
포트원을 이용한 결제 연동 시 필요한 연동정보를 확인합니다.
|
|
@@ -25541,6 +27089,48 @@ targetVersions:
|
|
|
25541
27089
|
- v2
|
|
25542
27090
|
---
|
|
25543
27091
|
|
|
27092
|
+
## AI Codemate
|
|
27093
|
+
|
|
27094
|
+
AI Codemate 는 Claude Code를 사용하여 작업자의 프로젝트 환경을 AI를 통해 분석해 맞춤형 결제 연동 코드를 생성하고,
|
|
27095
|
+
기존 연동 코드를 검토하는 기능을 제공합니다.
|
|
27096
|
+
[(GitHub 저장소 바로가기)](https://github.com/portone-io/portone-cli)
|
|
27097
|
+
|
|
27098
|
+
플러그인은 포트원 MCP 서버를 기반으로 공식 문서와 API 스펙을 활용하여 정확한 코드를 생성합니다.
|
|
27099
|
+
|
|
27100
|
+
### 설치 방법
|
|
27101
|
+
|
|
27102
|
+
Node.js 22.6.0 이상이 설치된 환경에서 다음 명령어를 실행합니다:
|
|
27103
|
+
|
|
27104
|
+
```bash
|
|
27105
|
+
npx @portone/cli@latest setup
|
|
27106
|
+
```
|
|
27107
|
+
|
|
27108
|
+
<div class="hint" data-style="info">
|
|
27109
|
+
|
|
27110
|
+
명령어 실행 시 사용자의 Claude Code에 포트원 Claude 플러그인이 자동으로 등록됩니다.
|
|
27111
|
+
|
|
27112
|
+
</div>
|
|
27113
|
+
|
|
27114
|
+
### 사용 방법
|
|
27115
|
+
|
|
27116
|
+
#### 결제 연동 코드 생성
|
|
27117
|
+
|
|
27118
|
+
Claude Code에서 `/portone-integration:start` 명령어를 입력하면 대화형으로 결제 연동 코드를 생성할 수 있습니다.
|
|
27119
|
+
|
|
27120
|
+
```bash
|
|
27121
|
+
/portone-integration:start # 대화형으로 모든 옵션 선택
|
|
27122
|
+
```
|
|
27123
|
+
|
|
27124
|
+
### 지원 범위
|
|
27125
|
+
|
|
27126
|
+
Claude Code에서 사용하는 모델이 지원하는 모든 프레임워크와 언어를 지원합니다.
|
|
27127
|
+
|
|
27128
|
+
<div class="hint" data-style="warning">
|
|
27129
|
+
|
|
27130
|
+
신규 프로젝트의 경우 V2 사용을 권장합니다. V1은 레거시 프로젝트 유지보수 용도로 지원됩니다.
|
|
27131
|
+
|
|
27132
|
+
</div>
|
|
27133
|
+
|
|
25544
27134
|
## 포트원 MCP (Model Context Protocol) 서버
|
|
25545
27135
|
|
|
25546
27136
|
포트원은 쉬운 연동과 빠른 개발을 위해 MCP 서버를 제공합니다. [(GitHub 저장소 바로가기)](https://github.com/portone-io/mcp-server)
|
|
@@ -26957,6 +28547,10 @@ description: 파트너 정산 자동화 솔루션에서 자주 사용되는 용
|
|
|
26957
28547
|
|
|
26958
28548
|
## **공통 용어**
|
|
26959
28549
|
|
|
28550
|
+
### 정산
|
|
28551
|
+
|
|
28552
|
+
포트원 콘솔에서는 '정산'을 '파트너에게 지급할 금액을 산출하는 과정'으로 정의합니다.
|
|
28553
|
+
|
|
26960
28554
|
### 고객사 / 파트너
|
|
26961
28555
|
|
|
26962
28556
|
고객사는 포트원의 결제서비스를 이용하고 있는 포트원의 고객을 의미합니다.
|
|
@@ -26977,6 +28571,18 @@ description: 파트너 정산 자동화 솔루션에서 자주 사용되는 용
|
|
|
26977
28571
|
|
|
26978
28572
|
</div>
|
|
26979
28573
|
|
|
28574
|
+
### 전 영업일
|
|
28575
|
+
|
|
28576
|
+
선택한 날짜가 공휴일인 경우, 그 이전의 가장 가까운 영업일을 의미합니다.
|
|
28577
|
+
|
|
28578
|
+
### 후 영업일
|
|
28579
|
+
|
|
28580
|
+
선택한 날짜가 공휴일인 경우, 그 이후의 가장 가까운 영업일을 의미합니다.
|
|
28581
|
+
|
|
28582
|
+
### 달력일
|
|
28583
|
+
|
|
28584
|
+
영업일과 관계없이 선택한 날짜를 의미합니다. 주말과 공휴일도 포함됩니다.
|
|
28585
|
+
|
|
26980
28586
|
---
|
|
26981
28587
|
|
|
26982
28588
|
## **정산금 계산 자동화 용어**
|
|
@@ -26994,6 +28600,32 @@ description: 파트너 정산 자동화 솔루션에서 자주 사용되는 용
|
|
|
26994
28600
|
|
|
26995
28601
|
소득자(개인 파트너)가 자신의 세금을 직접 납부하지 않고, 원천징수 대상소득을 지급하는 원천징수 의무자(플랫폼사)가 그 금액을 미리 떼어서 대신 납부하는 세금입니다. 원천 징수세는 계약 등록에서 미리 설정할 수 있습니다.
|
|
26996
28602
|
|
|
28603
|
+
### 정산 파라미터
|
|
28604
|
+
|
|
28605
|
+
정산 금액을 계산하기 위해 시스템에 전달되는 데이터 변수들을 의미합니다. 정산 파라미터는 플랫폼 프로모션, 수수료율 등 다양한 요소를 포함할 수 있으며, 이를 기반으로 정산금 계산식을 만들 수 있습니다.
|
|
28606
|
+
|
|
28607
|
+
### 정산 시작일
|
|
28608
|
+
|
|
28609
|
+
정산 주기를 계산하기 위한 기점이 되는 날짜입니다. 일반적으로 결제 완료 시점 또는 구매 확정 시점으로 설정합니다.
|
|
28610
|
+
|
|
28611
|
+
### 정산일
|
|
28612
|
+
|
|
28613
|
+
정산금 지급이 가능해지는 시점입니다.
|
|
28614
|
+
|
|
28615
|
+
<div class="hint" data-style="Info">
|
|
28616
|
+
|
|
28617
|
+
정산일 = 정산 시작일 + 보류일
|
|
28618
|
+
|
|
28619
|
+
</div>
|
|
28620
|
+
|
|
28621
|
+
### 부가세 부담 주체
|
|
28622
|
+
|
|
28623
|
+
플랫폼에서 부과하는 중개 수수료에 대한 부가세의 부담 주체를 의미합니다.
|
|
28624
|
+
|
|
28625
|
+
**파트너 부담** : 중개 수수료에 부가세를 별도로 청구합니다. 파트너 정산 금액에서 중개수수료에 대한 부가세를 자동 차감 후 지급합니다.
|
|
28626
|
+
|
|
28627
|
+
**우리 회사 부담** : 중개 수수료에 부가세를 포함하여 정산합니다. 즉, 파트너 정산 금액에 영향을 미치지 않습니다.
|
|
28628
|
+
|
|
26997
28629
|
---
|
|
26998
28630
|
|
|
26999
28631
|
## **지급대행 서비스 용어**
|
|
@@ -27013,6 +28645,7 @@ description: 파트너 정산 자동화 솔루션에서 자주 사용되는 용
|
|
|
27013
28645
|
### 즉시지급(바로지급)과 예약지급
|
|
27014
28646
|
|
|
27015
28647
|
**즉시지급**은 지급 요청 즉시 실시간으로 송금이 실행되는 지급 방식입니다.
|
|
28648
|
+
|
|
27016
28649
|
**예약지급**은 미래의 특정 시점에 지급이 실행되도록 예약하는 지급 방식입니다. 예약지급은 주말과 공휴일도 포함시켜 달력일로 예약할 수 있습니다.
|
|
27017
28650
|
|
|
27018
28651
|
<div class="hint" data-style="warning">
|
|
@@ -27064,6 +28697,10 @@ description: 파트너 정산 자동화 솔루션에서 자주 사용되는 용
|
|
|
27064
28697
|
|
|
27065
28698
|
</div>
|
|
27066
28699
|
|
|
28700
|
+
### 발행 마감일
|
|
28701
|
+
|
|
28702
|
+
전자세금계산서법에 따라 세금계산서를 반드시 발행해야 하는 법적 기한입니다. 일반적으로 거래가 발생한 달의 다음 달 10일까지 국세청에 전송되어야 합니다.
|
|
28703
|
+
|
|
27067
28704
|
|
|
27068
28705
|
# https://developers.portone.io/platform/ko/guides/process
|
|
27069
28706
|
|
|
@@ -31110,10 +32747,10 @@ writtenAt: 2023-09-01T00:00:00.000Z
|
|
|
31110
32747
|
|
|
31111
32748
|
플랫폼 및 마켓플레이스 사업자가 손쉽게 하위정산 할 수 있는 파트너정산 서비스가 런칭 되었습니다.
|
|
31112
32749
|
파트너(셀러) 등록, 계약 등록, 정산등록 과 같은 정산의 세밀한 모든 부분을 관리자 콘솔로 관리하세요!
|
|
31113
|
-
해당 서비스는 유료 서비스입니다. 문의를 원하시면 신청(<https://
|
|
32750
|
+
해당 서비스는 유료 서비스입니다. 문의를 원하시면 신청(<https://inquiry.portone.io/fs>하시면
|
|
31114
32751
|
영업일 2일안에 연락드리겠습니다.
|
|
31115
32752
|
|
|
31116
|
-
[→ 파트너 정산 자동화 서비스 소개](https://portone.io/
|
|
32753
|
+
[→ 파트너 정산 자동화 서비스 소개](https://portone.io/platform)
|
|
31117
32754
|
[→ 파트너 정산 자동화 연동가이드 확인하기](https://developers.portone.io/platform/ko/readme)
|
|
31118
32755
|
|
|
31119
32756
|
|
|
@@ -31675,17 +33312,17 @@ writtenAt: 2024-08-22T00:00:00.000Z
|
|
|
31675
33312
|
|
|
31676
33313
|
**주문 정산건 생성 요청**
|
|
31677
33314
|
|
|
31678
|
-
- **`discounts`:[\[CreatePlatformOrderTransferBodyDiscount\[\]\]](/api/rest-v2/
|
|
33315
|
+
- **`discounts`:[\[CreatePlatformOrderTransferBodyDiscount\[\]\]](/api/rest-v2/platform.transfer#CreatePlatformOrderTransferBodyDiscount)** 할인 정보에 면세 할인 금액 필드가 추가되었습니다.
|
|
31679
33316
|
- **`taxFreeAmount?: integer`** 면세 할인 금액
|
|
31680
33317
|
|
|
31681
33318
|
**주문 취소 정산건 생성 요청**
|
|
31682
33319
|
|
|
31683
|
-
- **`discounts`:[\[CreatePlatformOrderCancelTransferBodyDiscount\[\]\]](/api/rest-v2/
|
|
33320
|
+
- **`discounts`:[\[CreatePlatformOrderCancelTransferBodyDiscount\[\]\]](/api/rest-v2/platform.transfer#CreatePlatformOrderCancelTransferBodyDiscount)** 할인 정보에 면세 할인 금액 필드가 추가되었습니다.
|
|
31684
33321
|
- **`taxFreeAmount?: integer`** 면세 할인 금액
|
|
31685
33322
|
|
|
31686
33323
|
**주문 정산건 생성, 주문 취소 정산건 생성 응답**
|
|
31687
33324
|
|
|
31688
|
-
- **`amount`:[\[PlatformOrderSettlementAmount\]](/api/rest-v2/
|
|
33325
|
+
- **`amount`:[\[PlatformOrderSettlementAmount\]](/api/rest-v2/platform.transfer#PlatformOrderSettlementAmount)** 정산 금액 정보에 필드가 추가되었습니다.
|
|
31689
33326
|
- **`paymentTaxFree: integer`** 결제 면세 금액
|
|
31690
33327
|
- 기존 `taxFree`를 대체하는 필드입니다. `taxFree`를 사용하고 계셨다면 `paymentTaxFree`를 대신 사용해 주세요
|
|
31691
33328
|
|
|
@@ -31698,13 +33335,13 @@ writtenAt: 2024-08-22T00:00:00.000Z
|
|
|
31698
33335
|
|
|
31699
33336
|
- **`discountShareTaxFree: integer`** 면세 할인 분담 금액
|
|
31700
33337
|
|
|
31701
|
-
- **`discounts`:[\[PlatformOrderTransferDiscount\[\]\]](/api/rest-v2/
|
|
33338
|
+
- **`discounts`:[\[PlatformOrderTransferDiscount\[\]\]](/api/rest-v2/platform.transfer#PlatformOrderTransferDiscount)** 정산 금액 계산 시 사용된 할인 정보에 필드가 추가되었습니다.
|
|
31702
33339
|
- **`taxFreeAmount: integer`** 면세 할인 금액
|
|
31703
33340
|
- **`shareTaxFreeAmount: integer`** 면세 할인 분담 금액
|
|
31704
33341
|
|
|
31705
33342
|
**정산 상세 내역 다운로드 필드 추가**
|
|
31706
33343
|
|
|
31707
|
-
- **`fields?`:[\[PlatformTransferSheetField\[\]\]](/api/rest-v2/
|
|
33344
|
+
- **`fields?`:[\[PlatformTransferSheetField\[\]\]](/api/rest-v2/platform.transfer#PlatformTransferSheetField)** 다운로드 할 시트 필드가 추가되었습니다.
|
|
31708
33345
|
- **`SETTLEMENT_PAYMENT_SUPPLY_AMOUNT`**: 결제 공급가액
|
|
31709
33346
|
- 기존 `SETTLEMENT_SUPPLY_AMOUNT`를 대체하는 필드입니다. `SETTLEMENT_SUPPLY_AMOUNT`를 사용하고 계셨다면 `SETTLEMENT_PAYMENT_SUPPLY_AMOUNT`를 대신 사용해 주세요
|
|
31710
33347
|
|
|
@@ -31804,32 +33441,32 @@ writtenAt: 2024-10-21T00:00:00.000Z
|
|
|
31804
33441
|
|
|
31805
33442
|
일괄 지급 내역 다건 조회 응답값이 수정되었습니다.
|
|
31806
33443
|
|
|
31807
|
-
- **`items`: [PlatformBulkPayout\[\]](/api/rest-v2/
|
|
33444
|
+
- **`items`: [PlatformBulkPayout\[\]](/api/rest-v2/platform.bulkPayout#PlatformBulkPayout)** 일괄 지급 내역에 필드가 추가되었습니다.
|
|
31808
33445
|
- **`scheduledAt?: string`** 일괄지급 예정일시
|
|
31809
|
-
- **`status`: [PlatformBulkPayoutStatus](/api/rest-v2/
|
|
33446
|
+
- **`status`: [PlatformBulkPayoutStatus](/api/rest-v2/platform.bulkPayout#PlatformBulkPayoutStatus)** 일괄지급 상태에 `SCHEDULED` (예약됨) 상태가 추가되었습니다.
|
|
31810
33447
|
|
|
31811
|
-
- **`counts`: [PlatformBulkPayoutStatusStats](/api/rest-v2/
|
|
33448
|
+
- **`counts`: [PlatformBulkPayoutStatusStats](/api/rest-v2/platform.bulkPayout#PlatformBulkPayoutStatusStats)** 일괄지급 상태별 통계에 `scheduled`상태인 일괄지급 건 수가 추가되었습니다.
|
|
31812
33449
|
- **`scheduled: integer`** 예약된 일괄지급 건 수
|
|
31813
33450
|
|
|
31814
33451
|
#### ✔️ 지급 내역 다건 조회
|
|
31815
33452
|
|
|
31816
33453
|
지급 내역 다건 조회 응답값이 수정되었습니다.
|
|
31817
33454
|
|
|
31818
|
-
- **`items`: [PlatformPayout\[\]](/api/rest-v2/
|
|
33455
|
+
- **`items`: [PlatformPayout\[\]](/api/rest-v2/platform.payout#PlatformPayout)** 지급 내역에 필드가 추가되었습니다.
|
|
31819
33456
|
- **`scheduledAt?: string`** 지급 예정일시
|
|
31820
|
-
- **`status`: [PlatformPayoutStatus](/api/rest-v2/
|
|
33457
|
+
- **`status`: [PlatformPayoutStatus](/api/rest-v2/platform.payout#PlatformPayoutStatus)** 지급 상태에 `SCHEDULED` (예약됨) 상태가 추가되었습니다.
|
|
31821
33458
|
|
|
31822
|
-
- **`counts`: [PlatformPayoutStatusStats](/api/rest-v2/
|
|
33459
|
+
- **`counts`: [PlatformPayoutStatusStats](/api/rest-v2/platform.payout#PlatformPayoutStatusStats)** 지급 상태별 통계에 `scheduled` 상태인 지급 건 수가 추가되었습니다.
|
|
31823
33460
|
- **`scheduled: integer`** 예약된 지급 건 수
|
|
31824
33461
|
|
|
31825
33462
|
#### ✔️ 정산 내역 다건 조회
|
|
31826
33463
|
|
|
31827
33464
|
정산 내역 다건 조회 응답값이 수정되었습니다.
|
|
31828
33465
|
|
|
31829
|
-
- **`items`: [PlatformPartnerSettlement\[\]](/api/rest-v2/
|
|
31830
|
-
- **`status`: [PlatformPartnerSettlementStatus](/api/rest-v2/
|
|
33466
|
+
- **`items`: [PlatformPartnerSettlement\[\]](/api/rest-v2/platform.partnerSettlement#PlatformPartnerSettlement)** 정산 내역에 필드가 추가되었습니다.
|
|
33467
|
+
- **`status`: [PlatformPartnerSettlementStatus](/api/rest-v2/platform.partnerSettlement#PlatformPartnerSettlementStatus)** 정산 상태에 `PAYOUT_SCHEDULED` (지급 예약) 상태가 추가되었습니다.
|
|
31831
33468
|
|
|
31832
|
-
- **`counts`: [PlatformPartnerSettlementStatusStats](/api/rest-v2/
|
|
33469
|
+
- **`counts`: [PlatformPartnerSettlementStatusStats](/api/rest-v2/platform.partnerSettlement#PlatformPartnerSettlementStatusStats)** 정산 상태별 통계에 payoutScheduled 상태인 정산 내역 건 수가 추가되었습니다.
|
|
31833
33470
|
- **`payoutScheduled: integer`** 지급 예약된 정산 내역 건 수
|
|
31834
33471
|
|
|
31835
33472
|
---
|
|
@@ -32178,8 +33815,8 @@ writtenAt: 2025-02-10T00:00:00.000Z
|
|
|
32178
33815
|
|
|
32179
33816
|
> 영향 API : [정산건 조회](https://developers.portone.io/api/rest-v2/platform.transfer?v=v2#get%20%2Fplatform%2Ftransfers%2F%7Bid%7D), [주문 정산건 생성](https://developers.portone.io/api/rest-v2/platform.transfer?v=v2#post%20%2Fplatform%2Ftransfers%2Forder), [주문 취소 정산건 생성](https://developers.portone.io/api/rest-v2/platform.transfer?v=v2#post%20%2Fplatform%2Ftransfers%2Forder-cancel), [정산건 다건 조회](https://developers.portone.io/api/rest-v2/platform.transfer?v=v2#get%20%2Fplatform%2Ftransfer-summaries)
|
|
32180
33817
|
|
|
32181
|
-
- 사용자 정의 함수 : [PlatformOrderTransfer](https://developers.portone.io/api/rest-v2/
|
|
32182
|
-
- 정산 파라미터 : [PlatformOrderTransfer](https://developers.portone.io/api/rest-v2/
|
|
33818
|
+
- 사용자 정의 함수 : [PlatformOrderTransfer](https://developers.portone.io/api/rest-v2/platform.transfer?v=v2#PlatformOrderTransfer).amount.**userDefinedFormulas**
|
|
33819
|
+
- 정산 파라미터 : [PlatformOrderTransfer](https://developers.portone.io/api/rest-v2/platform.transfer?v=v2#PlatformOrderTransfer).**parameters**
|
|
32183
33820
|
|
|
32184
33821
|
더 궁금한 점이 있다면 고객 지원팀에 문의해 주세요! 🚀
|
|
32185
33822
|
|
|
@@ -33207,6 +34844,267 @@ GET /platform/transfers/{id}?test=true
|
|
|
33207
34844
|
- 기술지원 문의: <support.b2b@portone.io> / 파트너스 슬랙 채널
|
|
33208
34845
|
|
|
33209
34846
|
|
|
34847
|
+
# https://developers.portone.io/release-notes/platform/2026-02-19
|
|
34848
|
+
|
|
34849
|
+
---
|
|
34850
|
+
releasedAt: 2026-02-19T00:00:00.000Z
|
|
34851
|
+
writtenAt: 2026-02-19T00:00:00.000Z
|
|
34852
|
+
---
|
|
34853
|
+
|
|
34854
|
+
안녕하세요, 파트너 정산 자동화 팀입니다.
|
|
34855
|
+
|
|
34856
|
+
이번 업데이트에서는 세금 계산서 메뉴가 개편되고, 사용성을 대폭 개선하는 거래처 관리 기능을 새롭게 제공합니다. 또한 헬프센터 자주 묻는 질문에 세금계산서 카테고리가 신설되어 관련 안내를 보다 쉽게 찾으실 수 있습니다.
|
|
34857
|
+
|
|
34858
|
+
---
|
|
34859
|
+
|
|
34860
|
+
## 거래처 관리 기능 신규 제공
|
|
34861
|
+
|
|
34862
|
+
세금계산서 정발행·역발행 시 활용할 수 있는 거래처 관리 기능이 추가되었습니다.
|
|
34863
|
+
|
|
34864
|
+
"거래처 관리" 메뉴에서 거래처의 사업자 정보를 등록하고 관리할 수 있으며, CSV 또는 엑셀 파일로 일괄 등록도 가능합니다.
|
|
34865
|
+
|
|
34866
|
+
일괄 등록 시 사업자 정보 조회 및 휴폐업 상태 조회 실행 여부를 선택할 수 있습니다.
|
|
34867
|
+
|
|
34868
|
+
(이미지 첨부: 거래처 관리 화면)
|
|
34869
|
+
|
|
34870
|
+
---
|
|
34871
|
+
|
|
34872
|
+
## 세금계산서 작성에 따른 연동
|
|
34873
|
+
|
|
34874
|
+
세금계산서 작성 시 거래처 검색으로 공급받는자 정보를 간편하게 설정할 수 있습니다. 정발행 시 공급받는자가 거래처로 자동 등록되며, 역발행은 사전에 거래처 등록 및 국세청 연동이 필요합니다. 세금계산서 내역은 거래처 단위 또는 사업자등록번호 기준으로 검색할 수 있고, 일괄 등록 시 거래처 아이디로 자동 매핑됩니다.
|
|
34875
|
+
|
|
34876
|
+
(이미지 첨부: 세금계산서 작성 페이지 하단)
|
|
34877
|
+
|
|
34878
|
+
---
|
|
34879
|
+
|
|
34880
|
+
## 세금계산서 단독 고객사 메뉴 개편
|
|
34881
|
+
|
|
34882
|
+
세금계산서 단독 이용 고객사의 관리자 콘솔 메뉴가 아래와 같이 개편되었습니다.
|
|
34883
|
+
|
|
34884
|
+
세금계산서 > 세금계산서 작성 / 세금계산서 관리 / 거래처 관리
|
|
34885
|
+
|
|
34886
|
+
기존에 파트너 정산 자동화 탭에 있던 세금계산서 관련 기능이 독립 메뉴로 분리되어, 보다 직관적으로 접근할 수 있습니다.
|
|
34887
|
+
|
|
34888
|
+
(이미지 첨부: 포트원 관리자 콘솔 메뉴)
|
|
34889
|
+
|
|
34890
|
+
---
|
|
34891
|
+
|
|
34892
|
+
## 자주 묻는 질문에 세금계산서 탭 신설
|
|
34893
|
+
|
|
34894
|
+
헬프센터 자주 묻는 질문에 세금계산서 카테고리가 신설되었습니다. 거래처 관리, 정발행·역발행, 국세청 연동 등 세금계산서 관련 FAQ를 한 곳에서 확인하실 수 있습니다. 기존 파트너 정산 자동화 탭에 있던 세금계산서 관련 FAQ가 새로운 세금계산서 탭으로 이동되었습니다.
|
|
34895
|
+
|
|
34896
|
+
(이미지 첨부: 포트원 헬프센터 자주 묻는 질문)
|
|
34897
|
+
|
|
34898
|
+
---
|
|
34899
|
+
|
|
34900
|
+
작성일자: **2026년 2월 19일**
|
|
34901
|
+
|
|
34902
|
+
- 일반 문의: <cs@portone.io> / 채널톡
|
|
34903
|
+
- 기술지원 문의: <support.b2b@portone.io> / 파트너스 슬랙 채널
|
|
34904
|
+
|
|
34905
|
+
|
|
34906
|
+
# https://developers.portone.io/release-notes/platform/2026-03-06
|
|
34907
|
+
|
|
34908
|
+
---
|
|
34909
|
+
releasedAt: 2026-03-06T00:00:00.000Z
|
|
34910
|
+
writtenAt: 2026-03-06T00:00:00.000Z
|
|
34911
|
+
---
|
|
34912
|
+
|
|
34913
|
+
안녕하세요, 포트원 파트너 정산 자동화팀 입니다.
|
|
34914
|
+
|
|
34915
|
+
파트너 정산 자동화 제품에 대한 전반적인 사용성 개선과 안정화에 대한 업데이트가 진행됨에 따라 업데이트 사항을 안내해 드립니다.
|
|
34916
|
+
|
|
34917
|
+
---
|
|
34918
|
+
|
|
34919
|
+
## 정산 상세 내역의 상태 라벨 개선
|
|
34920
|
+
|
|
34921
|
+
정산 상세 내역에서 상태의 명칭이 불명확한 부분을 개선하였습니다.
|
|
34922
|
+
|
|
34923
|
+
|기존 |신규 |설명 |
|
|
34924
|
+
|---------|---------|----------------------------------------------------------------|
|
|
34925
|
+
|정산 예정|정산 예정|정산 시작일에 도래하지 않아 아직 금액 및 정산일 확정이 안된 경우|
|
|
34926
|
+
|정산 중 |정산 중 |정산 시작일을 지나 정산 금액 및 정산일이 확정된 상태 |
|
|
34927
|
+
|정산 완료|정산 확정|정산일이 지나 지급 가능한 상태 |
|
|
34928
|
+
|N/A |지급 확정|특정 지급건에 집계되어 이체 가능한 상태 |
|
|
34929
|
+
|이체 중 |지급 중 |지급이 예약되어 있거나 지급이 진행중인 상태 |
|
|
34930
|
+
|이체 완료|지급 완료|지급 및 정산이 완료된 상태 |
|
|
34931
|
+
|
|
34932
|
+
(이미지 첨부: 정산 상세 내역 상태 라벨 개선 화면)
|
|
34933
|
+
|
|
34934
|
+
---
|
|
34935
|
+
|
|
34936
|
+
## 정산 상세 내역 및 정산 내역 삭제 기능 지원
|
|
34937
|
+
|
|
34938
|
+
정산 내역 및 정산 상세 내역에 특정 상태인 데이터 삭제가 콘솔 및 API로 제공됩니다.
|
|
34939
|
+
|
|
34940
|
+
### 삭제 가능한 상태
|
|
34941
|
+
|
|
34942
|
+
- 정산 상세 내역(주문/수기 정산건): **정산 예정, 정산 중, 정산 확정**
|
|
34943
|
+
- 정산 내역: **지급 예정, 지급 보류, 지급 취소, 지급 제외**
|
|
34944
|
+
|
|
34945
|
+
### 유의 사항
|
|
34946
|
+
|
|
34947
|
+
- 삭제된 데이터에 대한 복원은 불가능합니다.
|
|
34948
|
+
- 정산 내역 건별 삭제 시 연관된 정산 상세 내역(주문/수기정산건)이 삭제 가능하다면 함께 삭제됩니다.
|
|
34949
|
+
|
|
34950
|
+
(이미지 첨부: 정산 내역/상세 내역 삭제 기능 (1))
|
|
34951
|
+
|
|
34952
|
+
(이미지 첨부: 정산 내역/상세 내역 삭제 기능 (2))
|
|
34953
|
+
|
|
34954
|
+
---
|
|
34955
|
+
|
|
34956
|
+
## 정산 내역 지급 예정 상태로 복원 시 오류 해결
|
|
34957
|
+
|
|
34958
|
+
기존 지급 보류/지급 실패 상태에서 지급 예정 상태로 변경 시 오류가 발생하였으나 해당 부분이 해결되었습니다.
|
|
34959
|
+
|
|
34960
|
+
위 오류는 상태 변경 과정에서 같은 집계 조건의 지급 예정 상태의 내역이 추가 생성된 경우 발생하는 오류로, 현재는 지급 예정 상태의 내역을 **중복 적재 가능**하게 개선하였습니다.
|
|
34961
|
+
|
|
34962
|
+
(이미지 첨부: 지급 예정 복원 오류 개선)
|
|
34963
|
+
|
|
34964
|
+
---
|
|
34965
|
+
|
|
34966
|
+
## 비활성화 가상 계좌 노출 지원
|
|
34967
|
+
|
|
34968
|
+
더즌 계좌 변경 안내에 따라서 신규 계좌 발급이 완료되었습니다. 다만 기존 계좌의 내역 조회를 지속 지원해드리기 위해 비활성 상태로 계좌 노출이 지원됩니다.
|
|
34969
|
+
|
|
34970
|
+
### 안내 사항
|
|
34971
|
+
|
|
34972
|
+
- 비활성 계좌도 이전 입출금 내역에 대해 확인하실 수 있습니다.
|
|
34973
|
+
- 비활성 계좌는 출금/지급 시 활용할 수 없으며, 잔액 조회가 불가합니다.
|
|
34974
|
+
|
|
34975
|
+
(이미지 첨부: 비활성화 가상 계좌 노출)
|
|
34976
|
+
|
|
34977
|
+
---
|
|
34978
|
+
|
|
34979
|
+
## 출금 시 입금 계좌 예금주 저장
|
|
34980
|
+
|
|
34981
|
+
기존 예치금 출금 시 조회된 입금 계좌 예금주가 이체 내역에 반영되지 않던 부분을 개선하였습니다. 배포 이후로 진행되는 모든 출금 건들에 대해서 입금 대상 계좌에 대한 예금주 정보가 저장됩니다.
|
|
34982
|
+
|
|
34983
|
+
---
|
|
34984
|
+
|
|
34985
|
+
## 이체 속도 개선
|
|
34986
|
+
|
|
34987
|
+
현재 이체 프로세스를 개선하여 기존보다 **3배 더 많은 이체 건**들을 병렬 처리할 수 있게 되었습니다.
|
|
34988
|
+
|
|
34989
|
+
(이미지 첨부: 이체 속도 개선)
|
|
34990
|
+
|
|
34991
|
+
---
|
|
34992
|
+
|
|
34993
|
+
## 정산 내역 ‘지급 제외’ 상태 추가
|
|
34994
|
+
|
|
34995
|
+
정산 내역 중 영구적으로 지급을 제외할 데이터를 관리하기 위한 “지급 제외” 상태를 추가합니다.
|
|
34996
|
+
|
|
34997
|
+
- 지급 보류/취소/예정 상태와 별개로 정산 내역에 “지급 제외” 상태가 추가됩니다.
|
|
34998
|
+
- “지급 제외” 상태는 지급이 불가능한 상태입니다. (지급 내역 확정 시 자동 제외됩니다.)
|
|
34999
|
+
- “지급 제외” 상태는 “지급 보류 / 지급 예정” 상태로 변경할 수 있습니다.
|
|
35000
|
+
- “지급 보류 / 취소 / 예정” 상태에서 “지급 제외” 상태로 변경할 수 있습니다.
|
|
35001
|
+
|
|
35002
|
+
(이미지 첨부: 정산 내역 ‘지급 제외’ 상태)
|
|
35003
|
+
|
|
35004
|
+
---
|
|
35005
|
+
|
|
35006
|
+
## 세금계산서 기능 개선
|
|
35007
|
+
|
|
35008
|
+
- 거래처 관리 엑셀 다운로드 시 주소/업태/업종 데이터가 추가됩니다.
|
|
35009
|
+
- ‘요청’ 상태의 세금계산서를 회수 없이 메일 주소만 변경하여 재전송 가능하도록 개선됩니다.
|
|
35010
|
+
- 세금계산서 메뉴에서 상태값 외 다른 항목(예: 발행일, 금액 등)으로도 필터 및 정렬(오름/내림차순) 가능하도록 개선됩니다.
|
|
35011
|
+
- 세금계산서 내역 관리에서 체크박스 일괄 ‘발행취소, 삭제, 재전송’ 기능이 가능하도록 개선됩니다.
|
|
35012
|
+
|
|
35013
|
+
---
|
|
35014
|
+
|
|
35015
|
+
## API 변경 사항 안내
|
|
35016
|
+
|
|
35017
|
+
### A. 정산 내역 삭제 API 제공
|
|
35018
|
+
|
|
35019
|
+
오등록되거나 재등록이 필요한 정산 데이터를 삭제하기 위해서 정산 내역 단위 삭제 API가 제공됩니다.\
|
|
35020
|
+
해당 정산 내역을 삭제하시게 되면 연관된 정산 상세 내역 데이터와 함께 삭제가 진행되므로 유의하여 활용해주시길 바랍니다.
|
|
35021
|
+
|
|
35022
|
+
```http
|
|
35023
|
+
POST /platform/partner-settlements/delete?test=false
|
|
35024
|
+
Content-Type: application/json
|
|
35025
|
+
|
|
35026
|
+
{
|
|
35027
|
+
"partnerSettlementIds": []
|
|
35028
|
+
}
|
|
35029
|
+
```
|
|
35030
|
+
|
|
35031
|
+
- _해당 API는 unstable 입니다._
|
|
35032
|
+
|
|
35033
|
+
---
|
|
35034
|
+
|
|
35035
|
+
### B. 정산 내역 일괄 지급 처리 API 제공
|
|
35036
|
+
|
|
35037
|
+
외화 정산 내역의 경우에는 현재 지급 대행 등이 제공되지 않아 지급 건을 수기 보정 요청주시던 부분에 대해서 직접 보정이 가능하도록 API를 제공합니다.
|
|
35038
|
+
해당 API를 활용하시면 자동적으로 일괄 지급 / 지급 내역 등을 생성하여 지급 완료 상태로 데이터가 보정됩니다.
|
|
35039
|
+
|
|
35040
|
+
```http
|
|
35041
|
+
POST /platform/partner-settlements/complete-payout?test=false
|
|
35042
|
+
Content-Type: application/json
|
|
35043
|
+
|
|
35044
|
+
{
|
|
35045
|
+
"bulkPayoutId": "",
|
|
35046
|
+
"name": "",
|
|
35047
|
+
"partnerSettlementIds": [],
|
|
35048
|
+
"completeAt": "2026-02-01"
|
|
35049
|
+
}
|
|
35050
|
+
```
|
|
35051
|
+
|
|
35052
|
+
- _해당 API는 unstable 입니다._
|
|
35053
|
+
|
|
35054
|
+
---
|
|
35055
|
+
|
|
35056
|
+
### C. 주문 정산 / 주문 취소 정산 / 수기 정산 등록 시 id 직접 지정 가능
|
|
35057
|
+
|
|
35058
|
+
중복 등록 방지 및 고객사 자체 아이디 매핑을 위해 주문/주문 취소/수기 정산 등록 시 id 필드를 직접 지정할 수 있습니다.
|
|
35059
|
+
id 필드가 지정되지 않은 경우에는 자동 생성되며 기존과 같이 활용하실 수 있습니다.
|
|
35060
|
+
|
|
35061
|
+
```http
|
|
35062
|
+
POST /platform/transfers/manual
|
|
35063
|
+
POST /platform/transfers/order
|
|
35064
|
+
POST /platform/transfers/order-cancel
|
|
35065
|
+
|
|
35066
|
+
Content-Type: application/json
|
|
35067
|
+
|
|
35068
|
+
{
|
|
35069
|
+
"id": "custom-id"
|
|
35070
|
+
// ... 기존 API 명세
|
|
35071
|
+
}
|
|
35072
|
+
```
|
|
35073
|
+
|
|
35074
|
+
참고: order-cancel 의 경우 transfer\_id 와 id 가 동시에 존재하는데, transfer\_id 는 기존과 같이 취소 대상 원본 주문 정산 건에 대한 식별자입니다.
|
|
35075
|
+
|
|
35076
|
+
---
|
|
35077
|
+
|
|
35078
|
+
### D. 정산 상세 다건 조회 API 사용자 정의 속성 검색 지원 및 성능 개선
|
|
35079
|
+
|
|
35080
|
+
정산 상세 내역 조회 시 사용자 정의 속성에 대한 지원이 추가됩니다. 접두사 일치로 검색이 지원됩니다.
|
|
35081
|
+
|
|
35082
|
+
```http
|
|
35083
|
+
POST /platform/transfer-summaries
|
|
35084
|
+
Content-Type: application/json
|
|
35085
|
+
|
|
35086
|
+
{
|
|
35087
|
+
"filter": {
|
|
35088
|
+
"userDefinedProperty": {
|
|
35089
|
+
"key": "USER DEFINED KEY",
|
|
35090
|
+
"value": "exact match"
|
|
35091
|
+
}
|
|
35092
|
+
}
|
|
35093
|
+
// ...
|
|
35094
|
+
}
|
|
35095
|
+
```
|
|
35096
|
+
|
|
35097
|
+
또한 정산 상세 다건 조회 시 파트너 정보 조회 비용을 최적화하여 조회 성능을 개선하였습니다.
|
|
35098
|
+
P50 기준 내부 테스트 결과 **60% 이상의 latency 감소**가 확인되었습니다.
|
|
35099
|
+
|
|
35100
|
+
---
|
|
35101
|
+
|
|
35102
|
+
작성일자: **2026년 3월 3일**
|
|
35103
|
+
|
|
35104
|
+
- 일반 문의: <cs@portone.io> / 채널톡
|
|
35105
|
+
- 기술지원 문의: <support.b2b@portone.io> / 파트너스 슬랙 채널
|
|
35106
|
+
|
|
35107
|
+
|
|
33210
35108
|
# https://developers.portone.io/blog/posts/2024-02/v2-oom
|
|
33211
35109
|
|
|
33212
35110
|
---
|
|
@@ -35751,3 +37649,123 @@ Event Sourcing의 경우 굉장히 낯선 기술이고, 국내에서 해당 기
|
|
|
35751
37649
|
|
|
35752
37650
|
과감한 결정을 한 만큼 장기적으로 그 효과는 강력할 것이라고 생각합니다.
|
|
35753
37651
|
Event Sourcing이라는 단단한 뿌리 위에서 폭발적으로 성장하는 포트원을 지켜봐 주세요!
|
|
37652
|
+
|
|
37653
|
+
|
|
37654
|
+
# https://developers.portone.io/blog/posts/2025-12/portone-chatbot
|
|
37655
|
+
|
|
37656
|
+
---
|
|
37657
|
+
title: 포트원 AI 챗봇이 반복되는 기술 문의를 획기적으로 단축한 비결
|
|
37658
|
+
description: 잘 만든 AI 서비스 하나로 1000개의 기술 문의를 대신한 이야기
|
|
37659
|
+
author: portone-io
|
|
37660
|
+
date: 2025-12-17T15:00:00.000Z
|
|
37661
|
+
tags:
|
|
37662
|
+
- AI
|
|
37663
|
+
- Chatbot
|
|
37664
|
+
---
|
|
37665
|
+
|
|
37666
|
+
안녕하세요, 온라인 비즈니스 결제 인프라를 만드는 포트원입니다.
|
|
37667
|
+
결제 연동은 복잡합니다. 개발 환경도 다르고, 사용하는 언어도 제각각이죠. 그러다 보니 포트원 CS 채널에는 하루에도
|
|
37668
|
+
수많은 '기술 문의'가 쏟아집니다.
|
|
37669
|
+
문제는 여기서 발생합니다. 고객의 질문은 고도화되는데, CS 담당자가 모든 개발 지식을 알 수는 없으니까요.
|
|
37670
|
+
결국 문의는 개발팀으로 넘어오고, "문의 - CS팀 - 개발자 - 답변 작성 - CS팀 - 고객"으로 이어지는 비효율의
|
|
37671
|
+
무한 루프가 시작됩니다.
|
|
37672
|
+
|
|
37673
|
+
**"이 단순 반복 업무를 AI가 대신할 수는 없을까?"**
|
|
37674
|
+
|
|
37675
|
+
최근 포트원이 공개한 AI 챗봇, ‘포트원 AI Assistant’ 프로젝트는 위 질문에서 시작되었습니다.
|
|
37676
|
+
해커톤에서 시작된 실험을 실제 서비스로 안착시키기까지, 포트원의 한지환 프로덕트 오너와 전우제 백엔드 엔지니어가
|
|
37677
|
+
함께한 치열했던 개발기를 공개합니다.
|
|
37678
|
+
|
|
37679
|
+
## ‘단순한 기술 문의의 반복, 어려워지는 온보딩’
|
|
37680
|
+
|
|
37681
|
+
포트원 개발팀은 단순한 기술 문의가 지속적으로 반복되며 개발자들이 CS답변에 쓰는 리소스가 점점 늘어나는 상황과,
|
|
37682
|
+
결제 연동 과정에서 고객들이 길어지는 상담으로 이탈하는 문제를 발견했습니다.
|
|
37683
|
+
|
|
37684
|
+
한지환 프로덕트 오너 : 포트원의 미션은 '온라인 비즈니스를 하고 있는 누구나 결제 연동을 쉽게 하는 것'입니다. 그런데
|
|
37685
|
+
아이러니하게도 연동 과정에서 고객들이 겪는 어려움을 해결해 주는 과정이 점점 느려졌어요. 기술 문의가 들어오면
|
|
37686
|
+
CS팀에서 개발자에게 전달하고, 개발자가 내용을 확인하고 답변을 줄 때까지 고객은 기다려야 했죠. 내부적으로도 리소스
|
|
37687
|
+
낭비가 심했습니다. 개발자들이 코드 짜는 시간보다 기술 문의 답변을 검수해 주는 시간이 점점 늘어나기 시작했거든요.
|
|
37688
|
+
|
|
37689
|
+
전우제 엔지니어 : 반복되는 기술 문의를 들여다보면 패턴이 보였어요. "결제 연동 오류가 나요"라고 하는데, 살펴보면
|
|
37690
|
+
뻔한 실수인 경우가 많았죠. 개발자가 보면 1초 만에 아는 내용인데, CS팀을 거치다 보니 답변이 늦어지는 상황이
|
|
37691
|
+
반복됐습니다. 이 시간을 단축하고 싶다는 니즈는 개발팀 내에서도 꽤 오래전부터 있었습니다
|
|
37692
|
+
|
|
37693
|
+
## 해커톤이 가져다준 AI 실험 기회
|
|
37694
|
+
|
|
37695
|
+
이 문제를 해결하기 위해 처음부터 거창한 프로젝트를 띄운 건 아니었습니다.
|
|
37696
|
+
시작은 포트원 개발팀이 참여한 'AWS X 메가존 해커톤'이었습니다.
|
|
37697
|
+
|
|
37698
|
+
전우제 엔지니어 : 사실 이 아이디어가 해커톤 메인 출품작은 아니었어요.
|
|
37699
|
+
하지만 해커톤 기간 동안 AWS Bedrock과 Claude 모델을 마음껏 테스트해 볼 수 있는 '크레딧'이 생겼다는 게 중요했습니다. 회사 입장에서 AI 도입의 가장 큰 장벽은 '비용'이거든요.
|
|
37700
|
+
|
|
37701
|
+
"이게 진짜 될까?" 싶은 아이디어를 비용 걱정 없이 검증해 볼 수 있는 완벽한 타이밍이었죠.
|
|
37702
|
+
그때 얻은 'AI 서비스 구성 감각'이 실제 제품 개발로 이어지는 결정적인 트리거가 됐습니다.
|
|
37703
|
+
|
|
37704
|
+
## AI를 '답변 기계'가 아닌 '사고 파트너'로
|
|
37705
|
+
|
|
37706
|
+
가장 큰 기술적 난관은 AI 챗봇의 고질병인 '할루시네이션(거짓 답변)'이었습니다.
|
|
37707
|
+
결제 연동 가이드에서 없는 함수를 있다고 하거나, 잘못된 파라미터를 알려주면 치명적이니까요.
|
|
37708
|
+
|
|
37709
|
+
보통은 이를 해결하기 위해 RAG(검색 증강 생성)와 Vector DB를 사용하지만,
|
|
37710
|
+
포트원 개발팀은 조금 다른 접근을 택했습니다.
|
|
37711
|
+
|
|
37712
|
+
### Vector DB 없는 RAG? "MCP의 도입"
|
|
37713
|
+
|
|
37714
|
+
초기 테스트 결과, 단순히 문서를 쪼개서 Vector DB에 넣고 검색하는 방식은 한계가 명확했습니다. 문맥이 잘린 채
|
|
37715
|
+
검색되다 보니 AI가 엉뚱한 문서를 참고해서 답변하는 경우가 많았죠.
|
|
37716
|
+
|
|
37717
|
+
그래서 우리는 MCP(Model Context Protocol) 개념을 적극적으로 도입했습니다.
|
|
37718
|
+
|
|
37719
|
+
쉽게 말해, AI에게 미리 정답지(문서 조각)를 쥐여주는 게 아니라, "네가 모르는 게 있으면
|
|
37720
|
+
우리 개발자 문서 도구(Tool)를 사용해서 직접 검색해 봐"라고 시키는 방식입니다. AI를 단순 답변기가 아니라,
|
|
37721
|
+
문서를 검색하고 내용을 판단하는 '사고 파트너(Thinking Partner)'로 설계한 것이죠.
|
|
37722
|
+
|
|
37723
|
+
### 비용과 성능의 줄타기 (Claude 4.0 Sonnet)
|
|
37724
|
+
|
|
37725
|
+
모델 선정도 치열했습니다. 성능이 좋은 모델은 비싸고, 싼 모델은 답변 품질이 다소 낮습니다.
|
|
37726
|
+
|
|
37727
|
+
비용 절감과 품질 사이에서 고민하다 결국 Claude 4.0 Sonnet을 채택했습니다. 저렴하지 않은 모델을 썼음에도 비용은
|
|
37728
|
+
오히려 통제 가능했습니다.
|
|
37729
|
+
|
|
37730
|
+
- MCP 서버를 최적화하여 불필요한 토큰 소모를 줄였습니다.
|
|
37731
|
+
- 답변의 정확도가 올라가니, 사용자가 여러 번 다시 묻는 횟수가 줄어들어 전체적인 토큰 사용량은 합리적인 수준(하루 100건 사용 기준 월 $25\~30 내외)으로 유지되었습니다.
|
|
37732
|
+
|
|
37733
|
+
### "기다림도 UX다"
|
|
37734
|
+
|
|
37735
|
+
(관련 이미지 첨부)
|
|
37736
|
+
|
|
37737
|
+
LLM의 답변 속도를 우리가 직접 획기적으로 줄이는 건 불가능했죠. 대신 이용자 입장에서의
|
|
37738
|
+
'체감 시간'을 줄이려고 했습니다.
|
|
37739
|
+
단순히 로딩 바가 도는 게 아니라, "현재 개발자 문서를 검색하고 있습니다...", "관련 내용을 분석 중입니다..." 처럼
|
|
37740
|
+
AI가 현재 수행 중인 작업을 실시간으로 보여주었습니다. (Perplexity나 Gemini처럼요.) 이 작은 장치가 고객이
|
|
37741
|
+
이탈하지 않고 답변을 기다리게 만드는 핵심 UX가 되었습니다.
|
|
37742
|
+
|
|
37743
|
+
## AI 챗봇 도입 성과 : "CS 문의가 줄었습니다"
|
|
37744
|
+
|
|
37745
|
+
(관련 이미지 첨부)
|
|
37746
|
+
|
|
37747
|
+
포트원 AI 챗봇 도입 3주 차, 변화는 데이터로 나타나고 있습니다.
|
|
37748
|
+
|
|
37749
|
+
한지환 프로덕트 오너 : CS팀에서 먼저 피드백이 왔어요. "체감상 기술 문의가 확 줄었다"고요. 하루 평균 약 50\~100건
|
|
37750
|
+
정도의 문의를 AI가 처리하고 있습니다. 도입 후 약 1,000건의 문의를 처리했죠. 특히 "API 키 어디서 찾나요?",
|
|
37751
|
+
"이 오류 코드는 뭔가요?" 같은 단순 문의는 AI 챗봇 선에서 대부분 해결됩니다.
|
|
37752
|
+
|
|
37753
|
+
재미있는 건 개발자들의 반응입니다. "CS팀에서 넘어오는 기술 문의 난이도가 올라갔다"고 해요.
|
|
37754
|
+
|
|
37755
|
+
전우제 엔지니어 : 예전엔 "뭐가 안 돼요"라는 단순한 질문이 왔다면, 이제는 AI를 통해 1차적인 해결을 시도해 본
|
|
37756
|
+
고객들이 "AI 챗봇을 보고 여기까지 해봤는데, 이 부분에서 막힙니다"라고 구체적인 질문을 던집니다.
|
|
37757
|
+
|
|
37758
|
+
비효율적인 핑퐁이 사라지고, 개발자와 CS팀 모두가 '진짜 해결해야 할 문제'에 집중할 수 있게 된 것입니다.
|
|
37759
|
+
|
|
37760
|
+
## 포트원의 다음 미션 : "결제 연동, 클릭 한 번으로 해결"
|
|
37761
|
+
|
|
37762
|
+
포트원 AI Assistant는 이제 시작입니다. 포트원은 '단순히 질문을 답변해주는 봇'을 넘어 '결제를 직접 연동하는
|
|
37763
|
+
에이전트(Agent)'를 꿈꿉니다.
|
|
37764
|
+
|
|
37765
|
+
한지환 프로덕트 오너 : 지금은 "PG 어떻게 연동해요?"라고 물으면 방법을 알려주죠. 하지만 포트원이 준비하는
|
|
37766
|
+
다음 단계는 그 이상입니다. 고객의 깃허브(Github)를 AI가 분석하고, 프로젝트 환경에 맞는 결제 연동 코드를 직접
|
|
37767
|
+
짜서 PR(Pull Request)까지 날려주는 단계. 이미 PoC(개념 검증)는 마쳤고 개발이 진행 중입니다.
|
|
37768
|
+
|
|
37769
|
+
개발자가 더 이상 단순 반복 업무에 시달리지 않는 세상, 누구나 말 한마디로 결제를 연동하는 세상.
|
|
37770
|
+
|
|
37771
|
+
포트원의 ‘AI를 활용한 결제 연동 경험 혁신’은 이제 막 본궤도에 올랐습니다.
|