결제 설정
결제 설정 페이지는 결제 제공업체와 환경별로 실제 결제 연결 정보를 관리하는 화면입니다. 결제를 처리하기 위해 필요한 상세 설정값을 입력하는 곳입니다.
Payment Providers에서는 Stripe, Authorize.Net 같은 결제 회사를 등록합니다. Payment Configs에서는 API Key, Transaction Key, Webhook Secret, 환경, 도메인 URL, Capture Mode, 3DS, 추가 Meta 설정 같은 상세 결제 정보를 입력합니다.
화면 개요
Payment Configs는 환경별 결제 설정입니다. 하나의 결제 제공업체는 TEST용 설정과 LIVE용 설정을 각각 가질 수 있습니다.
| 메뉴 | 목적 |
|---|---|
| Payment Providers | 결제 회사, 제공업체 코드, 활성 상태, 정렬 순서를 정의합니다. |
| Payment Configs | 각 제공업체와 환경에 대한 실제 결제 연결 설정을 정의합니다. |
Config 목록
Config 목록에서는 결제 제공업체, 환경, 표시 이름, MerchantKey, 3DS 상태, Capture Mode, 활성 상태, 마지막 수정일을 확인할 수 있습니다.
상단 기능
| 버튼 또는 필터 | 설명 |
|---|---|
| + New | 새 결제 설정을 만들기 위해 Config Edit 화면을 엽니다. |
| All Providers | 결제 제공업체 기준으로 설정을 필터링합니다. |
| All Env | TEST 또는 LIVE 같은 환경 기준으로 설정을 필터링합니다. |
| All | 활성 상태 또는 기타 상태 조건으로 설정을 필터링합니다. |
| Keyword | Provider, DisplayName, MerchantKey 또는 관련 설정 문구로 검색합니다. |
| Search | 선택한 조건으로 검색을 실행합니다. |
Config 테이블
| 컬럼 | 설명 |
|---|---|
| ID | 내부 Config ID입니다. |
| Provider | 이 설정과 연결된 결제 제공업체입니다. 예: Authorize.Net, Stripe. |
| Env | 이 설정의 환경입니다. 예: TEST, LIVE. |
| DisplayName | 이 결제 설정을 구분하기 위한 표시 이름입니다. |
| MerchantKey | 제공업체에 따라 사용하는 가맹점 키 또는 계정 식별값입니다. |
| 3DS | 3D Secure 사용 여부를 표시합니다. |
| Capture | AUTO 또는 수동 캡처 같은 Capture Mode를 표시합니다. |
| Active | 현재 설정이 활성 상태인지 표시합니다. |
| Updated | 마지막 수정 날짜와 시간입니다. |
| Manage | Edit, Toggle, Delete 같은 관리 기능을 제공합니다. |
Config Edit
Config Edit 화면은 결제 게이트웨이의 상세 설정을 새로 만들거나 수정할 때 사용합니다. 화면은 Core, Keys, Advanced, Summary 영역으로 구성됩니다.
Core 영역
Core 영역에서는 제공업체, 환경, 활성 상태, MerchantKey, DisplayName을 설정합니다.
| 항목 | 설명 |
|---|---|
| Provider | 이 설정에 사용할 결제 제공업체를 선택합니다. 등록된 Provider만 선택할 수 있습니다. |
| Environment | TEST 또는 LIVE 같은 환경을 선택합니다. |
| IsActive | 이 설정을 결제 시스템에서 사용할 수 있는지 여부를 결정합니다. |
| MerchantKey | 제공업체에 따라 사용하는 Merchant Key, Account Key, Merchant ID 등을 저장합니다. |
| DisplayName | 관리자가 설정을 구분하기 쉽게 표시하는 이름입니다. |
Provider
설정할 결제 제공업체를 선택합니다. Provider를 선택하면 시스템이 해당 제공업체에 필요한 입력 항목만 자동으로 보여줄 수 있습니다.
Stripe, Authorize.Net 같은 기본 제공업체에는 기본 규칙이 적용됩니다.
Environment
Environment는 이 설정이 테스트 결제용인지 실제 결제용인지 결정합니다.
| 환경 | 의미 |
|---|---|
| TEST | Sandbox 또는 테스트 결제 처리에 사용합니다. 실제 운영 전 반드시 테스트 환경에서 먼저 확인하는 것이 좋습니다. |
| LIVE | 실제 결제 처리에 사용합니다. 설정 검증이 끝난 후에만 사용해야 합니다. |
IsActive
IsActive가 true이면 이 설정을 사용할 수 있습니다.
false이면 해당 설정은 비활성화됩니다.
Keys 영역
Keys 영역에는 제공업체별 인증 및 연결 값을 저장합니다. 선택한 Provider에 따라 입력 항목의 의미가 달라질 수 있습니다.
Stripe에서는 일반적으로 pk/sk/whsec 값을 사용합니다. Authorize.Net에서는 일반적으로 LoginId와 TransactionKey를 사용합니다.
| 항목 | 설명 |
|---|---|
| ApiKeyPublic | Public API Key 또는 API Login ID입니다. Authorize.Net에서는 API Login ID로 사용할 수 있습니다. |
| ApiKeySecret | Secret Key 또는 Transaction Key입니다. Authorize.Net에서는 Transaction Key로 사용할 수 있습니다. |
| WebhookSecret | Webhook 요청의 서명을 검증하기 위한 Signature Key 또는 Secret 값입니다. |
| EndpointBaseUrl | 결제 Return, Cancel, Webhook, Callback 흐름에 사용하는 기본 도메인 또는 Endpoint URL입니다. |
ApiKeyPublic
결제 게이트웨이에서 제공하는 Public Key, Publishable Key 또는 API Login ID를 입력합니다.
ApiKeySecret
결제 게이트웨이에서 제공하는 Secret Key, Private Key 또는 Transaction Key를 입력합니다. 이 값은 외부에 노출되면 안 됩니다.
WebhookSecret
결제 제공업체가 Webhook 검증을 사용하는 경우 Webhook Signature Secret을 입력합니다. 이 값은 실제 결제 제공업체가 보낸 요청인지 확인하는 데 사용됩니다.
EndpointBaseUrl
결제 흐름에서 사용할 기본 도메인을 입력합니다.
예:
https://your-domain.com
https://your-ngrok-domain.ngrok-free.dev
로컬 테스트에서는 ngrok 같은 임시 공개 URL을 사용할 수 있습니다. 운영 환경에서는 반드시 HTTPS가 적용된 실제 웹사이트 도메인을 사용하는 것이 좋습니다.
Advanced 영역
Advanced 영역에서는 결제 정책, 위험 수준, 캡처 방식, 3DS, 정산일, MetaJson, 내부 메모를 관리합니다.
| 항목 | 설명 |
|---|---|
| Currency | 결제 통화입니다. 예: USD. |
| RiskLevel | 내부 위험 수준입니다. 보통 1에서 5 사이의 값으로 관리합니다. |
| SettlementDays | 정산까지 예상되는 일수입니다. |
| Enable3DS | 3D Secure 사용 여부를 결정합니다. |
| CaptureMode | 결제를 자동으로 캡처할지 수동으로 캡처할지 결정합니다. |
| MetaJson | 별도 입력 항목이 없는 추가 제공업체 설정을 JSON 형식으로 저장합니다. |
| Notes | 관리자용 내부 메모입니다. 민감한 인증 정보는 저장하지 않는 것이 좋습니다. |
Currency
이 결제 설정에서 사용할 통화를 선택합니다.
예:
USD - US Dollar
RiskLevel
RiskLevel은 이 결제 설정의 위험 정책을 구분하기 위한 내부 값입니다. 일반적으로 낮은 값은 낮은 위험, 높은 값은 더 엄격한 검토가 필요할 수 있음을 의미합니다.
SettlementDays
SettlementDays는 결제 금액이 정산되기까지 예상되는 일수입니다. 실제 정산 기간은 결제 제공업체와 가맹점 계정 설정에 따라 달라질 수 있습니다.
Enable3DS
Enable3DS는 3D Secure 인증 사용 여부를 결정합니다. 항목이 비활성화되어 있다면 현재 선택한 제공업체 또는 환경에서 3DS를 지원하지 않을 수 있습니다.
CaptureMode
CaptureMode는 결제를 언제 캡처할지 결정합니다.
| Capture Mode | 설명 |
|---|---|
| AUTO | 승인 후 결제가 자동으로 캡처됩니다. |
| MANUAL | 먼저 승인만 진행하고, 이후 관리자나 시스템 프로세스가 별도로 캡처합니다. |
MetaJson
MetaJson은 별도의 입력 항목이 없는 추가 설정값을 JSON 형식으로 저장하는 영역입니다. 이 필드는 반드시 올바른 JSON 형식이어야 합니다.
{
"hostedPaymentPageId": "12345678",
"returnPath": "/ShowPage/iCheckout/Return",
"cancelPath": "/ShowPage/iCheckout/Cancel",
"transactionType": "authCaptureTransaction",
"showReceipt": true
}
자주 사용하는 MetaJson 항목
| 키 | 설명 |
|---|---|
| hostedPaymentPageId | 제공업체가 Hosted Payment Page를 사용하는 경우 페이지 ID를 저장합니다. |
| returnPath | 결제 완료 후 돌아올 경로입니다. |
| cancelPath | 고객이 결제를 취소했을 때 이동할 경로입니다. |
| transactionType | 승인만 할지, 승인과 캡처를 동시에 할지 같은 제공업체 거래 유형입니다. |
| showReceipt | 지원되는 경우 결제 영수증 화면 표시 여부를 결정합니다. |
MetaJson은 반드시 유효한 JSON이어야 합니다. JSON 형식이 잘못되면 결제 설정이 정상적으로 동작하지 않을 수 있습니다.
Summary 패널
Summary 패널은 현재 설정 상태를 빠르게 확인할 수 있는 영역입니다. 선택된 Provider, ProviderCode, Environment, Active 상태를 보여줍니다.
저장하기 전에 Summary 패널에서 선택한 제공업체와 환경이 맞는지 확인하는 것이 좋습니다.
권장 작업 순서
- Admin > Payment > Configs 메뉴로 이동합니다.
- 새 설정을 만들려면 + New를 클릭하고, 기존 설정을 수정하려면 Edit를 클릭합니다.
- Provider를 선택합니다.
- Environment를 TEST 또는 LIVE로 선택합니다.
- IsActive 상태를 설정합니다.
- MerchantKey와 DisplayName을 입력합니다.
- Keys 영역에 제공업체별 키 정보를 입력합니다.
- EndpointBaseUrl을 입력합니다.
- Currency, RiskLevel, SettlementDays, 3DS, CaptureMode를 설정합니다.
- 추가 설정이 필요하면 올바른 JSON 형식으로 MetaJson을 입력합니다.
- Summary 패널을 확인합니다.
- Save 버튼을 클릭합니다.
- LIVE 환경에서 사용하기 전 TEST 환경에서 결제 흐름을 검증합니다.
자주 사용하는 작업
| 상황 | 권장 작업 |
|---|---|
| Authorize.Net 테스트 설정 생성 | Authorize.Net을 선택하고 환경을 TEST로 설정한 뒤 API Login ID와 Transaction Key를 입력하고 저장합니다. |
| LIVE 결제 설정 생성 | 환경을 LIVE로 설정하고 운영용 인증 정보를 입력한 뒤 신중하게 테스트합니다. |
| 결제 처리 임시 중지 | Config를 수정하여 IsActive를 false로 변경합니다. |
| Hosted Payment Page 사용 | MetaJson에 Hosted Payment Page 관련 값을 입력합니다. |
| Return 또는 Cancel URL 변경 | EndpointBaseUrl과 MetaJson의 관련 경로를 수정합니다. |
주의사항
- Payment Configs에는 민감한 결제 연결 정보가 저장됩니다. 신뢰할 수 있는 관리자만 접근할 수 있어야 합니다.
- LIVE 환경을 사용하기 전에 반드시 TEST 환경에서 결제 설정을 검증하세요.
- 운영용 EndpointBaseUrl은 반드시 HTTPS를 사용하는 것이 좋습니다.
- Secret Key는 Notes가 아니라 지정된 Key 입력 항목에 저장하세요.
- 저장 전 MetaJson이 올바른 JSON 형식인지 확인하세요.
- 기존 거래와 연결된 Config는 영향 범위를 이해하지 못한 상태에서 삭제하지 않는 것이 좋습니다.
- 같은 Provider에 여러 Config가 있을 경우 DisplayName을 명확하게 작성하세요.
문제 해결
| 문제 | 가능한 원인 | 해결 방법 |
|---|---|---|
| Payment Provider가 보이지 않음 | Provider가 등록되지 않았거나 비활성 상태일 수 있습니다. | Payment > Providers에서 Provider가 활성 상태인지 확인합니다. |
| TEST 모드에서 결제 실패 | Sandbox 인증 정보가 잘못되었거나 Endpoint URL에 접근할 수 없을 수 있습니다. | API Key, Environment, EndpointBaseUrl, Sandbox 계정 설정을 확인합니다. |
| LIVE 모드에서 결제 실패 | 운영용 인증 정보가 잘못되었거나 가맹점 계정이 승인되지 않았을 수 있습니다. | 운영용 인증 정보와 결제 제공업체 계정 상태를 확인합니다. |
| Webhook 검증 실패 | WebhookSecret이 없거나 잘못되었을 수 있습니다. | 결제 제공업체 관리자 화면에서 올바른 Webhook Signature Key를 확인하여 입력합니다. |
| Return URL이 동작하지 않음 | EndpointBaseUrl 또는 MetaJson의 returnPath가 잘못되었을 수 있습니다. | EndpointBaseUrl과 MetaJson 경로를 확인합니다. |
| Config 저장 실패 | 필수 항목이 비어 있거나 MetaJson 형식이 잘못되었을 수 있습니다. | 필수 입력값을 채우고 JSON 형식을 검증합니다. |
관리 권장 사항
- TEST용 Config와 LIVE용 Config를 분리해서 관리하세요.
Authorize.Net (Test),Authorize.Net (Live)처럼 DisplayName을 명확하게 작성하세요.- 거래 기록이 남아 있다면 오래된 Config는 삭제보다 비활성화를 권장합니다.
- 결제 제공업체의 보안 정책에 따라 주기적으로 Key를 교체하세요.
- 도메인, 체크아웃 URL, Webhook 설정이 변경되면 Config 값을 다시 확인하세요.
- 이 화면에는 민감한 결제 설정이 포함되므로 접근 권한을 제한하세요.
Payment Configs는 실제 결제 처리를 위해 반드시 필요한 설정입니다. Provider는 결제 회사를 정의하고, Config는 iBoard가 특정 환경에서 그 회사와 어떻게 연결되는지를 정의합니다.