뒤로

VibeFox Kushki for OpenCart — 도움말

요구 사항

OpenCart: 3.0.x (3.0.5.0에서 테스트됨) 또는 4.0.2 이상 (4.1.0.3에서 테스트됨).

PHP: 8.0 이상.

통화: USD(에콰도르) 또는 COP(콜롬비아). 다른 통화로 된 주문의 경우 결제 시 결제 수단이 표시되지 않습니다.

HTTPS: Kushki는 실제 운영 모드에서 체크아웃이 HTTPS로 제공되어야 합니다.

Kushki 계정: Kushki 테스트(UAT) 계정과 운영 계정의 Public Merchant ID 및 Private Merchant ID가 필요합니다. 이 값은 Kushki Console의 Developers > Credentials에 있습니다. 선택 사항인 웹훅을 사용하려면 각 계정의 웹훅 서명 키도 필요합니다(설정 항목 참조).

VibeFox 라이선스 키: vibefox.net에서 구매합니다. 키 하나는 도메인 하나에서만 사용할 수 있습니다.

설치

다운로드 파일은 두 OpenCart 버전용 패키지가 모두 들어 있는 zip 파일 하나입니다. 컴퓨터에서 압축을 푸십시오. 여기에는 README.txt, OpenCart 3 패키지 wcp_kushki_payment-oc3-(version).ocmod.zip, OpenCart 4 패키지 wcp_kushki_payment.ocmod.zip이 들어 있습니다. 사용 중인 OpenCart 버전의 패키지만 설치하십시오. 라이선스 키는 두 버전 모두 같습니다.

OpenCart 3

1. 관리자 페이지에서 Extensions > Installer로 이동하여 Upload를 클릭하고 wcp_kushki_payment-oc3-(version).ocmod.zip 파일을 선택합니다. 이 확장 기능에는 OCMOD 수정 사항이 없으므로 Extensions > Modifications를 새로 고칠 필요가 없습니다. 설치 도구 대신 이 패키지의 upload 폴더 내용을 쇼핑몰의 루트 폴더에 복사할 수도 있습니다.

2. Extensions > Extensions로 이동하여 유형으로 Payments를 선택합니다. VibeFox Kushki Payment를 찾아 Install(녹색 + 버튼)을 클릭합니다. 관리자 사용자에게 결제 확장 기능 목록을 수정할 권한이 있어야 합니다.

3. Edit(연필 버튼)을 클릭하여 설정 페이지를 엽니다. 페이지 상단의 라이선스 블록에 있는 License key에 VibeFox 라이선스 키를 붙여 넣고 Activate를 클릭합니다(라이선스 키 항목 참조).

4. 테스트용 Public Merchant ID와 Private Merchant ID를 입력하고 Test mode를 켜 둡니다. 선택적으로 Kushki Console에서 웹훅을 설정하고 그 서명 키를 붙여 넣습니다(설정 항목 참조).

5. Enable / Disable을 켜고 Save를 클릭한 다음 테스트 주문을 합니다. 준비가 되면 운영용 Merchant ID(및 운영용 웹훅 서명)를 입력하고 Test mode를 끕니다.

OpenCart 4

1. 관리자 페이지에서 Extensions > Installer로 이동하여 Upload를 클릭하고 wcp_kushki_payment.ocmod.zip 파일을 선택합니다. 파일 이름을 바꾸지 마십시오. OpenCart 4는 확장 기능 코드를 파일 이름에서 가져오므로, 이름을 바꾼 패키지는 작동하지 않습니다.

2. 같은 페이지의 설치된 확장 기능 목록에 패키지가 나타납니다. 그 옆의 Install(녹색 + 버튼)을 클릭합니다.

3. Extensions > Extensions로 이동하여 유형으로 Payments를 선택합니다. VibeFox Kushki Payment를 찾아 Install(녹색 + 버튼)을 클릭한 다음 Edit(연필 버튼)를 클릭합니다.

4. 라이선스 키, Merchant ID, 웹훅을 OpenCart 3의 3~5단계와 같이 입력합니다. 설정 페이지와 필드는 두 버전 모두 같습니다. 다른 것은 웹훅 URL뿐입니다(웹훅 항목 참조).

새로 설치하면 결제 수단은 꺼진 상태이고 테스트 모드는 켜진 상태로 시작합니다.

설정

모든 설정은 확장 기능 페이지에 있습니다: Extensions > Extensions > Payments > VibeFox Kushki Payment > Edit. 섹션은 왼쪽에 나열되며, 목록 아래의 Save 버튼이 페이지 전체를 저장합니다. 설정 위에서 페이지는 결제 수단이 켜져 있지만 현재 모드의 Merchant ID가 없는 경우(이때 결제 수단은 체크아웃에서 숨겨집니다), 쇼핑몰의 기본 통화가 USD나 COP가 아닌 경우, HTTPS 없이 운영 모드를 사용하는 경우(OpenCart 4에서는 쇼핑몰 주소가 http://로 시작하는 경우), 현재 모드에 웹훅 서명 키가 없는 경우에 경고를 표시합니다. 테스트 모드가 켜져 있는 동안에는 Test mode is on: the Kushki test environment is used, no real money is charged.를 표시합니다. 확장 기능을 수정할 권한이 없으면 페이지에 설정은 보이지만 저장할 수는 없습니다.

저장할 때 Title은 비어 있을 수 없고 128자를 넘을 수 없으며, Sort Order는 정수여야 합니다(음수 허용), Total은 0 이상의 숫자여야 하고, 모든 주문 상태가 존재해야 합니다. 값이 잘못되면 아무것도 저장되지 않으며, 페이지에 해당 필드가 표시됩니다. ID 앞뒤의 공백은 저장할 때 제거됩니다.

Kushki

Enable / Disable: Enable Kushki card payments는 결제 수단을 켜거나 끕니다. 기본값: 꺼짐.

Title: 고객이 체크아웃에서 보는 결제 수단 이름입니다. 주문에 저장되는 결제 수단 이름이기도 합니다. 기본값: Credit / debit card (Kushki). 필수 항목이며 최대 128자입니다.

Description: Confirm Order 단계에서 카드 양식 위에 표시되는 텍스트입니다. 기본값: Pay securely with your card. Card details are entered in a Kushki form and never stored on this site.

Sort Order: 체크아웃에서 Kushki가 결제 수단들 가운데 표시되는 위치입니다. 비워 두거나 정수를 입력합니다.

Geo Zone: 선택한 지역(Geo Zone)에 속한 결제 주소에만 Kushki를 제공합니다. 기본값: All zones. 지역은 System > Localisation > Geo Zones에서 설정합니다.

Total: Kushki를 제공하기 전에 주문이 도달해야 하는, 쇼핑몰 기본 통화 기준의 체크아웃 금액입니다. 비워 두면 금액과 관계없이 Kushki를 제공합니다.

API 인증 정보

Kushki Console(Developers > Credentials; 이 페이지에는 Console 링크가 있습니다)에서 Public Merchant ID와 Private Merchant ID를 복사합니다. 테스트(UAT) 계정과 운영 계정의 ID는 서로 다릅니다. 테스트 모드는 테스트 ID만, 운영 모드는 운영 ID만 사용합니다.

Test mode: Kushki 테스트(UAT) 환경을 사용합니다. 테스트 Merchant ID, 테스트 카드 양식, 테스트 API를 함께 사용합니다. 실제 금액은 청구되지 않으며, 체크아웃에 TEST MODE 배지가 표시됩니다. 기본값: 켜짐. 실제 결제를 받으려면 끄십시오. 환불은 항상 결제가 이루어졌던 환경으로 처리됩니다.

Test Public Merchant ID: Kushki 테스트 계정의 Public Merchant ID입니다. 카드 양식을 불러오는 데 사용됩니다.

Test Private Merchant ID: Kushki 테스트 계정의 Private Merchant ID입니다. 서버에서 청구와 환불에 사용됩니다.

Live Public Merchant ID: Kushki 운영 계정의 Public Merchant ID입니다.

Live Private Merchant ID: Kushki 운영 계정의 Private Merchant ID입니다. 비밀로 보관하십시오.

저장된 Private Merchant ID와 웹훅 서명은 다시 표시되지 않습니다. 필드는 비어 있고 Saved — leave empty to keep it.를 표시합니다. 값을 변경하려는 경우에만 새 값을 입력하십시오. 저장된 값을 삭제하려면 필드 아래의 Clear the saved value on save를 선택하고 Save를 클릭합니다.

웹훅(권장)

결제는 Kushki API 응답으로 즉시 확인되므로 웹훅이 필수는 아닙니다. 웹훅은 응답이 유실된 결제(예: 시간 초과)를 추가로 확인하고, Kushki Console에서 이루어진 취소, 환불, 차지백을 알려 줍니다. Kushki Console(Webhooks)에서 이 섹션의 Webhook URL에 표시된 URL을 추가하십시오. URL은 OpenCart 3에서는 https://your-store/index.php?route=extension/payment/wcp_kushki_payment/webhook, OpenCart 4에서는 https://your-store/index.php?route=extension/wcp_kushki_payment/payment/wcp_kushki_payment.webhook과 비슷한 형태이며, OpenCart 설치의 쇼핑몰 주소를 바탕으로 만들어집니다. 설정에 표시된 URL을 정확히 복사하십시오. 테스트 계정과 운영 계정 모두에 대해 이 작업을 하십시오.

이 확장 기능은 다음 카드 알림을 처리합니다:

승인된 청구: 청구 응답이 유실된 주문을 확인하거나, 티켓 번호, 금액, 통화가 일치하면 검토 상태의 주문을 확인합니다.
거절된 청구: 대기 중인 청구 시도를 마칩니다. 같은 청구의 검토 상태 주문은 Failed Status로 설정됩니다.
취소, 환불, 차지백 및 기타 이벤트: 주문 메모에 추가됩니다. 주문 상태는 변경되지 않습니다.

Test webhook signature: Kushki 테스트 계정의 웹훅 서명 키(Console > Webhooks)입니다.

Live webhook signature: Kushki 운영 계정의 웹훅 서명 키입니다.

유효한 서명이 없는 웹훅은 거부됩니다. 알림은 결제가 이루어진 모드의 키로 서명되어야 하므로, 테스트 알림이 운영 결제를 확인하는 일은 없습니다. 서명 키가 없으면 모든 웹훅 알림이 거부되지만, 결제는 API 응답으로 확인되므로 계속 작동합니다.

주문

OpenCart는 Confirm Order 단계에서 상태 없이 주문(누락된 주문)을 만듭니다. 주문은 Kushki가 카드 청구를 승인한 후에야 상태를 얻습니다. 아래 각 필드에는 OpenCart 주문 상태가 나열됩니다.

Order Status After Payment: Kushki가 주문 금액과 통화에 맞는 티켓 번호와 함께 청구를 승인했습니다. 기본값: Processing(처리중).

On Hold (Review) Status: Kushki가 티켓 번호 없이 청구를 승인했거나, 다른 금액 또는 통화를 보고했습니다. 메모에 그 이유가 설명됩니다. 배송 전에 Kushki Console에서 결제를 확인하십시오. 기본값: Pending(결제 대기). OpenCart에는 보류(On hold) 상태가 없기 때문입니다. System > Localisation > Order Statuses에서 직접 상태를 만들고 여기에서 선택할 수 있습니다.

Failed Status: 검토 상태의 주문으로, 그 청구가 나중에 Kushki에 의해 거절된 것으로 보고된 경우(웹훅)입니다. 기본값: Failed(실패).

Canceled Status: 이 상태(또는 환불됨 상태)의 주문은 늦게 도착한 웹훅으로 다시 열리지 않습니다. 기본값: Canceled(취소됨).

Refunded Status: 주문 탭에서 결제를 환불한 후에 설정됩니다. 기본값: Refunded(환불됨).

고급

Debug log: Kushki 요청과 웹훅을 OpenCart 로그 폴더(storage/logs)의 kushki_p_debug.log.php에 기록합니다. 이 파일은 웹에서 열 수 없습니다. 경고와 오류는 항상 기록됩니다. 로그에는 Merchant ID, 카드 토큰, 고객 이메일이 절대 포함되지 않습니다. 기본값: 꺼짐.

Log: 로그의 크기와 최근 항목을 보여 줍니다. Clear log를 클릭하면 비워집니다.

Delete data on uninstall: 켜져 있으면 확장 기능을 제거할 때 설정과 로그가 삭제됩니다. Kushki 결제 기록(청구와 환불)은 항상 유지되므로, 다시 설치한 후에도 이전 주문을 환불할 수 있습니다. 기본값: 꺼짐.

가져오기 / 내보내기

Export: Download JSON은 설정을 JSON 파일로 저장합니다. Private Merchant ID와 웹훅 서명은 내보내지지 않습니다.

Import: 이전에 내보낸 JSON을 붙여 넣고 Import를 클릭하면 설정이 복원됩니다. 저장된 비밀 값은 유지됩니다.

체크아웃

Payment Method 단계에서 고객은 결제 수단을 선택합니다(기본값은 Credit / debit card (Kushki)). OpenCart는 Confirm Order 단계에서 여전히 상태가 없는 주문을 만듭니다. 그 단계에서 고객은 설명과, 주문 통화로 된 주문 총액이 표시된 Kushki 카드 양식을 봅니다. 고객은 카드 정보를 입력하고, Kushki 양식이 할부를 제공하면 할부를 선택한 뒤, Kushki 양식 안의 결제 버튼을 누릅니다. 그러면 양식 아래 안내 문구에 나와 있듯이 결제가 자동으로 전송됩니다: Enter your card in the secure Kushki form above and press its pay button — the payment is sent automatically. 고객이 대신 OpenCart의 Confirm Order 버튼을 클릭하면 Please enter your card details in the Kushki form and press its pay button. 메시지가 표시됩니다.

OpenCart 4에서 고객은 결제 수단 블록의 Choose 버튼을 눌러 Payment method options 창에서 결제 수단을 선택합니다. 그러면 체크아웃 페이지 하단의 주문 확인 블록에서 Confirm Order 버튼 위에 Kushki 카드 양식이 나타나며, OpenCart가 해당 블록을 다시 불러올 때마다 현재 주문 총액에 맞게 다시 만들어집니다.

이후 쇼핑몰이 서버에서 카드에 청구합니다. 주문은 Kushki가 티켓 번호로 확인한 후에야 결제 완료로 표시됩니다. 그런 다음 주문은 일반적인 OpenCart 방식으로 상태를 얻고, 주문 이메일과 재고 업데이트가 이루어지며, 장바구니는 비워지고, 고객은 Your card payment has been received.가 표시된 OpenCart 주문 완료 페이지를 봅니다. Kushki가 보고한 금액과 통화는 주문과 대조됩니다. 검토 상태의 주문에는 Your payment is being reviewed. We will update your order as soon as the review is complete.가 표시됩니다.

카드가 거절되면 주문은 상태 없이 남고, 고객은 Confirm Order 단계에 머물며 Your payment was declined와 Kushki가 알려 준 이유를 보게 되고, 다시 로드된 양식에서 다른 카드를 시도할 수 있습니다. 네트워크, 키 또는 서버 문제가 있으면 고객은 The payment could not be processed right now. Please try again in a moment or choose another payment method.를 봅니다. 기술적인 이유는 로그와 주문 메모에 기록됩니다. 결제가 처리되는 동안 다시 클릭하면 A payment for this order is already being processed. Please wait a moment and check your order status.가 표시됩니다.

OpenCart 3는 Confirm Order 단계가 표시될 때마다 새 주문을 만들지만, OpenCart 4는 체크아웃을 위한 주문 하나를 유지하고 업데이트합니다. 어느 경우든 하나의 장바구니는 한 번만 결제됩니다. 이미 결제된 장바구니나, 주문에 아직 상태가 없는 승인된 청구는 다시 청구되지 않으며, 고객은 완료 페이지를 봅니다. Kushki 응답이 유실되면(예: 시간 초과) 고객은 일반 메시지를 보지만, 청구 시도는 유지됩니다. 서명된 웹훅이 승인된 청구를 알리면 주문은 상태를 얻습니다. 웹훅이 도착하기 전에 고객이 다시 결제하면 그것은 새로운 청구입니다. 첫 번째 청구가 나중에 승인되면, 그 결과는 이중 청구 가능성에 대한 메모만 추가합니다.

OpenCart 4는 성공 페이지가 표시될 때까지 체크아웃에 주문을 유지합니다. 그 사이 결제 없이 주문이 닫혔다면(예: 검토 중이던 청구가 나중에 거절되었거나 쇼핑몰에서 취소한 경우), 또는 이전 장바구니에 대해 이미 결제되었고 그 뒤 장바구니가 바뀌었다면, 결제 시 고객은 체크아웃 페이지로 돌아가며 다음 Confirm Order에서 새 주문이 만들어집니다. 주문이 닫혔던 경우 체크아웃 페이지 상단에는 Your previous order is closed (declined, cancelled or refunded by the store). Please confirm the order again: the cart will be paid with a new order.가, 이전 장바구니에 대해 이미 결제되었던 경우에는 Your previous order is already paid for other cart contents. Please confirm the order again: the current cart will be paid with a new order.가 표시됩니다. 장바구니 변경(수량 변경 포함)은 자체 청구가 필요한 새 장바구니로 취급됩니다.

쇼핑몰이 유지 보수 모드인 동안에도 웹훅은 작동합니다. OpenCart 3는 결제 확장 기능의 요청을 통과시키며, OpenCart 4에서는 확장 기능이 웹훅용 시작 액션(startup action)을 추가합니다. 3-D Secure, 사기 방지 규칙, 제공되는 할부는 Kushki Console에서 설정합니다.

이 확장 기능은 일회성 카드 결제만 지원합니다. 부분 환불, 저장된 카드, 구독은 지원하지 않습니다. 현금, 계좌 이체(PSE), 체크카드 리디렉션 결제도 지원하지 않으며, 별도의 승인과 캡처도 없습니다.

주문 및 환불

주문 상태

상태 없음(누락된 주문): 고객이 결제하지 않았거나, 카드가 거절되었거나, Kushki 응답이 유실되었고 웹훅이 아직 도착하지 않은 경우입니다. Sales > Orders에서 이러한 주문은 Order Status 필터를 Missing Orders로 설정했을 때만 표시됩니다.

Order Status After Payment(기본값 Processing): Kushki가 청구를 확인했습니다(API 응답 또는 웹훅으로). 메모에는 모드, 금액, Kushki 티켓 번호, 참조 번호가 표시됩니다.

On Hold (Review) Status(기본값 Pending): Kushki가 티켓 번호 없이 성공을 반환했거나, 주문과 다른 금액 또는 통화를 보고했습니다. 메모에 이유가 설명되어 있습니다. Kushki Console에서 거래를 확인하고 주문을 처리하거나 결제를 환불하십시오. 나중에 티켓 번호와 일치하는 금액이 담긴 서명된 승인이 도착하면 주문은 Order Status After Payment로 바뀝니다.

Failed Status(기본값 Failed): 웹훅이 검토 상태 주문의 청구가 거절되었다고 보고했습니다.

Refunded Status(기본값 Refunded): 결제가 확장 기능을 통해 환불되었습니다.

이미 결제, 취소 또는 환불된 주문에 대해 Kushki가 다른 승인된 청구를 보고하면 주문은 변경되지 않습니다. 메모는 이중 청구 여부를 확인하고 Kushki Console에서 환불하라고 안내합니다. 운영 결제에 대한 테스트 환경의 웹훅(또는 그 반대)은 메모와 함께 무시됩니다.

메모는 고객이 보지 않는 주문 History의 항목입니다.

VibeFox Kushki Payment 탭

Sales > Orders에서 Kushki로 결제된 주문을 여십시오. 주문 페이지 하단, History 및 Additional 옆에 있는 VibeFox Kushki Payment 탭에는 Ticket number(테스트 결제에는 TEST 표시 포함), Transaction reference, Environment, Result, Charged / order amount 금액, 환불 양식, 환불 내역, 그리고 주문의 Kushki notes가 표시됩니다. 이 탭은 확장 기능에 접근할 수 있는 사용자에게 표시됩니다.

환불

Kushki는 청구 전체를 환불하므로 전액 환불만 가능합니다. VibeFox Kushki Payment 탭에는 Kushki가 청구한 Amount가 채워져 있습니다. 필요하면 Reason (optional)을 입력하고 Refund via Kushki를 클릭한 뒤, Refund the full payment through Kushki? This cannot be undone. 질문을 확인하십시오. 확장 기능을 수정할 권한이 있어야 합니다(System > Users > User Groups에서 설정). 그 밖의 금액을 입력하면 확장 기능은 해당 금액과 함께 Kushki refunds the full payment only. Enter the full charged amount를 표시하며, 아무것도 전송하지 않습니다. 환불은 Kushki가 청구한 금액과 통화로 이루어지므로, 금액 불일치가 있을 경우 고객은 주문 총액이 아니라 실제로 청구된 금액을 돌려받습니다. 결제는 한 번만 환불할 수 있습니다.

환불은 결제가 이루어졌던 모드(테스트 또는 운영)로 전송되므로, 해당 모드의 Private Merchant ID가 설정되어 있어야 합니다. Kushki가 환불을 승인하지 않으면, 탭에 Kushki 코드 및 메시지와 함께 Kushki refund failed가 표시되며 환불은 기록되지 않습니다. 환불이 성공하면 환불 내역과 메모에 Kushki 환불 티켓이 추가되고, 고객에게 알리지 않으며 수동 상태 변경과 마찬가지로 상품을 재고로 되돌리지 않고 주문은 Refunded Status가 됩니다. 환불에는 티켓 번호가 있는 확정된 Kushki 청구가 필요합니다.

Sales > Returns의 상품 반품은 Kushki를 통해 돈을 돌려주지 않습니다. Kushki Console에서 이루어진 취소와 환불은 웹훅으로 도착하며 메모에 추가됩니다. 주문 상태는 자동으로 변경되지 않습니다.

라이선스 키

이 확장 기능은 vibefox.net에서 받은 VibeFox 라이선스 키로 작동합니다. License — VibeFox Kushki Payment 라이선스 블록은 Extensions > Extensions > Payments > VibeFox Kushki Payment > Edit의 첫 번째 블록으로, 설정 위에 있습니다. License key에 키를 붙여 넣고 Activate를 클릭하십시오. 그 후 블록에는 마스킹된 키, 상태(예: 라이선스 유효 기간의 종료일과 도메인), 그리고 상태를 다시 확인하는 Check now, 다른 키를 입력하는 Change key, 이 쇼핑몰에서 키를 제거하는 Remove key 버튼이 표시됩니다. 그 아래에는 Product: opencart-payment-kushki 줄과, 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 계정에서 자리를 비우십시오.

활성 키가 없으면 Kushki는 체크아웃에서 고객에게 표시되지 않습니다. 그래도 결제가 시작되면 고객은 This payment method is not available. Please choose another one.를 봅니다. 같은 브라우저에서 관리자 페이지에 로그인한 관리자 사용자에게는 결제 수단이 쇼핑몰에 (unlicensed — visible to admins only) 표시와 함께 계속 보이므로, 키를 구매하기 전에 확장 기능을 설정하고 테스트할 수 있습니다. OpenCart 4에서는 이 미리 보기를 사용할 수 없습니다. 쇼핑몰은 관리자 로그인을 인식하지 않으므로, 활성 키가 없으면 결제 수단은 모든 사용자에게 숨겨집니다. Edit 페이지를 한 번 열면 관리자 Dashboard에 알림이 나타납니다. ×로 닫으면 7일 동안 숨겨집니다. 기존 주문은 영향을 받지 않습니다. 이미 시작된 결제는 계속 확인되며, 환불도 작동합니다.

라이선스가 만료되어도 확장 기능은 계속 작동하지만, 업데이트와 지원에는 갱신이 필요합니다. 관리자 Dashboard나 Edit 페이지를 열면 상태가 자동으로 다시 확인됩니다. 키를 입력한 후 처음 14일 동안은 하루에 한 번, 그 후에는 일주일에 한 번입니다. cron 작업은 필요하지 않습니다. 확장 기능을 제거하면 라이선스 키와 라이선스 상태는 항상 삭제됩니다.

문제 해결

Kushki가 체크아웃에 나타나지 않음: 라이선스가 활성 상태인지, Enable / Disable이 켜져 있는지, 현재 모드에 두 Merchant ID(테스트 모드에서는 테스트 ID, 운영 모드에서는 운영 ID)가 모두 있는지 확인하십시오. ID가 없으면 설정 페이지에 경고가 표시됩니다. 주문 통화가 USD 또는 COP인지, 결제 주소가 선택한 Geo Zone에 있는지, 주문이 설정의 Total에 도달했는지 확인하십시오.

결제는 완료되었지만 주문에 상태가 없음: 시간 초과 등으로 Kushki API 응답이 유실되었습니다. 웹훅이 이런 결제를 확인합니다. Kushki Console에서 웹훅 URL이 Webhook URL에 표시된 URL과 정확히 같은지, 사용 중인 모드의 계정에 대한 것인지, 그리고 해당 계정의 서명 키가 맞는 필드(Test webhook signature 또는 Live webhook signature)에 들어 있는지 확인하십시오. 결제된 금액과 통화 없이 승인된 청구는 주문을 On Hold (Review) Status로 둡니다.

웹훅이 Webhook signature not configured로 응답: 웹훅 서명이 하나도 설정되어 있지 않습니다. 설정에 서명 키를 붙여 넣으십시오.

웹훅이 Invalid signature로 응답: 서명 키가 다른 계정이나 모드에 속하거나, 알림이 전달 과정에서 변경되었습니다.

웹훅이 Order mismatch로 응답: 알림이 이 주문의 청구 시도(시도 키 또는 거래)에 속하지 않습니다. 아무것도 변경되지 않습니다.

웹훅이 Busy, retry later로 응답: 같은 시점에 다른 요청이 주문을 처리하고 있었거나, 주문 상태를 설정할 수 없었습니다. Kushki는 알림을 다시 보낼 수 있습니다. 오류는 항상 로그에 기록됩니다.

웹훅 URL이 브라우저에서 POST만 표시: 정상입니다. 이 URL은 Kushki의 알림만 받습니다.

카드 양식이 로드되지 않음: 고객은 The Kushki card form could not be loaded. Please reload the page or choose another payment method.를 봅니다. 현재 모드의 Public Merchant ID를 확인하십시오.

고객에게 This payment option is not available in this store. Please pay by card.: 가 표시됨: Kushki 양식에서 카드가 아닌 결제 옵션이 선택되었습니다. 이 확장 기능은 카드 결제만 청구합니다.

고객이 결제할 때 오류를 봄: Debug log를 켜고 확장 기능 페이지의 Log 필드를 확인하십시오. This payment method is not available. Please reload the checkout page.는 체크아웃 세션이 더 이상 주문과 일치하지 않거나, 그 사이에 결제 수단이 꺼졌다는 뜻입니다. 고객은 체크아웃을 새로 고쳐야 합니다. 잘못되었거나 없는 Private Merchant ID는 결제를 처리할 수 없다는 일반 메시지를 표시합니다.

고객에게 Your payment was received, but the order could not be completed automatically가 표시됨: Kushki가 청구를 승인했지만 OpenCart가 주문 상태를 설정하지 못했습니다. 이유는 로그에 나타납니다. 같은 장바구니의 다음 결제 시도는 새로 청구하지 않고 상태를 설정합니다.

모드와 관련된 메시지로 환불이 실패함: 결제가 테스트 또는 운영 모드로 이루어졌는데 해당 모드의 Private Merchant ID가 설정되지 않았습니다. 입력한 뒤 다시 시도하십시오.

탭에 환불 양식이 없음: 탭에 이유가 표시됩니다. 결제가 이미 환불되었거나, 주문에 Kushki 티켓 번호가 없거나(No Kushki ticket number found for this order — refund it in the Kushki Console.), 사용자 그룹에 확장 기능을 수정할 권한이 없거나, 결제 모드의 Private Merchant ID가 설정되지 않았습니다.

제거

Extensions > Extensions로 이동하여 유형으로 Payments를 선택하고 VibeFox Kushki Payment 옆의 Uninstall(빨간색 − 버튼)을 클릭하십시오. 이 확장 기능의 라이선스 키와 라이선스 상태는 항상 제거됩니다. OpenCart는 확장 기능 자체의 설정을 항상 제거합니다: Enable / Disable, Sort Order, Geo Zone, Total, 그리고 Orders 섹션의 주문 상태들이며, 이 값들은 재설치 시 기본값으로 돌아갑니다. 확장 기능의 OpenCart 이벤트도 제거됩니다(OpenCart 4에서는 체크아웃 페이지 상단에 메시지를 표시하는 이벤트를 포함한 이벤트와, 유지 보수 모드에서 웹훅을 통과시키는 시작 액션도 제거됩니다). Delete data on uninstall이 켜져 있으면 나머지 설정(제목, 설명, 테스트 모드, Merchant ID, 웹훅 서명, 로깅)과 로그가 제거됩니다. 꺼져 있으면 나중에 다시 설치할 때 쓸 수 있도록 유지됩니다. Kushki 결제 기록(청구와 환불)은 항상 유지되므로, 이전에 결제된 주문은 재설치 후에도 환불할 수 있습니다. 기존 주문은 결제 메모를 그대로 유지합니다.

OpenCart 4에서 파일까지 제거하려면, 제거한 뒤 Extensions > Installer로 이동하여 설치된 확장 기능 목록에서 VibeFox Kushki Payment 옆의 Uninstall(주황색 − 버튼)을 클릭한 다음, Delete(빨간 휴지통 버튼)를 클릭하여 업로드된 패키지를 삭제하십시오.

Kushki는 해당 소유자의 상표입니다. 이 확장 기능은 Kushki와 제휴하거나 Kushki의 승인을 받지 않았습니다.