VibeFox Iugu for PrestaShop — 도움말
요구 사항
PrestaShop: 8.0 ~ 9.x.
PHP: 8.0 이상. 모듈은 이전 PHP 버전에는 설치되지 않습니다.
통화: 브라질 레알(BRL). Iugu는 BRL로만 청구합니다. 다른 통화의 장바구니와 합계가 R$ 1.00(Iugu 최소 금액) 미만인 경우에는 해당 결제 수단이 표시되지 않습니다.
Iugu 계정: Iugu 대시보드에서 API 토큰 두 개가 필요합니다. 하나는 "Test" 유형, 다른 하나는 "Live" 유형입니다(설정 참조). Iugu는 두 토큰 모두 하나의 API 주소를 사용합니다. 토큰에 따라 청구서가 테스트용인지 실제용인지가 결정됩니다. Iugu에서 webhook을 설정할 필요는 없습니다.
VibeFox 라이선스 키: vibefox.net에서 구입합니다. 키 하나는 도메인 하나에서 작동합니다.
설치
1. 관리자 화면에서 Modules > Module Manager로 이동한 뒤 Upload a module을 클릭합니다. 모듈의 ZIP 파일을 선택합니다.
2. 업로드가 끝나면 Configure를 클릭하거나, 나중에 모듈 목록에서 VibeFox Iugu Gateway를 찾아 Configure를 클릭합니다.
3. 설정 페이지 상단의 라이선스 블록에서 License key 필드에 VibeFox 라이선스 키를 입력하고 Activate를 클릭합니다(라이선스 키 참조).
4. 테스트 및 운영 API 토큰을 입력하고(설정 참조), Test mode는 켜 둔 채로 Enable / Disable을 켠 뒤 Save를 클릭합니다.
5. 테스트 주문을 하고 Iugu 페이지에서 Iugu 테스트 결제로 결제합니다. 준비가 되면 Test mode를 끕니다.
설치 시 모듈은 두 가지 주문 상태를 만듭니다: Awaiting Iugu payment와 Iugu payment on hold. PrestaShop은 모든 통화, 국가, 고객 그룹에 대해 새 결제 모듈을 제공합니다. Payment > Preferences에서 이를 제한할 수 있습니다. 어떤 경우에도 Iugu는 BRL 장바구니에만 제공됩니다.
설정
모든 설정은 모듈 페이지에 있습니다: Modules > Module Manager > VibeFox Iugu Gateway > Configure. 각 섹션에는 전체 페이지를 저장하는 Save 버튼이 있습니다. 필드 위에는 TEST MODE(테스트 API 토큰으로 청구서를 생성하며 실제 결제는 이루어지지 않음) 또는 LIVE가 표시됩니다. 활성 모드의 토큰이 없으면(이 경우 체크아웃에서 결제 수단이 숨겨짐) 그리고 쇼핑몰의 기본 통화가 BRL이 아니면(이 경우 다른 통화의 장바구니에는 Iugu가 제공되지 않음) 경고를 표시합니다.
Iugu
Enable / Disable: Enable Iugu payments는 결제 수단을 켜거나 끕니다. 기본값: off.
Title: 고객이 체크아웃에서 보는 결제 수단 이름입니다. 주문에 저장되는 결제 수단 이름이기도 합니다. 기본값: Iugu. 필수.
Description: 체크아웃에서 결제 수단 아래에 표시되는 텍스트입니다. 기본값: Pay securely via Iugu. You will be redirected to complete your payment.
API 자격 증명
Iugu Alia(alia.iugu.com)에서 API 토큰을 만듭니다: Settings > API integration > New. "Test" 유형 토큰 하나와 "Live" 유형 토큰 하나를 만듭니다.
Test mode: 테스트 API 토큰을 사용하므로 실제 결제는 이루어지지 않습니다. 기본값: on. 테스트 모드가 켜져 있으면 체크아웃에서 설명 위에 SANDBOX — Test mode enabled. No real charges.가 표시됩니다. 주문의 상태 조회와 환불은 항상 해당 주문의 청구서가 생성된 모드의 토큰을 사용하므로, 모드를 전환해도 이전 주문에는 영향이 없습니다.
Test API token: "Test" 유형의 Iugu API 토큰입니다. 테스트 모드가 켜져 있을 때 사용됩니다.
Live API token: "Live" 유형(운영용)의 Iugu API 토큰입니다. 테스트 모드가 꺼져 있을 때 사용됩니다. 비밀로 유지하십시오.
저장된 토큰은 다시 표시되지 않습니다. 필드는 비어 있으며 Saved — leave empty to keep it.를 표시합니다. 변경하려는 경우에만 새 값을 입력하십시오.
Clear saved tokens: 토큰을 체크하고 Save를 클릭하면 삭제됩니다. 필드가 비어 있으면 저장된 값이 유지됩니다.
결제 알림
Notification URL: 모든 청구서는 상태 변경을 쇼핑몰의 이 URL로 알리도록 Iugu에 지시합니다. 친숙한 URL을 사용하면 다음과 같은 형태입니다: https://your-shop/module/wcp_iugu_gateway/webhook. Iugu에서 설정할 것은 없습니다. 같은 URL을 가리키는 계정 단위의 추가 트리거(gatilho)가 있어도 문제되지 않습니다. 알림에는 쇼핑몰이 신뢰하는 결제 데이터가 포함되지 않습니다. 주문이 생성되거나 변경되기 전에 청구서는 항상 Iugu API에서 다시 조회됩니다(상태, 금액, 통화).
모듈은 청구서 상태를 바꿀 수 있는 Iugu 이벤트에 반응합니다: invoice.status_changed, invoice.refund, invoice.released, invoice.dunning_action, invoices. 각 이벤트에 대해 청구서를 읽고 그 상태를 적용합니다:
그 밖의 이벤트와 쇼핑몰이 생성하지 않은 청구서에는 HTTP 200으로 응답하며, Iugu에 요청하지 않고 무시합니다. 알림이 없으면 고객이 Iugu 페이지에서 쇼핑몰로 돌아올 때에만 청구서를 확인합니다.
고급
Debug log: Iugu 요청과 알림을 모듈 폴더의 logs/wc_igu_debug.log.php에 기록합니다. 이 파일은 웹에서 열 수 없습니다. 토큰과 고객 데이터는 기록되지 않습니다. 오류와 경고는 스위치가 꺼져 있어도 항상 기록됩니다. 기본값: off.
Log: 로그의 크기와 최근 항목을 표시합니다. Clear log를 클릭하면 비워집니다.
Delete Data on Uninstall: 켜 두면 모듈을 제거할 때 게이트웨이 설정과 로그가 삭제됩니다. 주문, Iugu 청구서 참조, 환불, 모듈의 주문 상태는 항상 보존되므로, 재설치 후에도 이전 주문이 계속 작동합니다. 기본값: off.
체크아웃
결제 단계에서 고객은 결제 수단(기본값 Iugu)을 선택하고 확인합니다. 유효한 고객 이메일이 필요합니다. 모듈은 장바구니 합계에 대해 BRL로 3일 후 만기되는 Iugu 청구서를 생성하고, 고객을 Iugu 청구서 페이지로 보냅니다. 고객은 그곳에서 쇼핑몰의 Iugu 계정에서 활성화된 방법(신용카드, boleto 또는 PIX)으로 결제합니다. 청구서에는 Order #와 장바구니 번호가 표시됩니다. 고객의 이름과 이메일은 Iugu로 전달되며, 주소의 Identification number 또는 VAT number 필드에 값이 있으면 회사명과 CPF/CNPJ도 함께 전달됩니다. 전화번호와 주소는 Iugu가 허용하는 형식으로만 전달됩니다(브라질 전화번호, 8자리 CEP가 있는 브라질 주소이며, 번지는 s/n으로 전달됩니다). 이 시점에는 아직 주문이 없습니다.
결제 후 고객은 쇼핑몰로 돌아옵니다. 주문은 Iugu가 확인한 후에만 결제 완료로 표시됩니다. 고객이 돌아올 때와 Iugu가 알림을 보낼 때 청구서를 Iugu API에서 읽습니다. 그다음 주문이 생성되고, 고객은 Your payment with Iugu has been received.가 표시된 표준 주문 확인 페이지를 봅니다.
고객이 boleto나 PIX 코드를 생성하고 결제 전에 돌아온 경우, 주문은 Awaiting Iugu payment 상태로 생성되고 확인 페이지에는 Your Iugu invoice is awaiting payment (boleto / PIX). The order will be confirmed as soon as Iugu reports the payment.가 표시됩니다. Iugu가 입금을 알려오면(알림을 통해, 또는 고객이 복귀 링크를 다시 열면) 주문은 Payment accepted로 바뀝니다. 고객이 돌아왔을 때 아직 Iugu에 연결할 수 없으면, Payment confirmation 페이지에 We are confirming your payment with Iugu. The order will be updated automatically — please do not pay again.가 표시되고 Check again 버튼과 Back to checkout 버튼이 나타납니다. 청구서가 취소되었거나 결제 없이 만료된 주문은 확인 페이지에 Your Iugu payment was not completed. Please contact us about this order.가 표시됩니다.
주문이 생성되기 전에 청구서가 취소되었거나 만료되었다면, 고객은 체크아웃으로 돌아가 The Iugu invoice was not paid (it was canceled or has expired). You can pay again below.를 보게 됩니다. 장바구니는 유지됩니다. 고객이 다시 결제할 때 금액과 모드가 바뀌지 않았다면, 모듈은 고객을 같은 열린 청구서로 보냅니다. 그렇지 않으면 Iugu에서 이전 청구서를 취소하고 새 청구서를 만들어, 같은 장바구니를 열린 청구서 두 개로 결제할 수 없게 합니다. 이전 청구서가 그래도 결제되면, 그 결제도 장바구니와 연결됩니다.
Iugu가 청구서를 만들 수 없으면, 고객은 짧은 메시지와 함께 체크아웃에 머뭅니다. 예를 들어 Iugu could not create the invoice:와 함께 사유 및 청구 정보를 확인해 달라는 요청이 표시되거나, Could not connect to Iugu. Please try again in a moment.가 표시됩니다. 기술적인 사유는 로그에 기록됩니다.
알림 URL은 쇼핑몰이 유지 보수 모드인 동안에도 작동하며, 쇼핑몰의 국가 제한에 의해 차단되지 않습니다.
모듈은 일회성 결제만 지원합니다. 사이트 내 카드 입력 양식, 저장된 카드, 구독 또는 정기 결제, carnê(분할 납부 용지), 분할 결제, 할부 설정은 제공하지 않습니다. 할부는 Iugu 페이지의 설정을 사용하십시오. Iugu 페이지에 제공되는 결제 수단은 모듈 설정에서 고를 수 없으며, Iugu 계정에서 활성화된 모든 방법이 제공됩니다. Payment error 또는 Canceled 상태의 주문은 쇼핑몰에서 다시 결제할 수 없습니다. 고객은 새 주문을 해야 합니다.
주문 및 환불
주문 상태
No order yet: 고객은 Iugu로 보내졌지만 아직 결제하지 않았거나, Iugu가 아직 결제를 확인하지 않았습니다. 장바구니만 존재합니다.
Payment accepted: Iugu가 결제를 확인했습니다. 결제는 Iugu 청구서 ID를 거래 ID로 하여 기록되며, 메모에는 청구서 ID와 결제 수단(신용카드, boleto 또는 PIX)이 표시됩니다.
Awaiting Iugu payment: 고객이 발행된 boleto 또는 PIX를 가지고 돌아왔습니다. Iugu가 결제를 알려오면 주문은 Payment accepted로 바뀝니다.
Iugu payment on hold: 카드 결제가 승인되었지만 아직 캡처되지 않았습니다(Iugu에서 캡처하면, Iugu가 청구서를 결제 완료로 알린 후 주문이 완료됩니다). 또는 결제가 심사 중이거나, 청구서가 일부만 결제되었거나, 차지백이 접수되었거나, Iugu가 장바구니와 다른 금액이나 통화를 알린 경우(예: 청구서 생성 후 장바구니가 변경된 경우), 또는 주문이 취소된 뒤 결제가 도착한 경우입니다. 메모에 이유가 설명되어 있습니다. 주문을 확인한 뒤 처리하거나 결제를 환불하십시오.
Payment error: 대기 중인 주문의 청구서가 결제 없이 만료되었습니다. 나중에 Iugu가 청구서를 결제 완료로 알리면 주문은 Payment accepted로 바뀝니다.
Canceled: 대기 중인 주문의 청구서가 Iugu에서 취소되었습니다.
Refunded: 모듈을 통하거나 Iugu 대시보드에서 결제가 전액 환불되었습니다.
같은 장바구니의 다른 청구서도 결제되면 주문은 변경되지 않습니다. 메모에서 중복 결제를 Iugu에서 환불하라고 안내합니다.
Iugu 결제 블록
주문 페이지에는 Iugu payment 블록이 표시되며, 여기에는 Iugu 청구서 ID(Iugu의 청구서로 연결됨), 결제 수단, 상태, Iugu가 청구한 금액과 환불된 금액, 테스트 청구서용 Test mode 배지, 환불 내역, 주문의 Iugu notes가 포함됩니다.
환불
Iugu payment 블록에서 금액을 입력합니다(아직 환불되지 않은 금액이 자동으로 채워집니다). 필요하면 사유를 입력하고 Refund via Iugu를 클릭합니다. Refund this amount through Iugu? This cannot be undone. 질문을 확인하십시오. 주문을 편집할 권한이 필요합니다. 환불은 청구서가 생성된 모드의 토큰으로 전송되므로, 그 토큰이 설정되어 있어야 합니다.
환불은 Iugu가 청구서에 대해 실제로 청구한 금액을 기준으로 계산됩니다. 따라서 금액 불일치가 발생한 후에는 주문 합계가 아니라 고객이 실제로 결제한 금액까지 환불할 수 있습니다. 결제 완료된 청구서만 환불할 수 있으며, Iugu에서 아직 환불 가능한 금액을 넘을 수 없습니다. 환불은 Iugu가 확인해야만 완료된 것으로 간주됩니다. Iugu가 환불을 거부하거나 확인하지 않으면, 블록에 오류가 표시되고 환불은 기록되지 않습니다. 환불이 성공하면 청구서 ID와 사유와 함께 환불 내역과 메모에 추가됩니다. 전액 환불은 주문을 Refunded로 설정합니다. 부분 환불은 상태를 바꾸지 않습니다. 환불은 Iugu가 청구서를 결제 완료로 알린 뒤에 가능합니다.
모듈은 크레딧 노트(credit slips)를 만들지 않습니다. 주문 페이지의 PrestaShop 표준 환불 버튼은 Iugu를 통해 돈을 돌려주지 않습니다.
Iugu 대시보드에서 진행한 전액 환불은 주문을 메모와 함께 Refunded로 설정합니다. 대시보드에서 진행한 부분 환불은 가져오지 않습니다.
라이선스 키
모듈은 vibefox.net에서 구입한 VibeFox 라이선스 키로 작동합니다. License — VibeFox Iugu Gateway 라이선스 블록은 Modules > Module Manager > VibeFox Iugu Gateway > Configure 페이지의 설정 위에 있는 첫 번째 블록입니다. License key에 키를 입력하고 Activate를 클릭하십시오. 이후 블록에는 마스킹된 키, 상태(예: 라이선스가 유효한 날짜와 도메인), 그리고 다음 버튼이 표시됩니다: Check now(상태를 다시 확인), Change key(다른 키 입력), Remove key(이 쇼핑몰에서 키 제거). 그 아래에는 Product: presta-payment-iugu 줄과 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 계정에서 슬롯을 해제하십시오.
활성 키가 없으면 체크아웃에서 고객에게 Iugu가 표시되지 않습니다. 그래도 결제가 시작되면 고객은 This payment method is not available. Please choose another one.를 보게 됩니다. PrestaShop 스토어프론트는 백오피스에 로그인했다는 사실을 알지 못하므로, 결제 수단은 관리자에게도 숨겨집니다. 키를 구입하기 전에 모듈을 설정할 수는 있지만 체크아웃에서 테스트할 수는 없습니다. Modules > Module Manager의 Alerts 탭에 알림이 나타납니다. 기존 주문은 영향을 받지 않습니다. 이미 시작된 결제는 계속 확인되며, 환불도 작동합니다.
라이선스가 만료되어도 모듈은 계속 작동하지만, 업데이트와 지원을 받으려면 갱신이 필요합니다. 백오피스에서 작업하는 동안 상태는 자동으로 다시 확인됩니다. 키를 입력한 후 처음 14일 동안에는 하루에 한 번, 그 이후에는 일주일에 한 번입니다. cron 작업은 필요하지 않습니다. 모듈을 제거하거나 재설정하면 라이선스 키와 라이선스 상태는 항상 삭제됩니다.
문제 해결
체크아웃에 Iugu가 나타나지 않음: 라이선스가 활성 상태인지, Enable / Disable이 켜져 있는지, 그리고 활성 모드의 토큰이 설정되어 있는지 확인하십시오. 테스트 모드에서는 Test API token, 운영 모드에서는 Live API token입니다. 장바구니 통화는 BRL이어야 하며, 합계는 최소 R$ 1.00이어야 합니다. Payment > Preferences에서 모듈이 BRL 통화, 고객의 국가, 고객의 그룹에 대해 허용되어 있는지 확인하십시오. 토큰이나 통화가 잘못되면 설정 페이지에 경고가 표시됩니다.
결제는 되었으나 주문이 생성되지 않음: Iugu의 알림이 쇼핑몰에 도달하지 않았거나 확인할 수 없었습니다. Debug log를 켜고 모듈 페이지의 Log 필드를 확인하십시오. 쇼핑몰이 Notification URL로 인터넷에서 접근 가능한지, 그리고 청구서가 생성된 모드의 토큰이 여전히 입력되어 있는지 확인하십시오. 고객이 결제 후 쇼핑몰로 돌아올 때도 청구서를 확인합니다.
Notification answers verification failed: 네트워크 오류, 잘못된 토큰, 또는 청구서 모드의 토큰이 없는 등의 이유로 그 시점에 청구서를 Iugu API에서 읽을 수 없었습니다. Iugu가 알림을 다시 시도합니다.
Notification answers busy: 같은 순간 다른 요청이 장바구니를 처리하고 있었거나, 주문을 생성할 수 없었습니다(예: 모듈이 비활성화됨). Iugu가 알림을 다시 시도합니다. 로그에 이유가 표시됩니다.
Notification answers invalid invoice id: 알림에 유효한 청구서 ID가 없었습니다. 아무것도 변경되지 않습니다.
주문이 Iugu payment on hold 상태: 주문 블록의 Iugu notes를 읽으십시오. 카드 결제가 캡처를 기다리고 있거나, 결제가 심사 중이거나, 일부만 결제되었거나, 이의가 제기되었거나, 결제된 금액이 장바구니와 일치하지 않거나, 주문이 취소된 뒤 결제가 도착했을 수 있습니다.
고객에게 「Iugu payments are not available right now」가 표시됨: API 토큰이 없거나 잘못되었습니다. 활성 모드의 토큰을 확인하십시오.
고객에게 「This order already has an Iugu payment that the store has to review」가 표시됨: 장바구니의 이전 청구서가 승인되었거나, 심사 중이거나, 일부만 결제되었지만 주문을 생성할 수 없었습니다. Iugu에서 청구서와 로그를 확인하십시오.
환불 실패: 블록의 메시지를 읽으십시오. Boleto 결제는 Iugu를 통해 환불할 수 없고, PIX 결제는 전액만 환불할 수 있으며, 결제 완료된 청구서만 환불할 수 있습니다. 메시지에 결제가 테스트 또는 운영 모드에서 이루어졌다고 나오고 해당 모드의 토큰이 설정되어 있지 않다면, 그 모드의 토큰을 입력하십시오. Iugu가 환불을 확인하지 않았다면, 다시 시도하기 전에 Iugu에서 청구서를 확인하십시오.
개발자는 청구서 요청을 변경할 수 있습니다. 예를 들어 actionWcpIuguInvoiceData 훅에서 payable_with로 결제 수단을 제한할 수 있습니다.
제거
Modules > Module Manager로 이동하여 VibeFox Iugu Gateway 옆의 메뉴를 열고 Uninstall을 선택하십시오. 이 모듈의 라이선스 키와 라이선스 상태는 항상 삭제됩니다. Delete Data on Uninstall이 켜져 있으면 게이트웨이 설정과 로그가 삭제됩니다. 꺼져 있으면 나중에 재설치할 수 있도록 모든 설정이 보존됩니다. Iugu 청구서 참조와 환불, 그리고 Awaiting Iugu payment와 Iugu payment on hold 주문 상태는 항상 보존되므로, 이전에 결제된 주문은 계속 환불할 수 있고 재설치 후에도 늦게 도착한 알림이 계속 연결됩니다. 기존 주문은 결제 메모와 거래 ID를 유지합니다.
Iugu는 해당 소유자의 상표입니다. 이 모듈은 Iugu와 제휴하거나 Iugu의 승인을 받지 않았습니다.
