VibeFox Viva Wallet for OpenCart — 도움말
요구 사항
OpenCart: 3.0.x(3.0.5.0에서 테스트됨) 또는 4.0.2 이상(4.1.0.3에서 테스트됨).
PHP: 8.0 이상.
Viva 계정: Viva 가맹점 계정. 테스트에는 데모 계정(demo.vivapayments.com)을, 실제 결제에는 라이브 계정(www.vivapayments.com)을 사용할 수 있습니다. 각 계정마다 고유한 인증 정보가 있습니다. 결제를 위해서는 Smart Checkout 인증 정보(Client ID 및 Client Secret)와 결제 소스의 Source Code가 필요합니다. Merchant ID와 API Key는 선택 사항이며, Viva의 웹훅 URL 확인에 응답하는 데에만 사용됩니다.
통화: EUR, GBP, PLN, RON, BGN, CZK, HUF, DKK, SEK, NOK 또는 CHF. 쇼핑몰에서 고객이 선택한 통화가 이 중 하나여야 합니다. 다른 통화에서는 체크아웃 시 결제 수단이 표시되지 않습니다.
VibeFox 라이선스 키: vibefox.net에서 구매합니다. 키 하나는 도메인 하나에서 사용할 수 있습니다.
설치
다운로드 파일은 두 OpenCart 버전용 패키지가 들어 있는 하나의 zip 파일입니다. 컴퓨터에서 압축을 푸세요. 여기에는 README.txt, OpenCart 3용 패키지 wcp_viva_gateway-oc3-(version).ocmod.zip, OpenCart 4용 패키지 wcp_viva_gateway.ocmod.zip이 들어 있습니다. 사용 중인 OpenCart 버전의 패키지만 설치하세요. 라이선스 키는 두 버전에서 같습니다.
OpenCart 3
1. 관리자 페이지에서 Extensions > Installer로 이동하여 Upload를 클릭하고 wcp_viva_gateway-oc3-(version).ocmod.zip 파일을 선택합니다. 이 확장 기능에는 OCMOD 수정 사항이 없으므로 Extensions > Modifications를 새로 고칠 필요가 없습니다. 설치 도구 대신 이 패키지의 upload 폴더 내용을 쇼핑몰의 루트 폴더에 복사할 수도 있습니다.
2. Extensions > Extensions로 이동하여 유형을 Payments로 선택합니다. VibeFox Viva Wallet Gateway를 찾아 Install(녹색 + 버튼)을 클릭합니다. 관리자 사용자에게 결제 확장 기능 목록을 수정할 권한이 있어야 합니다.
3. Edit(연필 버튼)를 클릭하여 설정 페이지를 엽니다. 페이지 상단의 라이선스 블록에 있는 License key 항목에 VibeFox 라이선스 키를 입력하고 Activate를 클릭합니다(License key 참조).
4. Viva의 데모 및/또는 라이브 계정 인증 정보를 입력하고, Viva 계정에서 결제 소스와 웹훅을 설정합니다(Configuration 참조).
5. Enable/Disable을 켜고 Save를 클릭합니다. Test Mode가 켜진 상태에서 Viva 데모 카드로 데모 결제를 진행한 후, Test Mode를 끄면 실제 운영을 시작합니다.
OpenCart 4
1. 관리자 페이지에서 Extensions > Installer로 이동하여 Upload를 클릭하고 wcp_viva_gateway.ocmod.zip 파일을 선택합니다. 파일 이름을 바꾸지 마세요. OpenCart 4는 확장 기능 코드를 파일 이름에서 가져오므로, 이름을 바꾼 패키지는 작동하지 않습니다.
2. 패키지가 같은 페이지의 설치된 확장 기능 목록에 나타납니다. 그 옆의 Install(녹색 + 버튼)을 클릭하세요.
3. Extensions > Extensions로 이동하여 유형으로 Payments를 선택합니다. VibeFox Viva Wallet Gateway를 찾아 Install(녹색 + 버튼)을 클릭한 다음 Edit(연필 버튼)를 클릭하세요.
4. OpenCart 3의 3~5단계와 같이 라이선스 키, Viva 인증 정보, 결제 소스, 웹훅을 입력하세요. 설정 페이지와 그 항목은 두 버전이 같습니다. Viva 계정 주소만 다릅니다(Configuration 참조).
새로 설치하면 결제 수단은 꺼진 상태이고 테스트 모드는 켜진 상태로 시작합니다.
설정
모든 설정은 확장 기능 페이지에 있습니다: Extensions > Extensions > Payments > VibeFox Viva Wallet Gateway > Edit. 섹션은 왼쪽에 나열되며, 목록 아래의 Save 버튼은 페이지 전체를 저장합니다. 설정 위에서는 현재 모드에 Client ID, Client Secret 또는 Source Code가 없을 때(Viva Wallet is hidden at checkout until the Demo Client ID, Client Secret and Source Code are entered., 라이브 모드에서는 Live) 경고하며, 쇼핑몰의 기본 통화가 지원되지 않을 때도 경고합니다. 테스트 모드가 켜져 있으면 Test mode is on: payments go to the Viva demo environment.라고 표시됩니다. 확장 기능을 수정할 권한이 없으면 페이지에서 설정은 볼 수 있지만 저장할 수는 없습니다.
저장할 때 Title은 비워 둘 수 없고 128자 이하여야 합니다(Enter a title for the payment method (at most 128 characters).). Sort Order는 정수여야 합니다(Sort Order must be a whole number.). Total은 0 이상의 숫자여야 합니다(Total: enter a number, 0 or greater.). 선택한 지역과 주문 상태도 존재해야 합니다. 그렇지 않으면 아무것도 저장되지 않고 페이지에 오류가 표시됩니다. 설정을 저장하면 캐시된 Viva 액세스 토큰이 삭제되므로 새 인증 정보가 즉시 사용됩니다.
Viva Wallet
Enable/Disable: Enable Viva Wallet payment gateway로 결제 수단을 켜거나 끕니다. 기본값: off.
Title: 고객이 체크아웃에서 보는 결제 수단 이름입니다. 주문에도 이 이름이 결제 수단으로 저장됩니다. 기본값: Viva Wallet. 필수 항목이며 128자 이하입니다.
Description: Confirm Order 단계에서 확인 버튼 위에 고객에게 표시되는 텍스트입니다. 기본값: Pay securely with Viva Wallet — cards, Apple Pay, Google Pay and more.
Test Mode: Viva 데모 환경(demo.vivapayments.com)을 사용합니다. 새 결제와 API 호출은 데모 계정 인증 정보를 사용합니다. 실제 금액은 청구되지 않으며, Confirm Order 단계에서 고객에게 (Test mode: use Viva demo cards, no real money is charged.)가 표시됩니다. 기본값: on. 라이브 계정으로 실제 결제를 받으려면 끕니다. 이미 완료된 결제는 결제가 이루어진 환경에서 계속 확인되고 환불됩니다.
Sort Order: 체크아웃에서 Viva Wallet이 결제 수단 중 표시되는 위치입니다. 비워 두거나 정수를 입력할 수 있으며, 음수도 허용됩니다.
Geo Zone: 선택한 지역에 있는 결제 주소에만 Viva Wallet을 제공합니다. 기본값: All zones. 지역은 System > Localisation > Geo Zones에서 설정합니다.
Total: Viva Wallet을 제공하려면 주문이 도달해야 하는, 쇼핑몰 기본 통화 기준의 체크아웃 합계입니다. 0 이상의 숫자입니다. 비워 두면 모든 금액에서 제공됩니다.
Demo account (test mode) and Live account
두 섹션은 동일한 항목을 가집니다. 하나는 데모 계정용, 다른 하나는 라이브 계정용입니다. Viva 계정에서 Settings > API Access를 열고 Smart Checkout 인증 정보(Client ID, Client Secret), Merchant ID, API Key를 복사합니다. Source Code는 Sales > Online payments > Websites / apps에 있습니다.
Client ID (Demo) / Client ID (Live): 계정의 Smart Checkout OAuth 2.0 Client ID입니다. 결제에 필요합니다.
Client Secret (Demo) / Client Secret (Live): 계정의 Smart Checkout OAuth 2.0 Client Secret입니다. 결제에 필요합니다.
Source Code (Demo) / Source Code (Live): 계정 결제 소스의 4자리 코드입니다. 해당 Success URL과 Failure URL은 이 쇼핑몰을 가리켜야 합니다(아래 참조). 결제에 필요합니다.
Merchant ID (Demo) / Merchant ID (Live): 선택 사항입니다. Viva의 웹훅 URL 확인에 응답하는 데에만 사용됩니다.
API Key (Demo) / API Key (Live): 선택 사항입니다. Viva의 웹훅 URL 확인에 응답하는 데에만 사용됩니다.
저장된 Client Secret과 API Key는 다시 표시되지 않습니다. 입력란은 비어 있으며 Saved — leave empty to keep it.가 표시됩니다. 값을 바꾸려는 경우에만 새 값을 입력하세요.
Clear saved secrets: Live account 섹션 끝에 있습니다. 저장된 비밀 값을 체크하고 Save를 클릭하면 삭제됩니다. 입력란을 비워 두면 저장된 값이 유지됩니다.
Return URLs and webhook
Addresses for the Viva account: 이 항목에는 Viva 계정에 입력해야 하는 쇼핑몰의 세 가지 주소가 표시됩니다. 이 주소들은 OpenCart 설치의 스토어프런트 주소로 만들어지며 다음과 같은 형태입니다(OpenCart 3): https://your-store/index.php?route=extension/payment/wcp_viva_gateway/success&, https://your-store/index.php?route=extension/payment/wcp_viva_gateway/fail&, https://your-store/index.php?route=extension/payment/wcp_viva_gateway/webhook. OpenCart 4에서는 https://your-store/index.php?route=extension/wcp_viva_gateway/payment/wcp_viva_gateway.success&, https://your-store/index.php?route=extension/wcp_viva_gateway/payment/wcp_viva_gateway.fail&, https://your-store/index.php?route=extension/wcp_viva_gateway/payment/wcp_viva_gateway.webhook 형태입니다. 설정에 표시된 그대로 정확히 복사하세요. 성공 및 실패 주소 끝의 &는 필수입니다. Viva가 주소에 거래 정보를 추가하는데, 이것이 없으면 OpenCart가 페이지를 찾을 수 없다는 응답을 합니다.
Payment source: 사용하는 각 계정에서 Sales > Online payments > Websites / apps로 이동하여 쇼핑몰 도메인용 결제 소스를 만듭니다. Success URL과 Failure URL에는 성공 및 실패 주소에서 도메인 뒤에 오는 경로를 입력합니다.
Webhook: Settings > API Access > Webhooks에서 다음 이벤트에 대한 웹훅 주소를 추가합니다:
Viva는 저장하기 전에 URL을 확인합니다. 확장 기능은 계정의 확인 키로 응답합니다. 현재 모드의 Merchant ID와 API Key로 키를 가져오거나, 아래에 입력한 키를 사용합니다. 웹훅은 고객이 브라우저를 닫아도 결제를 확인합니다. Viva 웹훅은 서명되지 않으므로, 확장 기능은 웹훅만으로는 절대 신뢰하지 않습니다. 주문이 상태를 받기 전에 모든 결제는 Viva API로 확인됩니다. 웹훅이 없으면, 주문은 고객이 결제 후 쇼핑몰로 돌아왔을 때에만 상태를 받습니다.
Webhook Verification Key: 선택 사항입니다. 비워 두면 현재 모드의 Merchant ID와 API Key로 키를 자동으로 가져오며, 여기에 Viva 계정의 확인 키를 붙여 넣을 수도 있습니다.
Order statuses
OpenCart는 Confirm Order 단계에서 상태 없이 주문을 만듭니다(누락된 주문). 주문은 Viva 결제가 확인된 후에야 상태를 받습니다. 상태 항목에는 OpenCart 주문 상태가 나열됩니다.
Order Status After Payment: 결제가 완료된 주문이 받는 상태입니다. 한 번의 상태 변경으로 즉시 설정됩니다.
Processing Status: Default와 Processing에 대해 결제가 완료된 주문의 상태입니다. 기본값: Processing.
Complete Status: Completed에 대해 결제가 완료된 주문의 상태입니다. 기본값: Complete.
On Hold Status: On Hold에 대해 결제가 완료된 주문의 상태이며, Viva 결제 금액이나 통화가 주문과 일치하지 않는 주문의 상태이기도 합니다(검토를 위해 보류되며 결제 완료로 표시되지 않고, 메모에 이유가 적힙니다). 기본값: Pending. OpenCart에는 On hold 상태가 없기 때문입니다. System > Localisation > Order Statuses에서 자체 상태를 만들고 여기에서 선택할 수 있습니다.
Cancelled Order Status: 이 상태의 주문에 대해 받은 Viva 결제는 주문을 다시 열지 않습니다. 메모에서 주문을 복원하거나 결제를 환불하라고 안내합니다. 확장 기능은 이 상태를 설정하지 않습니다. 기본값: Canceled.
Refunded Status: 주문 탭에서 결제가 전액 환불된 후 설정됩니다. 이후의 결제도 이런 주문을 다시 열지 않습니다. 기본값: Refunded.
Advanced Settings
Brand Color: Viva 결제 페이지에 사용할 6자리 HEX 색상 코드입니다(예: 0000ff). 앞에 붙은 #은 제거됩니다. 기본 색상을 쓰려면 비워 두세요. 다른 값은 저장되지 않습니다. 나머지 설정은 저장되며, 페이지에는 Brand Color must be a 6-digit HEX code (e.g. 0000ff). The previous value was kept.가 표시됩니다.
Debug Logging: API 요청을 OpenCart 로그 폴더(storage/logs, OpenCart 4에서는 system/storage/logs)의 viva_wp_debug.log.php에 기록합니다. 이 파일은 웹에서 열 수 없습니다. 키, 토큰, 고객 데이터는 기록되지 않습니다. 이 옵션이 꺼져 있어도 오류는 항상 기록됩니다. 기본값: off.
Log: 로그의 크기와 최신 항목을 보여줍니다. Clear log를 클릭하면 비워집니다.
Delete Data on Uninstall: 켜면 확장 기능을 제거할 때 게이트웨이 설정과 로그가 삭제됩니다. 주문과 결제 데이터(Viva 결제 시도, 환불)는 절대 삭제되지 않습니다. 기본값: off.
Import / Export
Export: Download JSON은 설정을 JSON 파일로 저장합니다. 비밀 값은 내보내지 않습니다.
Import: 이전에 내보낸 JSON을 붙여 넣고 Import를 클릭하면 설정이 복원됩니다. 저장된 비밀 값은 유지됩니다.
체크아웃
Payment Method 단계에서 고객은 결제 수단을 선택합니다(기본값은 Viva Wallet). Confirm Order 단계에서 고객은 쇼핑몰의 설명과 함께 You will be redirected to the secure Viva Wallet payment page (cards, Apple Pay, Google Pay and more). 안내를 봅니다. OpenCart는 이 단계에서 아직 상태가 없는 주문을 만듭니다. OpenCart 4에서는 고객이 결제 수단 블록의 Choose 버튼을 눌러 Payment method options 창에서 결제 수단을 고르고, 체크아웃 페이지 하단에서 Confirm Order를 클릭합니다. 고객이 Confirm Order를 클릭하면, 확장 기능은 주문 통화로 주문 합계에 대한 Viva 결제 주문을 만들고, 고객을 Viva Smart Checkout 페이지로 보냅니다. 브랜드 색상이 설정되어 있다면 Brand Color가 적용됩니다. 그곳에서 고객은 Viva 계정에서 사용하도록 설정된 결제 수단 중 하나로 결제합니다. 고객의 이메일, 이름, 전화번호, 국가, 쇼핑몰 언어가 Viva에 전달됩니다. 결제는 Viva에서 OpenCart #와 주문 번호로 표시되며, 고객에게는 Order, 주문 번호, at, 쇼핑몰 이름으로 설명됩니다. Viva 결제 주문은 30분 후에 만료됩니다.
결제 후 고객은 쇼핑몰로 돌아옵니다. 주문은 Viva가 확인한 후에야 결제 완료로 표시됩니다. 확장 기능은 고객이 돌아왔을 때와 웹훅이 도착했을 때 모두 Viva API에서 거래를 다시 조회합니다. 그런 다음 주문은 일반적인 OpenCart 방식으로 상태를 받고, 주문 이메일이 발송되며 재고가 갱신됩니다. 고객은 OpenCart 주문 완료 페이지를 봅니다. 결제가 아직 확인되지 않았다면, Payment confirmation 페이지에 We are waiting for Viva Wallet to confirm your payment. You will receive an e-mail as soon as it is confirmed.가 표시되고 Check again 및 Back to checkout 버튼이 나타납니다. 결제가 확인될 때까지 장바구니는 유지되며, 웹훅은 Viva가 확인하는 즉시 주문 상태를 설정합니다. OpenCart 4에서는 고객이 Viva 페이지에서 돌아오면 짧은 중간 페이지가 쇼핑몰의 반환 주소를 다시 열어 주므로, 카트와 고객 세션이 유지됩니다.
결제가 실패하거나 고객이 Viva 페이지에서 취소하면, 주문은 상태 없이 남고 장바구니는 유지됩니다. 고객은 The Viva Wallet payment was not completed. Please try again or choose another payment method. 또는 The Viva Wallet payment was cancelled. You can try again or choose another payment method.가 표시된 체크아웃으로 돌아가며, 다시 결제할 수 있습니다. 새로 시도할 때마다 새로운 Viva 결제 주문이 시작됩니다. 하나의 장바구니는 한 번만 결제됩니다. 같은 체크아웃의 다른 주문으로 장바구니가 이미 결제되었다면, 고객은 바로 성공 페이지로 이동합니다. OpenCart 4에서는 이 메시지가 체크아웃 페이지 위에 표시됩니다. OpenCart 3은 Confirm Order 단계가 표시될 때마다 새 주문을 만들고, OpenCart 4는 체크아웃의 주문을 업데이트합니다. 수량 변경을 포함해 장바구니가 바뀌면 새 장바구니로 취급되어 별도의 결제가 필요합니다.
OpenCart 4는 성공 페이지가 표시될 때까지 체크아웃에서 주문을 유지합니다. 결제가 실패하거나 취소된 후, 고객은 새 Viva 결제 주문으로 같은 주문을 다시 결제합니다. 그 사이 주문이 닫혔거나(예: 스토어에서 취소), 이후 카트가 바뀐 상태로 결제된 주문이라면, 고객은 This order can no longer be paid. Please confirm your order again.가 표시된 체크아웃으로 돌아가며, 다음 Confirm Order에서 새 주문이 결제됩니다.
Viva가 결제를 시작할 수 없으면, 고객은 버튼 위에 메시지가 표시된 Confirm Order 단계에 머뭅니다. Viva Wallet payments are not available at the moment. Please choose another payment method or contact us.(인증 정보가 없거나 잘못된 경우) 또는 We could not connect to Viva Wallet. Please try again in a moment or choose another payment method.가 표시됩니다. 기술적인 원인은 로그에 기록됩니다.
반환 페이지는 결제한 고객에게만 주문 성공 페이지를 보여줍니다. 반환 주소를 여는 다른 사람은 주문 세부 정보 없이 주문 내역 또는 체크아웃으로 이동됩니다.
OpenCart는 결제 확장 기능의 요청을 통과시키므로, 쇼핑몰이 점검 모드에 있어도 웹훅은 작동합니다. OpenCart 4에서는 확장 기능의 시작 액션이 웹훅과 성공 및 실패 주소를 점검 모드에서도 통과시킵니다.
이 확장 기능은 일회성 결제만 받으며, Viva 페이지에서 즉시 청구됩니다. 사전 승인 및 매입, 할부, 카드 저장, 정기 구독, Viva Native Checkout(자체 페이지의 카드 입력란), POS 단말기는 지원하지 않습니다. 고객이 새로운 시도를 시작해도, 이전의 결제되지 않은 Viva 결제 주문은 취소되지 않으며, Viva가 30분 후에 만료시킵니다.
주문 및 환불
Order statuses
상태 없음(누락된 주문): 고객이 Viva로 보내졌지만 결제하지 않았거나, 결제가 실패하거나 취소되었거나, Viva가 아직 결제를 완료하지 않은 경우입니다. 고객은 다시 결제할 수 있습니다. Sales > Orders에서 이런 주문은 Order Status 필터를 Missing Orders로 설정한 경우에만 표시됩니다. OpenCart 4.1에서는 이런 주문에 Voided 상태가 붙을 수도 있습니다. 이는 Confirm Order 단계가 다시 표시될 때 OpenCart가 설정하며, 확장 기능은 이 주문도 상태가 없는 주문으로 취급합니다.
Order Status After Payment(기본값 Processing): 결제가 확인되었습니다. 메모에는 금액, 거래, Viva 주문 코드, 환경(데모 또는 라이브), 확인 방법(웹훅 또는 고객의 복귀)이 표시됩니다.
불일치 후 On Hold Status(기본값 Pending): Viva가 주문 합계와 다른 금액이나 통화를 보고했습니다. 주문은 결제 완료로 표시되지 않으며, Viva Wallet payment held for review 메모에 이유가 나타납니다. Viva 대시보드에서 결제를 주문과 비교한 후 주문을 처리하거나 수동으로 환불하세요. 같은 주문에 대해 나중에 일치하는 결제가 도착하면, 주문은 결제 완료 상태로 전환됩니다.
Cancelled Order Status 또는 Refunded Status에 있는 주문에 대한 결제가 도착해도 주문 상태는 바뀌지 않습니다. 메모에서 주문을 복원하거나 Viva 대시보드에서 결제를 환불하라고 안내합니다. 이미 결제가 완료된 주문이나, 이미 결제가 완료된 장바구니의 다른 주문에 두 번째 결제가 도착하면, 해당 주문은 변경되지 않습니다. 결제가 완료된 주문의 메모에서 중복 결제를 Viva 대시보드에서 환불하라고 안내합니다.
메모는 고객에게 보이지 않는 주문의 History 항목입니다. 상태 변경 자체는 고객에게 알리지 않으며, OpenCart는 결제가 완료된 주문이 처음 상태를 받을 때 일반 주문 이메일을 보냅니다.
VibeFox Viva Wallet Gateway tab
Sales > Orders에서 Viva Wallet으로 결제된 주문을 엽니다. 주문 페이지 하단, History 및 Additional 옆에 있는 VibeFox Viva Wallet Gateway 탭에는 Viva order code, 데모 결제인 경우 Demo 라벨이 붙은 Transaction ID, Environment / Source Code, Viva status, Paid / refunded 금액, 환불 양식, 환불 내역, 주문의 Viva payment attempts(시도가 여러 번인 경우), 주문의 Viva Wallet notes가 표시됩니다. 이 탭은 확장 기능에 접근 권한이 있는 사용자에게 표시됩니다.
Refunds
VibeFox Viva Wallet Gateway 탭에서 Amount를 입력합니다(아직 환불되지 않은 금액이 자동으로 채워집니다). 필요하면 Reason (optional)을 입력하고 Refund via Viva Wallet을 클릭합니다. Refund this amount via Viva Wallet? This cannot be undone. 확인 질문에 응답하세요. 확인된 Viva 결제가 있는 주문에 대해 전액 및 부분 환불을 지원합니다. 확장 기능을 수정할 권한이 필요합니다(System > Users > User Groups에서 설정). 주문이 나중에 편집되었더라도, Viva가 해당 결제에 대해 청구한 금액까지 환불할 수 있습니다. 환불은 결제가 이루어진 계정(데모 또는 라이브)으로, 결제 통화로 전송되므로 해당 계정의 Client ID와 Client Secret이 입력되어 있어야 합니다. Viva가 환불을 거부하면 탭에 오류가 표시되며 환불은 기록되지 않습니다. 환불이 성공하면 Viva 환불 거래와 함께 환불 내역과 메모에 추가됩니다. 전액 환불은 고객에게 알리지 않고, 상품을 재고로 되돌리지 않은 채 수동 상태 변경과 마찬가지로 주문을 Refunded Status로 설정합니다. 부분 환불은 상태를 바꾸지 않습니다. 불일치 후 검토를 위해 보류된 주문은 확인된 결제가 없으므로 탭에서 환불할 수 없습니다.
Sales > Returns의 상품 반품은 Viva를 통해 돈을 돌려보내지 않습니다. Viva 대시보드에서 진행한 환불은 가져오지 않습니다. 필요하면 주문을 수동으로 업데이트하세요.
라이선스 키
이 확장 기능은 vibefox.net에서 발급받은 VibeFox 라이선스 키로 작동합니다. 라이선스 블록 License — VibeFox Viva Wallet Gateway은 Extensions > Extensions > Payments > VibeFox Viva Wallet Gateway > Edit 페이지에서 설정 위에 있는 첫 번째 블록입니다. License key에 키를 입력하고 Activate를 클릭하세요. 그러면 블록에 마스킹된 키, 상태(예: 라이선스가 유효한 날짜와 도메인), 그리고 상태를 다시 확인하는 Check now, 다른 키를 입력하는 Change key, 이 쇼핑몰에서 키를 제거하는 Remove key 버튼이 표시됩니다. 그 아래에는 Product: opencart-payment-viva 줄과 vibefox.net 계정을 여는 Manage licenses and domains in your account 링크가 있습니다. 이 확장 기능의 Modify 권한이 있는 관리자 사용자만 키를 변경할 수 있습니다. 블록의 텍스트는 관리자 언어를 따릅니다(영어와 러시아어 포함).
키가 허용되지 않으면 블록에 이유가 표시됩니다. 예: Key not found, This key belongs to another product, Domain limit reached, 또는 날짜와 함께 License expired on. 쇼핑몰 주소가 바뀌었거나 계정에서 도메인 슬롯을 비운 후에는 Check now를 클릭하세요. 라이선스 서버에 연결할 수 없으면 확장 기능은 마지막으로 확인된 상태로 계속 작동합니다.
키 하나는 도메인 하나에서 작동합니다. OpenCart 설정의 쇼핑몰 주소가 기준입니다. 쇼핑몰에서 키를 제거해도 도메인 슬롯은 해제되지 않습니다. vibefox.net 계정에서 슬롯을 해제하세요.
활성 키가 없으면 체크아웃에서 고객에게 Viva Wallet이 표시되지 않습니다. 결제가 시작되더라도 고객에게는 This payment method is not available. Please choose another one.가 표시됩니다. 같은 브라우저에서 관리자 페이지에 로그인한 관리자 사용자에게는 결제 수단이 쇼핑몰에 (unlicensed — visible to admins only) 표시와 함께 계속 보이므로, 키를 구매하기 전에 확장 기능을 설정하고 테스트할 수 있습니다. OpenCart 4에서는 이 미리보기를 사용할 수 없습니다. 쇼핑몰은 관리자 로그인을 인식하지 못하므로, 활성 키가 없으면 결제 수단이 모든 사람에게 숨겨집니다. Edit 페이지를 한 번 열면 관리자 Dashboard에 알림이 나타납니다. ×로 닫으면 7일 동안 숨겨집니다. 기존 주문은 영향을 받지 않습니다. 이미 시작된 결제는 Viva 웹훅과 쇼핑몰로의 복귀를 통해 여전히 확인되며, 환불도 작동합니다.
라이선스가 만료되어도 확장 기능은 계속 작동하지만, 업데이트와 지원에는 갱신이 필요합니다. 상태는 관리자 Dashboard 또는 Edit 페이지를 열 때 자동으로 다시 확인됩니다. 키를 입력한 후 처음 14일 동안은 하루에 한 번, 그 후에는 일주일에 한 번입니다. cron 작업은 필요하지 않습니다. 확장 기능을 제거하면 라이선스 키와 라이선스 상태는 항상 삭제됩니다.
문제 해결
Viva Wallet이 체크아웃에 나타나지 않음: 라이선스가 활성 상태인지, Enable/Disable이 켜져 있는지, 현재 모드에 Client ID, Client Secret, Source Code가 있는지 확인하세요(테스트 모드에서는 Demo 항목, 운영 모드에서는 Live 항목). 쇼핑몰에서 선택한 통화는 EUR, GBP, PLN, RON, BGN, CZK, HUF, DKK, SEK, NOK, CHF 중 하나여야 합니다. 또한 결제 주소가 선택한 Geo Zone에 포함되는지, 주문이 설정의 Total에 도달하는지 확인하세요. 인증 정보가 없으면 설정 페이지에 경고가 표시됩니다.
결제는 완료되었지만 주문에 상태가 없음: 웹훅이 작동하지 않습니다. Viva에서 사용 중인 계정(데모 또는 라이브)에 웹훅이 있는지, 그 URL이 설정에 표시된 것과 정확히 같은지, Transaction Payment Created가 선택되어 있는지 확인하세요. 해당 결제 계정의 Client ID와 Client Secret이 여전히 입력되어 있는지도 확인하세요. 확장 기능이 결제를 확인하려면 이것이 필요합니다. Debug Logging을 켜고 Log 항목을 확인하세요. 고객이 결제 후 쇼핑몰로 돌아오면 주문도 상태를 받습니다.
고객이 페이지를 찾을 수 없음으로 돌아옴: 결제 소스의 Success URL 또는 Failure URL이 &로 끝나지 않습니다. 설정에 표시된 경로를 그대로 복사하세요.
Viva가 웹훅 URL을 확인할 수 없음: 현재 모드의 Merchant ID와 API Key(또는 확인 키 자체를 Webhook Verification Key에)를 입력하고 저장한 후 Viva에서 다시 확인하세요. 다른 계정의 웹훅을 확인하려면 먼저 Test Mode를 전환하거나 해당 계정의 키를 입력하세요.
웹훅이 오류로 응답함: Viva는 쇼핑몰의 응답을 표시하고 실패한 웹훅을 다시 시도합니다. verification_failed(HTTP 500)는 결제를 확인하기 위해 Viva API에 연결할 수 없었거나 주문 상태를 설정할 수 없었다는 뜻입니다. busy(HTTP 503)는 같은 시점에 다른 요청이 주문을 처리 중이었다는 뜻입니다. transaction_not_found(HTTP 404)는 해당 결제 계정에 거래가 없다는 뜻입니다(예: 잘못된 인증 정보). 같은 Viva 계정의 다른 쇼핑몰 결제에 대한 이벤트에는 ignored로 응답합니다.
고객이 Confirm Order 후 오류를 봄: 확장 기능 페이지의 Log 항목을 확인하세요. 잘못된 Client ID 또는 Client Secret은 Viva Wallet 결제를 사용할 수 없다는 메시지를 표시합니다. Viva에 연결할 수 없거나 결제 주문을 거부하면(예: Source Code가 다른 계정에 속한 경우), 고객은 쇼핑몰이 Viva Wallet에 연결하지 못했다는 메시지를 받습니다. This payment method is not available.는 체크아웃 세션이 더 이상 주문과 일치하지 않는다는 뜻입니다. 고객은 체크아웃을 새로 고쳐야 합니다.
고객이 돌아왔을 때 We could not find your order. If you were charged, please contact us.:가 표시됨: 반환 주소의 Viva 주문 코드가 이 쇼핑몰의 결제가 아닙니다. 예를 들어 다른 쇼핑몰의 결제 소스가 여기를 가리키고 있을 수 있습니다. 결제 소스의 Success URL과 Failure URL을 확인하세요.
결제 후 주문이 검토 상태임: VibeFox Viva Wallet Gateway 탭의 메모를 읽고(Order statuses 참조), 주문을 처리하거나 결제를 환불하세요.
탭에 환불 양식이 없음: 탭에 이유가 표시됩니다. 주문에 확인된 Viva 결제가 없거나(Transaction ID not found. Cannot process refund.), 전액 환불되었거나, 결제 계정의 인증 정보가 없거나, 사용자 그룹에 확장 기능을 수정할 권한이 없는 경우입니다.
This payment was made in the Viva demo (or live) environment 메시지와 함께 환불이 실패함: 결제가 이루어진 계정의 Client ID와 Client Secret이 입력되지 않았습니다. 입력한 후 다시 시도하세요. 그 밖의 환불 오류에는 Viva의 메시지가 표시됩니다.
제거
Extensions > Extensions로 이동하여 유형으로 Payments를 선택하고, VibeFox Viva Wallet Gateway 옆의 Uninstall(빨간색 − 버튼)을 클릭합니다. 이 확장 기능의 라이선스 키와 라이선스 상태는 항상 제거됩니다. OpenCart는 항상 확장 기능 자체의 설정을 제거합니다: Enable/Disable, Sort Order, Geo Zone, Total, 그리고 Order statuses 섹션의 상태 항목들이며, 이들은 재설치 시 기본값으로 돌아갑니다. 캐시된 Viva 액세스 토큰과 웹훅 키는 항상 제거됩니다. OpenCart 4에서는 확장 기능의 이벤트와, 점검 모드에서 웹훅과 반환 주소를 통과시키는 시작 액션도 항상 제거됩니다. Delete Data on Uninstall이 켜져 있으면 나머지 게이트웨이 설정(제목, 설명, 테스트 모드, 인증 정보, 결제 후 주문 상태, 브랜드 색상, 로깅)과 로그가 제거됩니다. 꺼져 있으면 나중에 재설치할 때를 위해 유지됩니다. Viva 결제 시도와 환불은 항상 유지되므로, 재설치 후에도 이전에 결제된 주문을 환불할 수 있습니다. 기존 주문은 결제 메모를 유지합니다.
OpenCart 4에서 확장 기능의 파일까지 제거하려면, 제거 후 Extensions > Installer로 이동하여 설치된 확장 기능 목록에서 VibeFox Viva Wallet Gateway 옆의 Uninstall(주황색 − 버튼)을 클릭한 다음, 업로드한 패키지를 제거하려고 Delete(빨간색 휴지통 버튼)를 클릭하세요.
Viva Wallet은 해당 소유자의 상표입니다. 이 확장 기능은 Viva Wallet과 제휴하거나 Viva Wallet의 승인을 받지 않았습니다.
