뒤로

VibeFox Vindi for PrestaShop — 도움말

요구 사항

PrestaShop: 8.0 ~ 9.x.

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

쇼핑몰 통화: 브라질 헤알(BRL). Vindi는 BRL로만 청구하므로, 다른 통화의 장바구니에서는 결제 수단이 표시되지 않습니다.

Vindi 계정: Vindi 계정의 API 키가 필요합니다. Vindi 샌드박스는 자체 키를 가진 별도의 Vindi 테스트 계정입니다. boleto, PIX, BolePix를 제공하려면 Vindi 계정에서도 이들을 활성화해야 합니다.

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

설치

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

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

3. Configure 페이지 상단의 라이선스 블록에 있는 License key 필드에 VibeFox 라이선스 키를 입력하고 Activate를 클릭하십시오(라이선스 키 항목 참조).

4. Sandbox API key를 붙여넣고, 준비가 되면 Live API key를 붙여넣습니다. Offered methods를 선택합니다.

5. 설정에 표시된 웹훅 URL을 Vindi에 복사합니다(설정 참조).

6. Enable / Disable을 켜고 Save를 클릭합니다. 샌드박스 모드에서 결제를 테스트한 다음, Sandbox mode를 끄고 실제 결제를 받습니다.

설치 시 모듈은 두 가지 주문 상태를 만듭니다: Awaiting Vindi payment와 Vindi payment on hold. PrestaShop은 모든 통화, 국가, 고객 그룹에 대해 새로운 결제 모듈을 제공합니다. 이를 Payment > Preferences에서 제한할 수 있으며, 그곳에서 모듈이 BRL에 대해 허용되어 있어야 합니다.

설정

모든 설정은 모듈 페이지에 있습니다: Modules > Module Manager > VibeFox Vindi Gateway > Configure. 각 섹션에는 자체 Save 버튼이 있으며, 이 버튼은 페이지 전체를 저장합니다. 필드 위에서는 쇼핑몰 통화가 BRL이 아니거나 현재 모드의 API 키가 비어 있을 때 페이지가 경고합니다. 두 경우 모두 결제 수단은 체크아웃에 표시되지 않습니다. 저장할 때 키의 앞뒤 공백은 제거됩니다. 결제 수단이 하나도 선택되지 않으면 신용카드가 선택되고 페이지에 Choose at least one payment method — credit card was selected.가 표시됩니다. 빈 Title은 저장되지 않으며, 페이지에 Enter a title for the payment method.가 표시됩니다.

Vindi

Enable / Disable: Enable Vindi payments는 결제 수단을 켜거나 끕니다. 기본값: 끔.

Title: 체크아웃에 표시되는 결제 수단 이름입니다. 주문에 저장되는 결제 수단 이름이기도 합니다. 기본값: Vindi. 필수.

Description: 체크아웃에서 결제 수단 아래에 표시되는 텍스트입니다. 기본값: Pay by credit card on the secure Vindi page, or by boleto / PIX.

API 키

키는 Vindi 대시보드의 Settings > API keys에서 만듭니다. 운영 환경은 app.vindi.com.br, 샌드박스는 sandbox-app.vindi.com.br입니다. 운영 환경과 샌드박스는 호스트와 키가 따로 있습니다. 각 결제는 청구서가 생성된 환경을 기억하므로, 확인, 취소, 환불은 항상 해당 환경을 사용합니다.

Sandbox mode: sandbox-app.vindi.com.br과 샌드박스 API 키를 사용하여 Vindi 샌드박스에서 새 결제를 만듭니다. 고객은 체크아웃에서 TEST MODE 안내를 봅니다: Vindi sandbox: no real charges. 기본값: 켬. 실제 결제를 받으려면 끕니다.

Live API key: 운영 Vindi 계정의 비밀 키입니다. Vindi API에만 전송됩니다.

Sandbox API key: Vindi 샌드박스 계정의 비밀 키입니다.

저장된 키는 다시 표시되지 않습니다. 필드는 비어 있고 Saved — leave empty to keep it.가 표시됩니다. 값을 바꾸고 싶을 때만 새 값을 입력합니다.

Clear saved keys: 키를 선택하고 Save를 클릭하면 삭제됩니다. 필드를 비워 두면 저장된 값이 유지됩니다.

결제 수단

Offered methods: 고객이 선택할 수 있는 결제 수단입니다. 기본값: 신용카드. 결제 수단은 Vindi 계정에서도 활성화되어 있어야 합니다.

Credit card: 고객은 Vindi 청구서 페이지에서 결제합니다.
Boleto: boleto는 즉시 발행되며 주문은 Awaiting Vindi payment 상태로 남습니다.
PIX: PIX QR 코드와 복사·붙여넣기 코드가 즉시 발행되며 주문은 Awaiting Vindi payment 상태로 남습니다.
BolePix (boleto + PIX): PIX로도 결제할 수 있는 boleto이며, boleto 및 PIX와 같이 즉시 발행됩니다.

Boleto, PIX, BolePix에는 체크아웃에서 입력을 요청하는 고객의 CPF 또는 CNPJ가 필요합니다.

결제 알림(웹훅)

웹훅은 청구서가 결제되었거나, 취소되었거나, 거절되었거나, 환불되었음을 쇼핑몰에 알립니다. 이 섹션의 Webhook URL 필드에 URL이 표시됩니다. 친근한 URL을 사용하면 https://your-shop/module/wcp_vindi_gateway/webhook?token=... 형태이며, 모듈이 생성한 비밀 토큰이 포함됩니다. 설정에 표시된 그대로 정확히 복사하십시오. Vindi에서 Settings > Webhooks로 이동하여 운영 계정과 샌드박스 계정 모두에 이 URL을 추가하고 다음 이벤트를 선택합니다:

bill_paid: 청구서가 결제되었습니다.
bill_canceled: 청구서가 취소되었습니다.
charge_rejected: 결제 시도가 거절되었습니다.
charge_refunded: 결제가 환불되었습니다. 예를 들어 Vindi 대시보드에서 환불한 경우입니다.

Vindi는 알림에 서명하지 않으므로, 토큰이 없거나 잘못된 요청은 거부됩니다. 또한 각 알림은 주문이 바뀌기 전에 모듈이 Vindi API를 통해 청구서를 다시 읽도록 할 뿐입니다. 웹훅이 없으면 카드 결제는 고객이 같은 장바구니로 주문을 다시 할 때에만 확인됩니다(결제된 청구서를 찾아 주문을 생성합니다). boleto 또는 PIX 결제는 고객이 주문 확인 페이지를 다시 열 때 확인됩니다.

고급

Debug log: API 호출과 알림을 모듈 폴더의 logs/wc_vdi_debug.log.php에 기록합니다. 이 파일은 웹에서 열 수 없습니다. 이 옵션이 꺼져 있어도 오류와 경고는 항상 기록됩니다. 키, 웹훅 토큰, 고객 데이터는 기록되지 않습니다. 기본값: 끔.

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

Delete data on uninstall: 켜져 있으면 모듈을 제거할 때 설정, 웹훅 토큰, 로그가 삭제됩니다. 주문과 주문의 Vindi 청구서 참조는 유지됩니다. 기본값: 끔.

체크아웃

고객은 결제 수단을 선택합니다(기본값은 Vindi). 두 가지 이상의 방법이 제공되면 결제 상자에 Pay with와 신용카드, boleto, PIX, BolePix 중 선택지가 표시됩니다. boleto, PIX 또는 BolePix가 제공되면 상자에 CPF or CNPJ 필드도 표시됩니다. 신용카드가 제공되지 않으면 이 필드는 필수이며, 그렇지 않으면 Required for boleto and PIX.가 표시됩니다. 청구지 주소의 Identification number 또는 VAT 번호에 유효한 CPF 또는 CNPJ가 있으면 그 값으로 필드가 채워집니다. 번호는 검증 번호로 확인합니다. 누락된 항목이 있으면 고객에게 Please choose how you want to pay with Vindi., Please enter a valid CPF or CNPJ. 또는 Please enter your CPF or CNPJ — it is required for boleto and PIX.가 표시됩니다.

고객이 주문을 확정하면 모듈은 청구지 주소로 이 장바구니의 Vindi 고객을 만들고, 장바구니 합계에 대해 한 번에 결제하는 Vindi 청구서를 만듭니다. Vindi에서 청구서 이름은 Order #과 장바구니 번호로 표시됩니다.

신용카드: 고객은 Vindi 청구서 페이지로 이동하여 그곳에서 결제합니다. 이 시점에는 아직 주문이 없습니다. Vindi는 청구서에 대한 반환 URL을 제공하지 않으므로 고객은 자동으로 쇼핑몰로 돌아가지 않습니다. 주문은 Vindi가 웹훅으로 결제를 확인하면 생성됩니다. 고객이 같은 장바구니로 주문을 다시 하면 대기 중인 청구서가 다시 제시되고, 이미 결제된 경우에는 즉시 주문이 생성됩니다.

Boleto, PIX, BolePix: 청구서는 즉시 발행되고, 주문은 Awaiting Vindi payment 상태로 생성되며, 고객은 주문 확인 페이지로 이동합니다. 그곳과 고객 계정의 주문 상세에는 Payment 섹션이 표시되며, PIX QR 코드, Copy code 버튼이 있는 PIX 복사·붙여넣기 코드와 만료일, 그리고 Open boleto 버튼이 나타납니다. 주문 확인 이메일에는 PIX 코드와 boleto 링크가 포함됩니다. Vindi가 boleto 또는 PIX 데이터를 반환하지 않으면 청구서는 취소되고 고객에게 오류가 표시됩니다.

주문은 Vindi가 확인한 후에만 결제 완료로 표시됩니다. 모듈은 Vindi API에서 청구서를 읽고 통화, 청구서가 장바구니에 속하는지(장바구니 코드와 Vindi 고객), 결제된 금액이 주문 합계와 같은지를 확인합니다. 주문 확인 페이지는 대기 중인 주문을 API로 다시 확인하며, 최대 15초마다 한 번씩 확인합니다. 결제가 접수되면 Your payment with Vindi has been received.가 표시됩니다. 청구서가 Vindi에서 검토되는 동안에는 We are confirming your payment with Vindi. The order will be updated automatically — please do not pay again.가 표시됩니다. 취소된 주문의 경우 This order was cancelled and its Vindi bill can no longer be paid. Please contact us if you have already paid.가 표시됩니다.

같은 장바구니에 대한 새 결제 시도는 결제 수단, 금액, 환경이 같으면 대기 중인 Vindi 청구서를 재사용합니다. 그렇지 않으면 새 청구서를 만들기 전에 이전 청구서를 Vindi에서 취소하므로, 고객은 같은 장바구니를 두 번 결제할 수 없습니다. 그 사이 이전 청구서가 결제되었다면 주문이 생성되고 새 청구서는 발행되지 않습니다.

Vindi가 결제를 시작할 수 없으면 고객은 체크아웃에 머무르며 짧은 안내를 봅니다. 예를 들어 CPF / CNPJ, 청구지 주소(boleto의 경우 도로명, 우편번호, 도시, 주는 필수), 이메일이나 전화번호를 확인하라는 안내이거나, Vindi를 일시적으로 사용할 수 없다는 안내입니다. 기술적 원인은 로그에 기록됩니다.

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

모듈은 한 번에 결제하는 단일 결제만 처리합니다. 구독이나 정기 청구, 저장된 카드, 할부, 쇼핑몰 사이트의 카드 양식은 지원하지 않습니다. 카드 정보는 항상 Vindi 페이지에서 입력됩니다.

주문과 환불

주문 상태

No order yet: 카드 결제가 시작되었지만 Vindi가 아직 확인하지 않았습니다. 장바구니만 존재합니다.

Awaiting Vindi payment: boleto, PIX 또는 BolePix 결제가 대기 중입니다(메모 Awaiting ... payment at Vindi.). Vindi가 청구서를 결제 완료로 보고하면 주문은 Payment accepted로 바뀝니다.

Payment accepted: 결제가 확인되었습니다. 결제는 Vindi 청구서 ID를 거래 ID로 하여 기록되며, 메모에는 Vindi 청구서, 금액, 환경이 표시됩니다.

Vindi payment on hold: Vindi 청구서가 검토 중이거나, 결제된 청구서가 주문과 일치하지 않거나(통화, 금액, 장바구니 코드 또는 Vindi 고객), 주문이 취소된 후에 청구서가 결제되었습니다. 메모에 이유가 설명되며, 결제된 금액이 주문에 기록됩니다. 주문과 재고를 확인한 다음 주문을 완료하거나 결제를 환불하십시오.

Payment error: Vindi가 대기 중인 주문의 결제 시도를 거절했습니다. 원인이 있으면 메모에 매입 기관(acquirer)이 제공한 사유가 표시됩니다. 고객은 같은 청구서를 계속 결제할 수 있으며, 이후 결제가 이루어지면 주문은 Payment accepted로 바뀝니다.

Canceled: 대기 중인 주문의 청구서가 Vindi에서 취소되었습니다. 쇼핑몰에서 주문을 취소하면 대기 중인 Vindi 청구서도 함께 취소되므로 더 이상 결제할 수 없습니다. 이것이 불가능하면 메모에서 Vindi 대시보드에 들어가 청구서를 취소하라고 안내합니다.

Refunded: 모듈을 통해 결제 전액이 환불되었습니다.

이미 결제된 주문에 대해 두 번째 청구서가 결제되면 주문은 변경되지 않습니다. 메모에는 Vindi에서 결제 한 건을 환불하라는 안내가 표시됩니다.

Vindi 결제 블록

주문 페이지에는 Vindi payment 블록이 표시되며, Vindi 청구서와 청구 내역, 환경(샌드박스 결제에는 Sandbox 배지), 결제 수단, 상태, 결제 금액과 환불 금액, 환불 내역, 모든 Bills of this cart, 그리고 주문의 Vindi notes가 포함됩니다.

환불

Vindi payment 블록에서 금액을 입력합니다(아직 환불되지 않은 금액이 자동으로 채워집니다). 선택적으로 사유를 입력하고 Refund via Vindi를 클릭합니다. Refund this amount through Vindi? This cannot be undone. 확인 질문에 승인합니다. 카드 및 PIX 결제의 전액 및 부분 환불이 지원됩니다. 주문을 편집할 수 있는 권한이 필요하며, 모듈 페이지에 대한 접근 권한은 필요하지 않습니다. 환불은 Vindi가 실제로 청구한 금액으로 제한되므로, 불일치가 생긴 후에는 주문 합계가 아니라 고객이 실제로 결제한 금액까지만 환불할 수 있습니다. 환불은 결제의 환경(운영 또는 샌드박스)으로 전송되므로, 해당 환경의 API 키가 설정되어 있어야 합니다. 전액 환불은 Vindi에서 청구서도 취소하고 주문을 Refunded로 설정합니다. 부분 환불은 상태를 바꾸지 않습니다. 환불이 성공하면 Vindi 청구 내역과 상태와 함께 환불 내역과 메모에 추가됩니다. Vindi 또는 매입 기관이 환불을 거절하면 블록에 오류가 표시되며 환불은 기록되지 않습니다. 환불은 Vindi가 청구서를 결제 완료로 보고한 후에만 가능합니다.

Vindi는 boleto 결제를 환불할 수 없습니다. 블록에 Vindi cannot refund boleto payments. Return the money to the customer by bank transfer and record the refund manually.가 표시됩니다.

모듈은 대변 전표(credit slip)를 만들지 않습니다. 주문 페이지의 표준 PrestaShop 환불 버튼은 Vindi를 통해 돈을 돌려보내지 않습니다. Vindi 대시보드에서 이루어진 환불은 charge_refunded 웹훅으로 도착하며 메모에 추가됩니다. 주문 상태는 자동으로 바뀌지 않으므로, 필요하면 PrestaShop에서 수동 환불로 기록하십시오.

라이선스 키

모듈은 vibefox.net에서 받은 VibeFox 라이선스 키로 작동합니다. License — VibeFox Vindi Gateway 라이선스 블록은 Modules > Module Manager > VibeFox Vindi Gateway > Configure 페이지에서 설정 위에 있는 첫 번째 블록입니다. 키를 License key에 입력하고 Activate를 클릭하십시오. 그러면 블록에 키가 마스킹되어 표시되고, 상태(예: 라이선스 유효 기간 종료일과 도메인)가 나타나며, Check now(상태 다시 확인), Change key(다른 키 입력), Remove key(이 쇼핑몰에서 키 제거) 버튼이 보입니다. 그 아래에는 Product: presta-payment-vindi 줄과 vibefox.net 계정을 여는 Manage licenses and domains in your account 링크가 있습니다. 모듈의 Configure 권한이 있는 직원만 키를 변경할 수 있습니다. 블록의 문구는 백오피스 언어를 따릅니다(영어와 러시아어 포함).

키가 승인되지 않으면 블록에 그 이유가 표시됩니다. 예를 들어 Key not found, This key belongs to another product, Domain limit reached, 또는 날짜가 붙은 License expired on이 나타납니다. 쇼핑몰 주소를 변경한 후, 또는 계정에서 도메인 슬롯을 해제한 후 Check now를 클릭하십시오. 라이선스 서버에 연결할 수 없으면 모듈은 마지막으로 확인된 상태로 계속 작동합니다.

키 하나는 도메인 하나에서만 작동합니다. 기본 쇼핑몰의 도메인이며, 멀티스토어 구성에서도 마찬가지입니다. 쇼핑몰에서 키를 제거해도 도메인 슬롯은 해제되지 않습니다. vibefox.net 계정에서 슬롯을 해제하십시오.

활성 키가 없으면 체크아웃에서 고객에게 Vindi가 표시되지 않습니다. 그래도 결제가 시작되면 고객에게 This payment method is not available. Please choose another one.가 표시됩니다. PrestaShop 스토어프런트는 백오피스에 로그인되어 있는지 알 수 없으므로, 결제 방법은 관리자에게도 숨겨집니다. 키를 구매하기 전에 모듈을 설정할 수는 있지만 체크아웃에서 테스트할 수는 없습니다. Modules > Module Manager의 Alerts 탭에 알림이 나타납니다. 기존 주문은 영향을 받지 않습니다. 이미 생성된 청구서는 Vindi 웹훅으로 계속 확인되며, 환불도 작동합니다.

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

문제 해결

체크아웃에 Vindi가 나타나지 않음: 라이선스가 활성 상태인지, Enable / Disable이 켜져 있는지, 장바구니 통화가 BRL인지, Offered methods에서 결제 수단이 하나 이상 선택되어 있는지, 그리고 현재 모드에 API 키가 있는지 확인하십시오. 샌드박스 모드에서는 Sandbox API key, 운영 모드에서는 Live API key입니다. 키가 없거나 통화가 BRL이 아니면 설정 페이지에 경고가 표시됩니다. Payment > Preferences에서 모듈이 BRL, 고객의 국가, 고객의 그룹에 대해 허용되어 있는지 확인하십시오.

결제는 완료되었지만 주문이 생성되지 않았거나 주문이 Awaiting Vindi payment에 머무름: 웹훅이 작동하지 않습니다. 사용 중인 계정(운영 또는 샌드박스)의 Vindi에 웹훅이 있는지, URL이 토큰을 포함하여 설정에 표시된 것과 정확히 일치하는지, 그리고 네 가지 이벤트가 모두 선택되어 있는지 확인하십시오.

웹훅이 Forbidden을 반환함: URL의 토큰이 없거나 잘못되었습니다. 설정에서 URL을 다시 복사하십시오.

웹훅이 Verification failed, retry later를 반환함: Vindi API에서 청구서를 읽지 못했거나(예: 해당 환경의 API 키가 삭제됨), 같은 시점에 다른 요청이 장바구니를 업데이트하고 있었거나, 주문을 생성할 수 없었습니다(예: 모듈이 비활성화됨). Vindi는 알림을 다시 보냅니다. 로그에 이유가 표시됩니다.

브라우저에서 웹훅 URL이 Method not allowed를 표시함: 정상입니다. 이 URL은 Vindi의 요청만 받습니다.

고객에게 This payment method is temporarily unavailable이 표시됨: Vindi가 API 키를 거절했습니다. 현재 모드의 키를 확인하십시오.

고객이 주문할 때 오류가 표시됨: 모듈 페이지의 Log 필드를 확인하십시오. Debug log가 꺼져 있어도 오류는 기록됩니다. boleto의 경우 청구지 주소에 도로명, 우편번호, 도시, 주가 있어야 합니다.

주문이 Vindi payment on hold 상태임: Vindi payment 블록의 메모를 읽고(주문 상태 참조), 주문을 완료하거나 결제를 환불하십시오.

운영으로 전환한 후 이전 샌드박스 주문: 각 결제는 청구서의 환경을 유지합니다. 샌드박스 키가 설정에 남아 있는 한, 샌드박스 주문의 확인, 취소, 환불은 계속 샌드박스 키를 사용합니다.

환불이 실패함: 메시지를 확인하십시오. boleto 결제는 Vindi를 통해 환불할 수 없으며, 결제 환경의 API 키가 설정되어 있어야 합니다.

제거

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

Vindi는 해당 소유자의 상표입니다. 이 모듈은 Vindi와 제휴하거나 Vindi의 승인을 받은 것이 아닙니다.