VibeFox Razorpay for OpenCart — 도움말
요구 사항
OpenCart: 3.0.x (3.0.5.0에서 테스트됨) 또는 4.0.2 이상(4.1.0.3에서 테스트됨).
PHP: 8.0 이상.
Razorpay 계정: 테스트 모드에서는 Razorpay 계정의 Key ID와 Key Secret이 필요하며, 계정이 활성화된 후에는 라이브 모드에도 같은 값이 필요합니다. 원하는 시크릿으로 웹훅을 생성하는 것을 강력히 권장합니다(설정 참조). INR 이외의 통화로 결제하려면 Razorpay 계정에서 International Payments가 활성화되어 있어야 합니다.
VibeFox 라이선스 키: vibefox.net에서 구매합니다. 키 하나는 도메인 하나에서만 작동합니다.
설치
다운로드 파일은 두 OpenCart 버전용 패키지가 들어 있는 zip 파일 하나입니다. 컴퓨터에서 압축을 푸세요. 압축 파일에는 README.txt, OpenCart 3용 패키지 wcp_razorpay_payment-oc3-(version).ocmod.zip, OpenCart 4용 패키지 wcp_razorpay_payment.ocmod.zip이 들어 있습니다. 사용하는 OpenCart 버전에 맞는 패키지만 설치하세요. 라이선스 키는 두 버전 모두 동일합니다.
OpenCart 3
1. 관리자 화면에서 Extensions > Installer로 이동하여 Upload를 클릭하고 wcp_razorpay_payment-oc3-(version).ocmod.zip 파일을 선택합니다. 이 확장 기능에는 OCMOD 수정 사항이 없으므로 Extensions > Modifications를 새로 고칠 필요가 없습니다. 설치 도구 대신 이 패키지의 upload 폴더 내용을 쇼핑몰의 루트 폴더에 복사할 수도 있습니다.
2. Extensions > Extensions로 이동하여 유형으로 Payments를 선택합니다. VibeFox Razorpay Payment를 찾아 Install(초록색 + 버튼)을 클릭합니다. 관리자 사용자에게 결제 확장 기능 목록을 수정할 권한이 있어야 합니다.
3. Edit(연필 버튼)를 클릭하여 설정 페이지를 엽니다. 페이지 상단의 라이선스 블록에 있는 License key에 VibeFox 라이선스 키를 붙여 넣고 Activate를 클릭합니다(라이선스 키 참조).
4. Test Key ID와 Test Key Secret을 입력하고, Razorpay Dashboard에서 웹훅을 설정한 뒤 그 시크릿을 입력합니다(설정 참조).
5. Enable/Disable을 켜고 Save를 클릭합니다. Test mode가 켜진 상태에서 테스트 결제를 진행하십시오. 준비가 되면 Live 키를 입력하고 Test mode를 끕니다.
OpenCart 4
1. 관리자 화면에서 Extensions > Installer로 이동하여 Upload를 클릭하고 wcp_razorpay_payment.ocmod.zip 파일을 선택합니다. 파일 이름을 바꾸지 마세요. OpenCart 4는 파일 이름에서 확장 기능 코드를 가져오므로, 이름을 바꾼 패키지는 작동하지 않습니다.
2. 설치된 확장 기능 목록에 같은 페이지에서 패키지가 나타납니다. 그 옆의 Install(초록색 + 버튼)을 클릭하세요.
3. Extensions > Extensions로 이동하여 유형으로 Payments를 선택합니다. VibeFox Razorpay Payment를 찾아 Install(초록색 + 버튼)을 클릭한 뒤 Edit(연필 버튼)를 클릭하세요.
4. 라이선스 키, Razorpay 키, 웹훅은 OpenCart 3의 3~5단계와 같이 입력합니다. 설정 페이지와 그 필드는 두 버전이 같습니다. 웹훅 URL만 다릅니다(웹훅 참조).
새로 설치하면 결제 방법은 꺼진 상태이고 테스트 모드는 켜진 상태로 시작합니다.
설정
모든 설정은 확장 기능 페이지에 있습니다: Extensions > Extensions > Payments > VibeFox Razorpay Payment > Edit. 섹션은 왼쪽에 나열되며, 목록 아래의 Save 버튼은 페이지 전체를 저장합니다. 확장 기능을 수정할 권한이 없으면 페이지에 설정은 표시되지만 저장할 수 없습니다.
설정 위쪽에서 페이지는 Razorpay에서 결제가 확인되어야 주문에 상태가 부여된다고 설명하며, 다음과 같은 알림을 표시합니다: 현재 모드의 키가 없음(이 경우 체크아웃에 Razorpay가 표시되지 않음), 테스트 모드에서 Key ID가 rzp_test_로 시작하지 않거나 라이브 모드에서 rzp_live_로 시작하지 않음, 테스트 모드가 켜져 있음, 웹훅 시크릿이 비어 있음, 또는 쇼핑몰의 기본 통화가 INR이 아니어서 Razorpay 계정에서 International Payments가 필요함. 알림은 저장할 때마다 갱신됩니다.
저장할 때 Title은 1자 이상 128자 이하여야 하고(Enter a title for the payment method (1 to 128 characters).), Sort Order는 정수여야 하며(음수 허용), Total은 0 이상의 숫자여야 하고, 지역 그룹과 모든 주문 상태가 존재해야 합니다. 그렇지 않으면 아무것도 저장되지 않습니다. Key ID와 함께 붙여 넣은 공백은 제거됩니다.
Razorpay
Enable/Disable: Enable Razorpay Payment Gateway는 결제 방법을 켜거나 끕니다. 기본값: 꺼짐.
Title: 고객이 체크아웃에서 보는 결제 방법 이름입니다. 주문에 저장되는 결제 방법 이름이기도 합니다. 기본값: UPI, Cards, NetBanking. 필수, 최대 128자.
Description: 고객이 Confirm Order 단계에서 확인 버튼 위에 보는 텍스트입니다. 기본값: Pay securely via UPI, Credit/Debit Card, or Internet Banking through Razorpay.
Sort Order: 체크아웃에서 결제 방법들 사이에서 Razorpay가 표시되는 위치입니다. 비워 두거나 정수를 입력하십시오.
Geo Zone: 선택한 지역 그룹에 속한 결제 주소에만 Razorpay를 제공합니다. 기본값: All zones. 지역 그룹은 System > Localisation > Geo Zones에서 설정합니다.
Total: Razorpay를 제공하기 위해 주문이 도달해야 하는 체크아웃 금액으로, 쇼핑몰의 기본 통화 기준입니다. 0 이상의 숫자입니다. 비워 두면 모든 금액에서 Razorpay를 제공합니다.
API 키
Razorpay Dashboard의 Account & Settings > API Keys에서 키를 확인하십시오(페이지에 해당 링크가 있습니다). 테스트 키(rzp_test_...)를 생성하려면 Dashboard를 테스트 모드로 전환하십시오. 라이브 키(rzp_live_...)는 계정이 활성화된 후 사용할 수 있습니다.
Test mode: 테스트 모드 키를 사용하므로 실제 금액은 청구되지 않습니다. 기본값: 켜짐. 실제 결제를 받으려면 끄십시오. 주문의 결제, 캡처, 환불은 항상 주문이 결제된 모드의 키를 사용하므로, 나중에 모드를 바꿔도 기존 주문에는 영향을 주지 않습니다. 켜져 있는 동안 고객은 Confirm Order 단계와 결제 페이지에서 Razorpay Test mode: no real money will be charged.를 보게 됩니다.
Test Key ID: 테스트 모드에서 Razorpay Dashboard에 표시되는 Key ID입니다. rzp_test_로 시작합니다.
Test Key Secret: 테스트 모드에서 Razorpay Dashboard에 표시되는 Key Secret입니다.
Live Key ID: 라이브 모드에서 Razorpay Dashboard에 표시되는 Key ID입니다. rzp_live_로 시작합니다.
Live Key Secret: 라이브 모드에서 Razorpay Dashboard에 표시되는 Key Secret입니다.
저장된 시크릿은 다시 표시되지 않습니다. 필드는 비어 있으며 Saved — leave empty to keep it.를 표시합니다. 변경하려는 경우에만 새 값을 입력하십시오. 저장된 값을 삭제하려면 필드 아래의 Clear the saved value on save에 체크한 뒤 Save를 클릭하십시오.
결제
Payment Action: 돈이 청구되는 시점입니다. 기본값: Authorize & Capture.
웹훅
웹훅은 고객이 결제 직후 브라우저를 닫더라도 결제를 확인하며, Razorpay Dashboard에서 이루어진 환불을 기록합니다. Razorpay Dashboard에서 Account & Settings > Webhooks로 이동하여 테스트 모드용 웹훅 하나와 라이브 모드용 웹훅 하나를 추가하십시오. 이 섹션의 Webhook URL에 표시된 URL을 사용하십시오. OpenCart 3에서 이 URL은 https://your-store/index.php?route=extension/payment/wcp_razorpay_payment/webhook 형태이고, OpenCart 4에서는 https://your-store/index.php?route=extension/wcp_razorpay_payment/payment/wcp_razorpay_payment.webhook 형태이며, OpenCart 설치의 스토어 프런트 주소로 만들어집니다. 설정에 표시된 그대로 정확히 복사하십시오. Razorpay에 원하는 시크릿을 입력하고 다음 이벤트를 선택하십시오(이 섹션에도 나열되어 있습니다):
Webhook Secret: 웹훅을 만들 때 입력한 시크릿입니다. 테스트 웹훅과 라이브 웹훅에 같은 시크릿을 사용하십시오. 확장 기능에는 두 웹훅을 위한 필드가 하나뿐이기 때문입니다. 유효한 서명이 없는 웹훅은 거부됩니다. 웹훅이 없으면 결제는 고객이 팝업에서 돌아왔을 때나 고객이 같은 장바구니에 대해 나중에 결제를 다시 시작했을 때에만 확인됩니다.
주문
OpenCart는 Confirm Order 단계에서 상태가 없는 주문(누락된 주문)을 만듭니다. 주문은 Razorpay가 결제를 확인한 후에만 상태를 받습니다. 결제가 실패하거나 중단되면 주문은 상태가 없는 채로 남고 장바구니는 유지됩니다. OpenCart에는 Authorized 및 On hold 상태가 없으므로 기존 상태 중에서 선택해야 하며, 그 이유는 주문 메모에 설명됩니다. 아래의 각 필드에는 OpenCart 주문 상태 목록이 표시됩니다.
Order Status After Payment: 결제가 캡처되었고 금액과 통화가 일치하는 경우의 상태입니다. 기본값: 처리 중.
Authorized Status: Authorize Only의 경우 사용됩니다. 금액은 예약되었으나 아직 캡처되지 않았습니다. 기본값: 대기 중.
On Hold (Review) Status: 수동 검토입니다. 결제 금액이나 통화가 주문 합계와 다르거나, 취소된 주문에 대한 결제가 들어왔거나, 팝업 서명은 유효했지만 Razorpay API로 결제를 확인하지 못한 경우에 사용됩니다. 기본값: 대기 중. System > Localisation > Order Statuses에서 자체 상태를 만들고 여기서 선택할 수 있습니다.
Cancelled Status: 확장 기능은 이 상태를 설정하지 않습니다. 확장 기능에 어떤 주문이 취소되었는지만 알려 줍니다. 이런 주문에 대해 나중에 캡처된 결제는 주문을 다시 열지 않고 검토 상태로 둡니다. 승인된 결제는 메모만 추가합니다. 기본값: 취소됨.
Refunded Status: 주문 탭에서 또는 Razorpay Dashboard에서 결제가 전액 환불된 후 설정됩니다. 기본값: 환불됨.
고급
Enable Logging: 로그는 OpenCart 로그 폴더(storage/logs)의 razorpay_p_debug.log.php에 기록됩니다. 이 파일은 웹에서 열 수 없습니다. 오류와 경고는 항상 기록되며, 이 옵션은 디버그 세부 정보를 추가합니다. 키, 서명, 고객 연락처 정보는 절대 기록되지 않습니다. 기본값: 꺼짐.
Log: 로그의 크기와 최근 항목을 표시합니다. Clear log를 클릭하면 비워집니다.
Delete Data on Uninstall: 켜져 있으면 확장 기능을 제거할 때 게이트웨이 설정과 로그가 삭제됩니다. 주문과 그 Razorpay 거래 및 환불은 항상 유지됩니다. 기본값: 꺼짐.
가져오기 / 내보내기
Export: Download JSON은 설정을 JSON 파일로 저장합니다. 시크릿 키는 내보내지지 않습니다.
Import: 이전에 내보낸 JSON을 붙여 넣고 Import를 클릭하면 설정이 복원됩니다. 저장된 시크릿 키는 유지됩니다.
체크아웃
Payment Method 단계에서 고객은 결제 방법을 선택합니다(기본적으로 UPI, Cards, NetBanking). Confirm Order 단계에서 고객은 설명과 After "Confirm Order" the Razorpay Checkout window opens to pay securely (UPI, cards, NetBanking, wallets). 안내를 봅니다. OpenCart는 이 단계에서 주문을 만들며, 여전히 상태는 없습니다. 고객이 Confirm Order를 클릭하면 확장 기능은 주문의 정확한 금액과 통화로 Razorpay 주문을 만들고, 쇼핑몰의 Razorpay payment 페이지를 엽니다. 그곳에서 Razorpay Checkout 팝업이 자동으로 열리며, 고객의 이름, 이메일, 전화번호가 미리 채워집니다. OpenCart 4에서 고객은 결제 방법 블록의 Choose 버튼을 눌러 Payment method options 창에서 결제 방법을 선택하고, 체크아웃 페이지 하단의 Confirm Order를 클릭합니다. Razorpay에서 결제는 Order #과 주문 번호로 표시됩니다. 팝업을 닫으면 고객은 Pay Now를 클릭해 다시 열거나 Choose another payment method를 클릭해 체크아웃으로 돌아갈 수 있습니다. 장바구니는 유지됩니다.
결제에 성공하면 고객은 Please wait while we process your payment...를 봅니다. 확장 기능은 Razorpay 서명을 확인하고, Razorpay API에서 결제 정보를 가져와 금액과 통화를 주문과 비교합니다. Razorpay가 확인한 후에만 주문이 결제 완료로 표시됩니다. 이후 주문은 일반적인 OpenCart 방식으로 상태를 받고, 일반 주문 이메일과 재고 갱신이 이루어지며, 고객은 OpenCart 주문 성공 페이지를 보게 됩니다. 서명은 유효하지만 그 순간 결제를 가져올 수 없으면 주문은 On Hold (Review) Status를 받고, 웹훅이 나중에 이를 확인합니다.
OpenCart 3에서는 Confirm Order 단계가 표시될 때마다 새 주문을 만듭니다. OpenCart 4에서는 체크아웃용 주문을 하나만 유지하고 업데이트하므로, 팝업을 닫은 후나 Choose another payment method를 클릭한 후에도 고객은 같은 주문을 결제합니다. 새 결제를 시작하기 전에 확장 기능은 같은 장바구니의 열린 Razorpay 주문을 확인합니다. 이미 결제된 주문(예: 고객이 브라우저를 닫았고 웹훅이 없는 경우)이 있으면 두 번째 결제를 요청하는 대신 그 결제를 적용하며, 나머지 주문은 더 이상 제공되지 않습니다. 고객이 같은 주문을 다시 결제하면, 금액, 통화, 모드가 바뀌지 않은 경우 그 주문의 Razorpay 주문을 재사용합니다. 그렇지 않으면 새 주문을 만듭니다. 장바구니가 이미 다른 주문으로 결제되었다면 고객은 바로 성공 페이지로 이동합니다.
고객이 볼 수 있는 메시지:
OpenCart 4에서 체크아웃의 주문이 쇼핑몰에 의해 닫혔거나 다른 장바구니에 대해 이미 결제된 경우(예: 새 수량을 포함해 장바구니가 그 후 변경된 경우), 고객은 Your previous order is already closed or paid. Please confirm the order again: the cart will be paid with a new order.라는 메시지와 함께 체크아웃으로 돌아가며, 다음 Confirm Order에서는 새 주문이 결제됩니다. OpenCart 4에서는 Payment session not found. Please try again., We could not verify your payment. 등 체크아웃으로 돌아가게 하는 메시지가 체크아웃 페이지 상단에 표시됩니다.
쇼핑몰이 점검 모드인 동안에도 웹훅은 작동합니다. OpenCart 3에서는 결제 확장 기능의 요청을 통과시키고, OpenCart 4에서는 확장 기능이 웹훅과 팝업 결과를 위한 시작 액션을 추가합니다.
이 확장 기능은 일회성 결제만 지원합니다. 구독이나 정기 결제, 저장된 카드, Razorpay Magic Checkout, Payment Links 또는 Route(분할 결제), 혜택 또는 할부 위젯은 지원하지 않습니다.
주문 및 환불
주문 상태
상태 없음(누락된 주문): 고객이 결제하지 않았거나, 결제 시도가 실패했거나, Razorpay가 아직 결제를 확인하지 않은 경우입니다. Sales > Orders에서 이런 주문은 Order Status 필터를 Missing Orders로 설정한 경우에만 표시됩니다.
Order Status After Payment(기본값 처리 중): 결제가 캡처되고 확인되었습니다. 메모에는 Razorpay 결제 ID(pay_...), 금액, 확인 방법(callback, webhook, sync 또는 admin)이 표시됩니다.
Authorized Status(기본값 대기 중): 결제는 승인만 되었습니다(Authorize Only). 주문을 완료하려면 캡처하십시오.
On Hold (Review) Status(기본값 대기 중): 다음의 경우에 설정되며, 각 경우에 메모가 붙습니다. 결제된 금액이나 통화가 주문과 일치하지 않았거나, 취소된 주문에 대해 결제가 캡처되었거나, 그 시점에 Razorpay API로 결제를 확인할 수 없었던 경우입니다. 주문을 확인한 뒤 처리하거나 결제를 환불하십시오.
Cancelled Status: 주문이 취소된 후에 도착한 결제는 주문을 자동으로 다시 열지 않습니다. 승인된 결제는 캡처되지 않고 메모만 받으며, 캡처된 결제는 주문을 검토 상태로 둡니다. 주문을 이미 결제 완료시킨 결제에 대한 반복 알림은, 그 후 주문을 취소했더라도 아무것도 변경하지 않습니다.
Refunded Status(기본값 환불됨): 결제가 전액 환불되었습니다.
이미 결제 완료된 주문에 추가 결제가 도착해도 주문은 변경되지 않습니다. 의도하지 않은 것이라면, 메모가 Razorpay Dashboard에서 환불하라고 안내합니다. 이미 결제된 장바구니의 이전 주문에 대한 지연된 결제는 그 이전 주문을 상태 없이 두며, 결제된 주문에는 메모가 붙습니다. 결제된 주문에 대한 지연된 payment.failed는 메모만 추가합니다.
메모는 고객에게 보이지 않는 주문 History의 항목입니다.
VibeFox Razorpay Payment 탭
Sales > Orders에서 Razorpay로 결제된 주문을 엽니다. 주문 페이지 하단의 History 및 Additional 옆에 있는 VibeFox Razorpay Payment 탭에는 테스트 결제의 경우 Test mode 라벨이 붙은 Payment ID, Razorpay order, 결제 Status, Paid / refunded(Razorpay가 청구한 금액과 환불된 금액), 캡처 버튼, 환불 양식, 환불 내역, 주문의 Razorpay notes가 표시됩니다. 이 탭은 확장 기능에 접근할 수 있는 사용자에게 표시됩니다. 캡처와 환불에는 확장 기능을 수정할 권한이 필요합니다(System > Users > User Groups에서 설정).
캡처(Authorize Only)
Authorized Status 상태의 주문을 열고, 탭에서 Capture Razorpay payment를 클릭한 뒤 Capture the authorized Razorpay payment?를 확인하십시오. 결제는 승인된 모드에서 캡처되고, 주문은 고객에게 알리지 않고, 재고도 변경하지 않은 채(수동 상태 변경과 같이) Order Status After Payment로 설정됩니다. Razorpay가 거부하면 탭과 메모에 Razorpay capture failed:와 이유가 표시됩니다. Razorpay Dashboard에서 이루어진 캡처는 웹훅을 통해 주문을 완료합니다.
환불
탭에서 Amount를 입력하십시오(아직 환불되지 않은 금액이 자동으로 채워집니다). 필요하면 Reason (optional)을 입력하고 Refund via Razorpay를 클릭하십시오. Refund this amount through Razorpay? This cannot be undone. 질문을 확인하십시오. 전액 환불과 부분 환불이 지원됩니다. 환불은 Razorpay가 청구한 금액과 통화로 이루어지므로, 금액 불일치가 있었다면 주문 합계가 아니라 고객이 실제로 결제한 금액까지 환불할 수 있습니다. 더 큰 금액을 입력하면 Invalid refund amount: at most와 그 금액이 표시됩니다. 환불은 결제가 이루어진 모드의 키로 전송됩니다. Razorpay가 환불을 받아들이지 않으면 탭에 Razorpay refund failed:와 이유가 표시되며, 어떤 환불도 기록되지 않습니다. 환불이 성공하면 Razorpay 환불 ID, 금액, 상태와 함께 환불 내역과 메모에 추가됩니다. 전액 환불은 고객에게 알리지 않고 상품을 재고로 되돌리지 않은 채 주문을 Refunded Status로 설정합니다. 부분 환불은 상태를 바꾸지 않습니다. 환불은 결제가 캡처된 후에만 가능합니다.
Sales > Returns에서의 상품 반품은 Razorpay를 통해 돈을 돌려보내지 않습니다.
Razorpay Dashboard에서 이루어진 환불은 웹훅을 통해 도착하며, 환불 내역(Razorpay Dashboard로 표시)과 메모에 한 번만 기록됩니다. 주문이 전액 환불되면 상태는 Refunded Status가 됩니다. 다른 통화로 이루어졌거나 환불 가능 금액을 초과하는 Dashboard 환불은 자동으로 기록되지 않으며, 메모가 수동으로 기록하라고 안내합니다.
라이선스 키
이 확장 기능은 vibefox.net에서 받은 VibeFox 라이선스 키로 작동합니다. License — VibeFox Razorpay Payment 라이선스 블록은 Extensions > Extensions > Payments > VibeFox Razorpay Payment > Edit에서 설정 위에 있는 첫 번째 블록입니다. 키를 License key에 붙여 넣고 Activate를 클릭하십시오. 그 후 블록에는 마스킹된 키, 상태(예: 라이선스가 유효한 날짜와 도메인), 그리고 다음 버튼이 표시됩니다. 상태를 다시 확인하는 Check now, 다른 키를 입력하는 Change key, 이 쇼핑몰에서 키를 제거하는 Remove key. 그 아래에는 Product: opencart-payment-razorpay 줄과 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 계정에서 슬롯을 해제하십시오.
활성 키가 없으면 체크아웃에서 고객에게 Razorpay가 표시되지 않습니다. 그래도 결제가 시작되면 고객은 This payment method is not available. Please choose another one.를 보게 됩니다. 같은 브라우저에서 관리자 화면에 로그인한 관리자 사용자는 쇼핑몰에서 여전히 결제 방법을 볼 수 있으며, 이때 (unlicensed — visible to admins only)라고 표시됩니다. 따라서 키를 구매하기 전에 확장 기능을 설정하고 테스트할 수 있습니다. OpenCart 4에서는 이 미리 보기를 사용할 수 없습니다. 쇼핑몰은 관리자 로그인을 인식하지 못하므로, 활성 키가 없으면 결제 방법이 모든 사용자에게 숨겨집니다. Edit 페이지를 한 번 연 후에는 관리자 Dashboard에 알림이 나타납니다. ×로 닫으면 7일 동안 숨겨집니다. 기존 주문에는 영향이 없습니다. 이미 시작된 결제는 계속 확인되고, 캡처와 환불도 작동합니다.
라이선스가 만료되어도 확장 기능은 계속 작동하지만, 업데이트와 지원에는 갱신이 필요합니다. 관리자 Dashboard 또는 Edit 페이지를 열면 상태가 자동으로 다시 확인됩니다. 키를 입력한 후 처음 14일 동안은 하루에 한 번, 그 후에는 일주일에 한 번 확인합니다. Cron 작업은 필요하지 않습니다. 확장 기능을 제거하면 라이선스 키와 라이선스 상태는 항상 삭제됩니다.
문제 해결
Razorpay가 체크아웃에 나타나지 않음: 라이선스가 활성 상태인지, Enable/Disable이 켜져 있는지, 그리고 현재 모드에 두 키가 모두 있는지 확인하십시오. 테스트 모드에서는 Test Key ID와 Test Key Secret, 라이브 모드에서는 Live Key ID와 Live Key Secret이 필요합니다. 키가 없으면 설정 페이지에 알림이 표시됩니다. 또한 결제 주소가 선택한 Geo Zone에 있는지, 주문이 설정의 Total에 도달하는지 확인하십시오.
결제는 완료되었지만 주문이 상태 없이 남아 있음: 웹훅이 작동하지 않습니다. Razorpay Dashboard에서 사용 중인 모드(Test 또는 Live)에 웹훅이 있는지, 그 URL이 Webhook URL에 표시된 것과 정확히 일치하는지, 그리고 다섯 개의 이벤트가 모두 선택되었는지 확인하십시오. Webhook Secret이 Razorpay의 시크릿과 같은지도 확인하십시오. 고객이 팝업에서 돌아오거나 같은 장바구니의 결제를 다시 시작하면 주문도 상태를 받습니다.
웹훅이 Webhook secret not configured로 응답함: Webhook Secret이 비어 있습니다. Razorpay 웹훅의 시크릿을 입력하십시오. Razorpay가 나중에 이벤트를 다시 보냅니다.
웹훅이 Invalid signature 또는 Missing signature로 응답함: 설정의 시크릿이 Razorpay 웹훅의 시크릿과 다릅니다. 테스트 웹훅과 라이브 웹훅 모두에 대해 두 곳에 같은 시크릿을 입력하십시오.
웹훅이 Retry later로 응답함: 확장 기능이 Razorpay API로 캡처를 확인하지 못했거나, 주문 상태를 설정하지 못했거나, 같은 순간 다른 요청이 장바구니를 갱신하고 있었습니다. Razorpay가 이벤트를 자동으로 다시 보냅니다. 이유는 Log에 있습니다.
브라우저에서 웹훅 URL이 Method not allowed를 표시함: 정상입니다. 이 URL은 Razorpay의 요청만 받아들입니다.
주문이 검토 상태에 있음: VibeFox Razorpay Payment 탭의 메모를 읽으십시오. 금액이나 통화가 주문과 일치하지 않았거나, 취소된 주문에 대해 결제가 도착했거나, 그 시점에 Razorpay API로 확인할 수 없어 웹훅을 기다리고 있는 경우입니다.
고객이 결제 중 오류를 봄: 확장 기능 페이지의 Log 필드를 확인하십시오. Enable Logging이 꺼져 있어도 오류는 기록됩니다. 잘못된 키는 결제 방법을 현재 사용할 수 없다는 메시지를 표시합니다. Razorpay의 다른 이유는 Razorpay could not accept this payment: 뒤에 표시됩니다.
팝업이 열리지 않음: Razorpay Checkout 스크립트가 콘텐츠 차단 프로그램이나 연결에 의해 차단되었습니다. 고객은 메시지를 보고 페이지를 새로 고칠 수 있습니다.
탭에 캡처 또는 환불 양식이 없음: 탭에 이유가 표시됩니다. 결제가 아직 캡처되지 않았거나, 전액 환불되었거나, 사용자 그룹에 확장 기능을 수정할 권한이 없거나, 결제가 이루어진 모드의 키가 설정되지 않은 경우입니다(The payment was made in Test mode, but the Test Key ID / Key Secret are not configured. 또는 라이브 모드에 대한 같은 메시지). 해당 모드의 키를 입력하고 다시 시도하십시오.
제거
Extensions > Extensions로 이동하여 유형으로 Payments를 선택하고, VibeFox Razorpay Payment 옆의 Uninstall(빨간색 − 버튼)을 클릭하십시오. 이 확장 기능의 라이선스 키와 라이선스 상태는 항상 제거됩니다. OpenCart는 확장 기능 자체의 설정을 항상 제거합니다. 즉 Enable/Disable, Sort Order, Geo Zone, Total, 그리고 Orders 섹션의 주문 상태입니다. 이들은 재설치하면 기본값으로 돌아갑니다. OpenCart 4에서는 확장 기능의 이벤트와, 점검 모드에서도 웹훅을 통과시키는 시작 액션도 제거됩니다. Delete Data on Uninstall이 켜져 있으면 나머지 게이트웨이 설정(제목, 설명, 테스트 모드, 키, 결제 동작, 웹훅 시크릿, 로깅)과 로그가 삭제됩니다. 꺼져 있으면 나중에 재설치할 수 있도록 유지됩니다. Razorpay 거래와 환불은 항상 유지되므로, 재설치 후에도 이전에 결제된 주문을 캡처하고 환불할 수 있습니다. 기존 주문은 결제 메모를 그대로 유지합니다.
OpenCart 4에서 확장 기능의 파일도 제거하려면, 제거 후 Extensions > Installer로 이동하여 설치된 확장 기능 목록에서 VibeFox Razorpay Payment 옆의 Uninstall(주황색 − 버튼)을 클릭한 다음, 업로드된 패키지를 삭제하려면 Delete(빨간색 휴지통 버튼)를 클릭하세요.
Razorpay는 해당 소유자의 상표입니다. 이 확장 기능은 Razorpay와 제휴하거나 Razorpay의 보증을 받은 것이 아닙니다.
