뒤로

VibeFox Paystack for PrestaShop — 도움말

요구 사항

PrestaShop: 8.0 ~ 9.x.

PHP: 8.0 이상. 이전 PHP 버전에서는 모듈이 설치되지 않습니다.

통화: 장바구니는 Paystack이 허용하는 통화(NGN, USD, GHS, ZAR, KES, XOF, EGP 또는 RWF 중 Paystack 계정에서 활성화된 통화)여야 합니다. 다른 통화에서는 결제 방식이 숨겨집니다. XOF와 RWF에서는 Paystack이 정수 금액만 허용합니다.

Paystack 계정: Paystack 계정의 비밀 키가 필요합니다: 테스트 비밀 키(sk_test_...) 및/또는 라이브 비밀 키(sk_live_...). 결제는 Paystack 호스팅 페이지에서 이루어지므로 공개 키(pk_...)는 필요하지 않습니다. Paystack 대시보드에서 쇼핑몰의 웹훅 URL도 설정합니다(구성 참조). 웹훅을 받으려면 쇼핑몰이 인터넷에서 접근 가능해야 합니다.

VibeFox 라이선스 키: vibefox.net에서 구매합니다. 키 하나는 도메인 하나에서 작동합니다.

설치

1. 백오피스에서 Modules > Module Manager로 이동하여 Upload a module을 클릭합니다. 모듈의 ZIP 파일을 선택합니다.

2. 업로드가 끝나면 Configure를 클릭하거나, 나중에 모듈 목록에서 VibeFox Paystack Payment를 찾아 Configure를 클릭합니다.

3. Configure 페이지 상단의 라이선스 블록에서 License key에 VibeFox 라이선스 키를 입력하고 Activate를 클릭합니다(라이선스 키 참조).

4. Paystack 대시보드에서 비밀 키를 복사해 붙여넣고, Paystack 대시보드에서 웹훅 URL을 설정합니다(구성 참조).

5. Enable/Disable을 켜고 Save를 클릭합니다. 테스트 결제를 완료할 때까지 Test Mode를 켜 두었다가, 실제 결제를 받으려면 끕니다.

설치 시 모듈은 두 가지 주문 상태, Awaiting Paystack payment와 Paystack payment on hold를 만듭니다. PrestaShop은 모든 통화, 국가 및 고객 그룹에 대해 새 결제 모듈을 제공합니다. 이는 Payment > Preferences에서 제한할 수 있습니다.

구성

모든 설정은 모듈 페이지에 있습니다: Modules > Module Manager > VibeFox Paystack Payment > Configure. 필드가 있는 각 섹션에는 페이지 전체를 저장하는 자체 Save 버튼이 있습니다. 필드 위의 상태 상자는 모드를 표시합니다: 테스트 모드: 실제 금액은 청구되지 않습니다. 또는 라이브 모드: 실제 결제가 허용됩니다. 현재 모드의 비밀 키가 비어 있을 때, 비밀 키 필드에 공개 키(pk_...)가 입력되었을 때, 라이브 모드에 테스트 키(sk_test_...)가 있거나 테스트 모드에 라이브 키(sk_live_...)가 있을 때, 그리고 Paystack이 쇼핑몰의 기본 통화를 허용하지 않을 때도 경고합니다. 키 문제가 있는 동안에는 결제 단계에서 결제 방식이 숨겨집니다.

Paystack

첫 번째 섹션의 제목은 Paystack이며, 현재 모드의 TEST 또는 LIVE 배지가 표시됩니다.

Enable/Disable: Enable Paystack Payment는 결제 방식을 켜거나 끕니다. 기본값: 꺼짐.

Title: 고객이 결제 단계에서 보는 결제 방식의 이름입니다. 주문에 저장되는 결제 방식 이름이기도 합니다. 기본값: Paystack. 필수.

Description: 결제 단계에서 결제 방식 아래에 표시되는 텍스트입니다. 기본값: Pay securely using your debit card, credit card, or bank account via Paystack.

API 키

Paystack 대시보드의 Settings > API Keys & Webhooks 페이지에서 비밀 키를 복사합니다. 이 섹션에는 해당 페이지로 가는 링크가 있습니다.

Test Mode: 새 결제에 테스트 비밀 키를 사용하며, 실제 금액은 청구되지 않습니다. 끄면 라이브 비밀 키로 실제 결제를 받습니다. 다른 모드에서 이루어진 결제는 검증과 환불을 위해 여전히 해당 모드의 키를 사용합니다. 기본값: 켜짐. 켜져 있는 동안 고객에게는 결제 방식 아래에 테스트 모드가 활성화되었습니다. 실제 청구는 이루어지지 않습니다.가 표시됩니다.

Test Secret Key: Paystack 테스트 비밀 키입니다. sk_test_로 시작합니다.

Live Secret Key: Paystack 라이브 비밀 키입니다. sk_live_로 시작합니다.

저장된 키는 다시 표시되지 않습니다. 필드는 비어 있으며 저장됨 — 유지하려면 비워 두세요.라고 표시됩니다. 값을 변경하려는 경우에만 새 값을 입력하세요.

Clear saved secrets: 키의 체크박스를 선택하고 Save를 클릭하면 삭제됩니다. 필드가 비어 있으면 저장된 값이 유지됩니다.

웹훅

웹훅은 고객이 쇼핑몰로 돌아오지 않더라도 결제가 이루어졌음을 쇼핑몰에 알려 줍니다. Paystack 대시보드의 Settings > API Keys & Webhooks 페이지에서, 이 섹션의 Webhook URL에 표시된 URL을 Test Webhook URL과 Live Webhook URL에 모두 설정합니다. 친숙한 URL을 사용하면 다음과 같습니다: https://your-shop/module/wcp_paystack_payment/webhook. /en/ 같은 언어 코드가 붙을 수도 있습니다. 설정에 표시된 그대로 URL을 복사하세요.

Paystack은 모든 웹훅을 비밀 키로 서명하므로 그 밖에 설정할 것은 없습니다. 유효한 서명이 없는 웹훅은 거부됩니다. 모듈은 charge.success 이벤트를 사용합니다:

charge.success: 결제가 이루어졌습니다. 모듈은 결제가 시작된 모드의 비밀 키로 Paystack API에서 거래를 조회하고, 모든 항목이 일치하면 주문을 결제 완료로 표시합니다.

다른 이벤트에는 OK로 응답하며 무시합니다. 웹훅이 없으면 고객이 결제 후 쇼핑몰로 돌아왔을 때에만 주문이 확인됩니다. 나중에 완료되는 계좌 이체와 USSD 결제는 웹훅으로만 확인됩니다.

주문

Autocomplete Order: 켜면 결제 완료된 주문이 Payment accepted 대신 Delivered 상태가 되며, 상태 변경은 한 번만 이루어집니다. 기본값: 꺼짐.

고급

Debug log: Paystack 이벤트와 API 호출을 모듈 폴더의 logs/paystack_p_debug.log.php에 기록합니다. 이 파일은 웹에서 열 수 없습니다. 오류와 경고는 항상 기록됩니다. 키와 고객 데이터는 절대 기록되지 않습니다. 기본값: 꺼짐.

Log: 로그의 크기와 최근 항목을 표시합니다. Clear log를 클릭하면 로그가 비워집니다.

Delete data on uninstall: 켜면 모듈을 제거할 때 모듈 설정과 로그가 삭제됩니다. 주문에 저장된 결제 데이터는 항상 유지됩니다. 기본값: 꺼짐.

결제

결제 단계에서 고객은 결제 방식(기본값 Paystack)을 선택하고 주문을 확인합니다. 모듈은 장바구니 통화로 장바구니 합계에 대해, 고객의 이메일과 함께 Paystack 거래를 시작하고, 고객을 Paystack 호스팅 결제 페이지로 보냅니다. 고객은 그곳에서 Paystack 계정에서 활성화된 채널 중 하나로 결제합니다. 결제 화면에는 장바구니 번호와 고객 이름이 표시됩니다. 이 시점에는 아직 주문이 존재하지 않습니다.

결제 후 고객은 쇼핑몰로 돌아옵니다. 주문은 Paystack이 확인한 후에만 결제 완료로 표시됩니다. 고객이 돌아왔을 때와 웹훅이 도착했을 때 모듈은 Paystack API에서 거래를 조회하고 참조 번호, 상태, 금액, 통화를 확인합니다. 그런 다음 주문이 생성되고, 고객은 표준 주문 확인 페이지를 봅니다.

계좌 이체처럼 결제가 아직 처리 중이면, 고객이 돌아왔을 때 주문이 Awaiting Paystack payment 상태로 생성되고, 확인 페이지에는 Paystack이 결제를 확인하는 중입니다. 확인되는 즉시 이메일을 보내 드립니다.가 표시됩니다. 웹훅이 나중에 주문을 완료합니다. 고객이 돌아왔을 때 Paystack에 연결할 수 없으면 Payment confirmation 페이지가 고객에게 다시 결제하지 말 것을 요청하고 Check again과 Back to checkout을 제공합니다. 웹훅이 도착하는 즉시 주문이 생성됩니다. 보류 중인 주문의 경우 확인 페이지에는 결제가 접수되었으며 주문을 검토 중입니다. 필요한 사항이 있으면 연락드리겠습니다.가 표시됩니다.

고객이 Paystack 페이지에서 취소하거나 결제하지 않고 떠나면 주문은 생성되지 않고 장바구니는 유지됩니다. 고객은 예를 들어 결제가 취소되었습니다. 다시 시도하시거나 다른 결제 방식을 선택하실 수 있습니다., 결제가 완료되지 않았습니다. 다시 시도하시거나 다른 결제 방식을 선택하실 수 있습니다. 또는 결제가 거부되었습니다. 다시 시도하시거나 다른 결제 방식을 선택하실 수 있습니다. 같은 메시지와 함께 결제 단계로 돌아갑니다. 새로운 시도마다 새로운 Paystack 거래가 시작됩니다. 장바구니의 이전 결제 페이지는 계속 유효하며, 나중에 결제되면 그 결제도 허용됩니다.

주문 확인 페이지는 고객 본인의 브라우저에서만 열립니다. 복귀 링크가 다른 곳에서 열리면 결제는 여전히 확인되지만 주문은 표시되지 않습니다. 방문자는 결제 단계에서 중립적인 메시지를 봅니다.

Paystack이 결제를 시작할 수 없으면 고객은 결제 단계에 머무르며, 예를 들어 Paystack에서 결제를 시작할 수 없습니다: 다음에 Paystack이 제시한 이유가 표시되거나, Paystack을 일시적으로 사용할 수 없습니다. 잠시 후 다시 시도하시거나 다른 결제 방식을 선택해 주세요.라는 짧은 메시지가 표시됩니다. 장바구니 합계는 0보다 커야 하며, 고객에게는 유효한 이메일 주소가 필요합니다.

웹훅은 쇼핑몰이 유지 보수 모드인 동안에도 작동하며, 쇼핑몰의 국가 제한에 의해 차단되지 않습니다.

이 모듈은 PrestaShop에서 인라인 또는 팝업 결제 양식, 저장된 카드, 구독, 분할 결제 또는 하위 계정, 결제 채널 선택 기능을 제공하지 않습니다.

주문 및 환불

주문 상태

아직 주문 없음: 고객이 Paystack으로 이동했지만 아직 결제하지 않았거나, Paystack 페이지를 떠났거나, Paystack이 아직 결제를 확인하지 않은 상태입니다. 장바구니만 존재합니다.

Awaiting Paystack payment: Paystack이 결제를 아직 처리하는 동안 고객이 돌아왔습니다. 예를 들어 계좌 이체나 USSD입니다. Paystack이 결제를 확인하면 주문은 결제 완료 상태로 이동합니다. 그런 결제가 끝내 완료되지 않으면, 직접 변경하기 전까지 주문은 이 상태로 남습니다.

Payment accepted 또는 Delivered: 결제가 확인되었습니다. Autocomplete Order가 켜져 있으면 상태는 배송 완료입니다. 결제는 거래 ID로 Paystack 참조 번호(pscart_...)와 함께 기록됩니다. 메모에는 금액, 참조 번호, 거래 번호, 모드(테스트 또는 라이브), 결제 채널, 카드 결제의 카드 종류와 끝 4자리, 그리고 고객이 부담한 Paystack 수수료(있는 경우)가 표시됩니다.

Paystack payment on hold: 결제된 금액 또는 통화가 주문과 일치하지 않습니다(메모 Paystack 금액 또는 통화 불일치). 예를 들어 결제 시작 후 장바구니가 변경되었거나, 주문이 취소된 뒤에 결제가 도착한 경우입니다. 메모에 확인할 내용이 설명되어 있습니다. 주문을 처리하거나 결제를 환불하세요.

결제 오류: Paystack은 Awaiting Paystack payment 상태 주문의 최신 결제 시도가 실패했거나 취소되었다고 보고합니다. 이전 시도의 실패는 주문을 변경하지 않습니다.

이미 결제 완료된 주문이 있는 장바구니에 대해 두 번째 결제가 도착하면 주문은 변경되지 않습니다. 메모는 Paystack 대시보드에서 중복 결제를 환불하라고 요청합니다. 발송됨 같은 다른 상태의 주문에 도착한 결제는 주문에 기록만 됩니다.

Paystack payment 블록

주문 페이지에는 참조 번호, 거래 ID, 테스트 결제용 Test mode 배지가 있는 모드, 결제 상태, 채널과 카드, 결제 날짜, 결제 금액과 환불 금액, 환불 내역, 주문의 Payment notes를 포함한 Paystack payment 블록이 표시됩니다.

환불

Paystack payment 블록에서 금액을 입력하고(아직 환불되지 않은 금액이 자동으로 채워집니다), 필요하면 사유를 입력한 다음 Refund via Paystack을 클릭합니다. 이 금액을 Paystack을 통해 환불하시겠습니까? 이 작업은 되돌릴 수 없습니다. 질문을 확인하세요. 전액 및 부분 환불을 지원합니다. 주문을 편집할 수 있는 권한이 필요하며, 모듈 페이지에 접근할 권한은 필요하지 않습니다. 환불은 주문을 결제한 거래로 가며, 환불이 이루어진 모드(테스트 또는 라이브)의 비밀 키를 사용하므로 그 키가 설정되어 있어야 합니다. 환불은 Paystack이 청구한 금액과 통화로 이루어집니다. 따라서 금액 또는 통화 불일치 후 보류 중인 주문의 경우 주문 합계가 아니라 고객이 실제로 결제한 금액까지만 환불할 수 있습니다. XOF와 RWF에서는 환불이 정수 금액이어야 합니다. Paystack은 환불을 대기열에 넣습니다. 메모와 환불 내역에는 Paystack이 반환한 상태(예: pending)와 환불 ID가 표시됩니다. Paystack이 환불을 받아들이지 않으면 블록에 Paystack 환불 실패:와 사유가 표시되며, 환불은 기록되지 않습니다. 전액 환불은 주문을 Refunded 상태로 만듭니다. 부분 환불은 상태를 바꾸지 않습니다. 환불은 Paystack이 결제를 확인한 후에 사용할 수 있습니다.

이 모듈은 크레딧 노트를 만들지 않습니다. 주문 페이지의 표준 PrestaShop 환불 버튼은 Paystack을 통해 돈을 돌려주지 않습니다.

Paystack 대시보드에서 이루어진 환불과 Paystack이 대기열에 넣은 환불의 최종 상태는 PrestaShop과 동기화되지 않습니다. 필요하면 수동으로 기록하세요.

라이선스 키

이 모듈은 vibefox.net에서 받은 VibeFox 라이선스 키로 작동합니다. 라이선스 블록 License — VibeFox Paystack Payment는 Modules > Module Manager > VibeFox Paystack Payment > Configure 페이지의 첫 번째 블록으로, 설정 위에 있습니다. License key에 키를 붙여 넣고 Activate를 클릭합니다. 그 후 블록에는 마스킹된 키, 상태(예: 라이선스가 유효한 날짜와 도메인), 그리고 다음 버튼이 표시됩니다: Check now(상태 다시 확인), Change key(다른 키 입력), Remove key(이 쇼핑몰에서 키 제거). 그 아래에는 Product: presta-payment-paystack 줄과 Manage licenses and domains in your account 링크가 있으며, 이 링크는 vibefox.net 계정을 엽니다. 이 모듈의 Configure 권한이 있는 직원만 키를 변경할 수 있습니다. 블록의 텍스트는 백오피스 언어를 따릅니다(영어와 러시아어 포함).

키가 허용되지 않으면 블록에 이유가 표시됩니다. 예: Key not found, This key belongs to another product, Domain limit reached 또는 날짜와 함께 License expired on. 쇼핑몰 주소를 변경한 후 또는 계정에서 도메인 슬롯을 비운 후에는 Check now를 클릭하세요. 라이선스 서버에 연결할 수 없으면 모듈은 마지막으로 확인된 상태로 계속 작동합니다.

키 하나는 도메인 하나에서 작동합니다. 다중 쇼핑몰 구성에서도 마찬가지로 메인 쇼핑몰의 도메인에 해당합니다. 쇼핑몰에서 키를 제거해도 도메인 슬롯은 해제되지 않습니다. vibefox.net 계정에서 슬롯을 해제하세요.

활성 키가 없으면 결제 단계에서 Paystack이 고객에게 표시되지 않습니다. 그래도 결제가 시작되면 고객에게 This payment method is not available. Please choose another one.가 표시됩니다. PrestaShop 스토어프런트는 백오피스에 로그인한 사실을 알지 못하므로, 결제 방식은 귀하에게도 숨겨집니다. 키를 구입하기 전에 모듈을 설정할 수는 있지만, 결제 단계에서 테스트할 수는 없습니다. Modules > Module Manager의 Alerts 탭에 알림이 나타납니다. 기존 주문은 영향을 받지 않습니다. 이미 시작된 결제는 여전히 확인되며, 환불도 작동합니다.

라이선스가 만료되어도 모듈은 계속 작동하지만, 업데이트와 지원에는 갱신이 필요합니다. 백오피스에서 작업하는 동안 상태가 자동으로 다시 확인됩니다. 키를 입력한 후 처음 14일 동안은 하루에 한 번, 그 후에는 일주일에 한 번입니다. cron 작업은 필요하지 않습니다. 모듈을 제거하거나 재설정하면 라이선스 키와 라이선스 상태가 항상 삭제됩니다.

문제 해결

결제 단계에 Paystack이 나타나지 않음: 라이선스가 활성 상태인지, Enable/Disable이 켜져 있는지, 현재 모드에 올바른 비밀 키가 있는지(테스트 모드에서는 sk_test_...가 있는 Test Secret Key, 라이브 모드에서는 sk_live_...가 있는 Live Secret Key), 그리고 장바구니 통화가 Paystack이 허용하는 통화인지 확인하세요. 설정 상단의 상태 상자에 문제가 표시됩니다. Payment > Preferences에서 모듈이 장바구니 통화, 고객의 국가, 고객 그룹에 대해 허용되어 있는지 확인하세요.

결제는 완료되었지만 주문이 생성되지 않음: 웹훅이 쇼핑몰에 도달하지 않았고 고객도 돌아오지 않았습니다. Paystack 대시보드에서 Test Webhook URL과 Live Webhook URL이 Webhook URL에 표시된 URL과 정확히 같은지, 그리고 방화벽이나 비밀번호 보호가 이를 차단하지 않는지 확인하세요. Debug log를 켜고 Log 필드에서 거부된 웹훅을 확인하세요.

웹훅이 Invalid signature로 응답함: 웹훅이 설정에 입력된 테스트 또는 라이브 비밀 키로 서명되지 않았습니다. 예를 들어 키가 다른 Paystack 계정에 속해 있을 수 있습니다. 웹훅을 보내는 계정의 키를 입력하세요.

웹훅이 Secret key not configured로 응답함: 비밀 키가 어느 것도 설정되어 있지 않습니다. 설정에서 비밀 키를 입력하세요.

웹훅이 Verification failed, Busy, retry later 또는 Order could not be created, retry later로 응답함: 그 순간 Paystack API에서 거래를 읽을 수 없었거나, 고객의 복귀로 인해 장바구니가 동시에 처리되고 있었거나, 주문을 생성할 수 없었습니다(예: 모듈이 비활성화된 경우). Paystack은 웹훅을 다시 보냅니다. 로그에 이유가 표시됩니다.

웹훅이 OK - unknown reference로 응답함: 그 결제는 이 쇼핑몰의 장바구니를 위해 이루어진 것이 아닙니다. 예를 들어 같은 계정의 Paystack 결제 페이지나 다른 연동입니다. 무시됩니다.

웹훅 URL을 브라우저에서 열면 Empty body가 표시됨: 정상입니다. 이 URL은 Paystack의 요청만 허용합니다.

고객에게 "결제 게이트웨이가 올바르게 구성되지 않았습니다"라는 메시지가 표시됨: 현재 모드의 비밀 키가 없거나 잘못되었습니다. 설정 상단의 상태 상자 안내에 따라 수정하세요.

결제 후 주문이 Paystack payment on hold 상태임: Paystack payment 블록의 결제 메모를 읽고(주문 상태 참조), 그다음 주문을 처리하거나 결제를 환불하세요.

주문이 Awaiting Paystack payment 상태에 머묾: Paystack이 아직 결제를 확인하지 않았습니다. Paystack 대시보드에서 거래와 웹훅 설정을 확인하세요. 고객이 결제를 끝내 완료하지 않았다면 상태를 수동으로 변경하세요.

환불이 모드와 관련된 메시지와 함께 실패함: 결제가 테스트 또는 라이브 모드에서 이루어졌고, 그 모드의 비밀 키가 설정되지 않았습니다. 키를 입력하고 다시 시도하세요.

개발자는 모듈 훅 actionWcpPaystackPaymentRequest, actionWcpPaystackSupportedCurrencies, actionWcpPaystackCurrencyDecimals로 거래 요청과 통화 목록을 변경할 수 있습니다.

제거

Modules > Module Manager로 이동하여 VibeFox Paystack Payment 옆의 메뉴를 열고 Uninstall을 선택하세요. 이 모듈의 라이선스 키와 라이선스 상태는 항상 삭제됩니다. Delete data on uninstall이 켜져 있으면 모듈 설정과 로그가 삭제됩니다. 꺼져 있으면 나중에 다시 설치할 수 있도록 모든 설정이 유지됩니다. 주문의 Paystack 결제 데이터, 환불, 그리고 Awaiting Paystack payment와 Paystack payment on hold 주문 상태는 항상 유지되므로, 이전에 결제된 주문은 다시 설치한 후에도 환불할 수 있습니다. 기존 주문은 결제 메모와 거래 ID를 유지합니다.

Paystack은 해당 소유자의 상표입니다. 이 모듈은 Paystack과 제휴하거나 Paystack의 승인을 받지 않았습니다.