VibeFox Tranzila for PrestaShop — 도움말
요구 사항
PrestaShop: 8.0 ~ 9.x.
PHP: 8.0 이상. 모듈은 이전 PHP 버전에는 설치되지 않습니다.
쇼핑몰 통화: ILS, USD, EUR 또는 GBP. 그 밖의 장바구니 통화에서는 체크아웃에서 결제 수단이 표시되지 않습니다.
Tranzila 단말기: 단말기 이름이 필요합니다. 단말기 비밀번호(TranzilaPW)는 handshake와 주문 페이지에서의 환불에 필요합니다. 일부 단말기는 환불을 위해 별도의 신용 비밀번호(CreditPass)도 필요합니다. 단말기 이름과 비밀번호는 Tranzila에서 제공합니다. 단말기 설정을 확인하거나 Tranzila 지원팀에 문의하세요. Tranzila에는 공개 샌드박스가 없습니다. 테스트를 위해 Tranzila는 별도의 테스트 단말기를 제공합니다. 그 이름을 단말기 이름으로 입력하세요.
방문자의 실제 IP: 결제 알림은 Tranzila 서버의 IP 주소를 기준으로 확인됩니다. 쇼핑몰이 Cloudflare 같은 프록시나 CDN 뒤에 있다면, 웹 서버가 방문자의 실제 IP를 PHP에 전달해야 합니다(REMOTE_ADDR).
VibeFox 라이선스 키: vibefox.net에서 구매합니다. 키 하나는 도메인 하나에서 작동합니다.
설치
1. 백오피스에서 Modules > Module Manager로 이동하여 Upload a module을 클릭합니다. 모듈의 ZIP 파일을 선택합니다.
2. 업로드가 끝나면 Configure를 클릭하거나, 나중에 모듈 목록에서 VibeFox Tranzila Payment Gateway를 찾아 Configure를 클릭합니다.
3. Configure 페이지 상단의 라이선스 블록에 있는 License key에 VibeFox 라이선스 키를 입력하고 Activate를 클릭하세요(라이선스 키 참고).
4. handshake 또는 환불을 사용하는 경우 Terminal name (supplier)과 Terminal password (TranzilaPW)를 입력합니다.
5. Notifications를 켜 둔 상태로 두고 Trusted IP를 확인합니다. 여기에는 Tranzila가 알림을 보내는 IP 주소가 나열되어 있어야 합니다. 이 목록은 Tranzila 지원팀에 확인하세요.
6. 권장: Tranzila 단말기에서 handshake를 활성화하고, 그곳에서 서버 IP를 허용한 다음, 모듈에서 Handshake를 켭니다.
7. Enable/Disable을 켜고 Save를 클릭한 후, Tranzila 테스트 단말기로 결제를 테스트합니다.
설치 시 모듈은 주문 상태 Tranzila payment on hold를 생성합니다. PrestaShop은 새 결제 모듈에 모든 통화, 국가 및 고객 그룹을 기본으로 제공합니다. Payment > Preferences에서 이를 제한할 수 있습니다.
설정
모든 설정은 모듈 페이지에 있습니다: Modules > Module Manager > VibeFox Tranzila Payment Gateway > Configure. 각 섹션에는 전체 페이지를 저장하는 자체 Save 버튼이 있습니다. 입력란 위에서 페이지는 다음 경우에 경고합니다: 단말기 이름이 비어 있을 때(이 경우 체크아웃에서 결제 수단이 숨겨집니다), 알림이 비활성화되었거나 Trusted IP가 비어 있을 때(결제된 주문은 수동 검토를 위해 보류됩니다), 단말기 비밀번호 없이 handshake가 켜져 있을 때(결제 페이지를 열 수 없습니다), 쇼핑몰의 기본 통화가 지원되지 않을 때. 저장할 때 잘못된 단말기 이름, Trusted IP의 잘못된 항목, 또는 정수가 아닌 숫자 필드는 저장되지 않습니다. 페이지에 오류가 표시되고 이전 값이 유지됩니다. 허용 범위를 벗어난 숫자는 가장 가까운 허용 값으로 저장되며, 페이지에서 이를 알려 줍니다.
Tranzila
Enable/Disable: Enable Tranzila Payment Gateway는 결제 수단을 켜거나 끕니다. 기본값: 끔.
Title: 고객이 체크아웃에서 보는 결제 수단 이름이며, 결제 페이지의 제목이기도 합니다. 주문에 저장되는 결제 수단 이름이기도 합니다. 기본값: Credit Card (Tranzila).
Description: 체크아웃에서 결제 수단 아래에 표시되는 텍스트입니다. 기본값: Pay securely with your credit card on the Tranzila payment page.
단말기
Terminal name (supplier): Tranzila 단말기 이름입니다(예: myshop). 영문자, 숫자, "-" 및 "_"만 사용할 수 있습니다. 입력하기 전까지는 체크아웃에 결제 수단이 표시되지 않습니다. 테스트하려면 Tranzila 테스트 단말기의 이름을 입력하세요.
Terminal password (TranzilaPW): 단말기의 API 비밀번호입니다. handshake와 주문 페이지에서의 환불에 필요합니다.
Refund password (CreditPass): 단말기가 신용(환불) 거래에 별도의 비밀번호를 요구하는 경우에만 입력합니다. 그렇지 않으면 비워 둡니다.
저장된 비밀번호는 다시 표시되지 않습니다. 필드는 비어 있고 Saved — leave empty to keep it.를 표시합니다. 변경하려는 경우에만 새 값을 입력하세요.
Clear saved passwords: 비밀번호에 체크하고 Save를 클릭하면 삭제됩니다. 빈 필드는 저장된 값을 유지합니다.
결제 페이지
Payment page version: iframe에 표시되는 Tranzila 페이지입니다.
Payment page language: Tranzila 페이지의 언어: Site language, 히브리어, 영어, 러시아어, 스페인어, 독일어, 프랑스어 또는 일본어. 기본값: 히브리어. Site language는 고객 장바구니의 언어가 이 중 하나일 때 그 언어를 사용하며, 그 외에는 영어를 사용합니다.
iFrame width (px): 300 ~ 1200. 기본값: 600. 작은 화면에서는 프레임이 페이지보다 넓어지지 않습니다.
iFrame height (px): 400 ~ 1500. 기본값: 650.
Max installments: 고객이 결제 페이지에서 선택할 수 있는 최대 할부 개월 수(tashlumim)로, 최대 36입니다. 0 또는 1은 할부 없음을 의미합니다. 기본값: 0. 단말기가 할부 처리를 허용받아야 합니다.
Handshake: handshake 토큰으로 금액을 잠급니다(권장). 결제 페이지를 열기 전에 쇼핑몰은 금액에 연결된 일회용 토큰을 Tranzila에 요청하므로, 브라우저에서 금액을 변경할 수 없습니다. 단말기 비밀번호, Tranzila 단말기에서 handshake가 활성화되어 있어야 하며, 그곳에서 서버의 IP 주소가 허용되어야 합니다. 기본값: 끔.
결제 확인
Tranzila 알림은 서명되지 않습니다. 주문은 알림이 Trusted IP에서 오고, 그 결제 페이지 토큰, 장바구니, 단말기, 금액 및 통화가 결제 페이지와 일치할 때에만 결제 완료로 생성됩니다. handshake를 사용하는 경우 토큰도 결제 페이지와 일치해야 합니다. 고객이 결제 페이지에서 돌아오는 것만으로는 주문이 결제 완료로 표시되지 않습니다.
Notifications: Tranzila 알림(notify URL)으로 결제를 자동 확인합니다. 기본값: 켬. 알림이 꺼져 있으면, 성공한 결제 페이지에서 돌아온 고객은 Tranzila payment on hold 상태로 주문을 생성하게 되며, Tranzila 단말기를 확인한 후 수동으로 결제를 확인합니다.
Notification URL: 참고용으로 표시됩니다. 친숙한 URL을 사용하면 https://your-shop/module/wcp_tranzila_payment_gateway/notify와 같은 형태이며, 언어 코드가 포함될 수도 있습니다. 이 URL은 결제할 때마다 Tranzila에 전송되므로, Tranzila 단말기에 직접 입력할 필요가 없습니다.
Trusted IP: 알림을 보내는 Tranzila 서버의 IP 주소 또는 CIDR 범위로, 쉼표로 구분합니다. 기본값: 80.244.170.7. 현재 목록은 Tranzila 지원팀에 확인하세요. 다른 주소에서 온 알림은 거부됩니다. 이 필드가 비어 있으면 알림을 확인할 수 없습니다. 성공으로 보고된 결제는 수동 검토를 위해 Tranzila payment on hold 상태로 주문을 생성하며, 거절로 보고된 결제는 아무것도 변경하지 않습니다.
고급
Debug log: 결제 페이지, 알림, 환불 이벤트를 모듈 폴더의 logs/tranzila_p_debug.log.php에 기록합니다. 이 파일은 웹에서 열 수 없습니다. 이 옵션이 꺼져 있어도 경고와 오류는 항상 기록됩니다. 비밀번호, 토큰, 고객 데이터는 기록되지 않습니다. 기본값: 끔.
Log: 로그의 크기와 최근 항목을 표시합니다. Clear log를 클릭하면 비워집니다.
Delete data on uninstall: 켜면 모듈을 제거할 때 설정과 로그가 삭제됩니다. Tranzila 거래 및 환불과 주문 상태 Tranzila payment on hold는 기존 주문에 필요하므로 항상 유지됩니다. 기본값: 끔.
체크아웃
결제 단계에서 고객은 결제 수단(기본값 Credit Card (Tranzila))을 선택하고, 설명과 After you confirm, you will enter your card details on the secure Tranzila payment page. The order is created once Tranzila confirms the payment. 안내 문구를 봅니다. 확인 후 고객은 쇼핑몰의 결제 페이지로 이동합니다. 그곳에서는 장바구니 통화로 된 장바구니 합계, 청구 정보, 간단한 상품 목록과 함께 Tranzila 결제 페이지가 iframe에 열립니다. 페이지에는 Enter your card details on the secure Tranzila payment page below. If it does not load, click "Proceed to payment".라고 표시됩니다. 프레임 아래에는 Choose another payment method 링크가 있습니다. 할부가 허용되는 경우 고객은 Tranzila 페이지에서 할부 개월 수를 선택합니다. 이 시점에는 아직 주문이 존재하지 않습니다.
결제에 성공하면 Tranzila가 고객을 돌려보내고, 전체 창이 다음 단계로 넘어갑니다. 주문은 Tranzila가 알림으로 확인한 후에만 결제 완료로 표시됩니다. 알림이 이미 도착했다면 고객은 표준 주문 확인 페이지에서 Your payment with Tranzila has been received.라는 문구를 봅니다. 주문이 검토를 위해 보류 중이라면 페이지에 Your payment is being reviewed by the store. You will receive an e-mail once it is confirmed.가 표시됩니다. 알림이 아직 도착하지 않았다면 Payment confirmation 페이지에 Your payment is being confirmed by Tranzila. You will receive an e-mail as soon as it is confirmed — there is no need to pay again.라는 문구와 Check again 버튼이 표시됩니다.
결제가 거절되거나 취소되면, 고객은 The payment was not completed. You have not been charged — please try again or choose another payment method.라는 메시지와 함께 체크아웃으로 돌아갑니다. Tranzila가 응답 코드를 보고하면, 카드 유효기간 만료 등의 사유와 코드가 추가됩니다. 장바구니는 유지되며 주문은 생성되지 않습니다. 결제 페이지를 열 때마다 자체 토큰을 가진 새 결제 페이지가 생성됩니다.
handshake 실패 등으로 결제 페이지를 열 수 없으면, 고객에게는 Could not connect to Tranzila. Please try again in a moment.와 같은 짧은 메시지와 Choose another payment method 버튼이 표시됩니다. 기술적인 이유는 로그에 기록됩니다.
알림은 쇼핑몰이 유지 보수 모드인 동안에도 작동하며, 쇼핑몰의 국가 제한에 의해 차단되지 않습니다. 같은 결제 페이지가 Classic 및 Hummingbird 테마에서 사용됩니다.
모듈은 Tranzila 페이지에서 일회성 카드 결제만 받습니다. 저장된 카드나 토큰, 구독, 별도의 승인 및 매입(J5), 자체 Bit, Apple Pay 또는 Google Pay 버튼(Tranzila 결제 페이지가 제공하는 항목은 모두 iframe 안에 표시됨), Tranzila 인보이스는 지원하지 않습니다.
주문 및 환불
주문 상태
No order yet: 고객이 결제 페이지로 이동했지만 결제하지 않았거나, 결제가 거절되었거나, Tranzila 알림이 아직 도착하지 않은 상태입니다. 장바구니만 존재합니다.
Payment accepted: 결제가 검증된 알림으로 확인되었습니다. 결제는 Tranzila 거래 인덱스를 거래 ID로 하여 기록되며, 메모에는 금액, 거래, 승인 번호, 그리고 할부 개월 수(있는 경우)가 표시됩니다.
Tranzila payment on hold: 결제가 보고되었지만 자동으로 승인되지 않았습니다. 금액, 통화 또는 handshake 토큰이 일치하지 않았거나, Trusted IP가 비어 있어 알림을 확인할 수 없었거나, 알림이 꺼져 있는 상태에서 고객이 성공한 결제 페이지에서 돌아온 경우입니다. 메모에 이유가 설명되어 있습니다. Tranzila 단말기에서 결제를 확인하고 상태를 수동으로 변경하세요.
Refunded: 결제가 모듈을 통해 전액 환불되었습니다.
취소된 주문에 대한 결제가 들어오면, 주문은 다시 Payment accepted로 설정되며, 발송 전에 재고를 확인하라는 메모가 추가됩니다. 이미 결제되었거나 환불된 주문에 두 번째 결제가 들어오면 주문은 변경되지 않습니다. 메모는 이를 확인하고 Tranzila 단말기에서 중복 결제를 환불하도록 요청합니다. 같은 거래의 반복 알림은 무시됩니다.
Tranzila 결제 블록
주문 페이지에는 거래 인덱스, 승인 번호, 단말기, 상태, 결제 및 환불 금액, 할부 개월 수, 환불 내역, 결과가 포함된 모든 Payment pages of the cart, 그리고 주문의 Tranzila notes가 포함된 Tranzila payment 블록이 표시됩니다.
환불
Tranzila payment 블록에서 금액을 입력하고(아직 환불되지 않은 금액이 자동으로 채워집니다), 필요하면 사유를 입력한 후 Refund via Tranzila를 클릭합니다. Refund this amount via Tranzila? This cannot be undone. 질문을 확인하세요. 전액 및 부분 환불을 지원합니다. 주문을 편집할 권한이 있어야 하며, 모듈 페이지에 대한 접근 권한은 필요하지 않습니다. 환불은 원래 결제에 대한 Tranzila 신용 거래로 이루어지며, 결제를 받은 단말기를 통해 Tranzila가 실제로 청구한 금액과 통화로 처리됩니다. 따라서 금액이나 통화가 일치하지 않은 후에는 주문 합계가 아니라 고객이 실제로 결제한 금액까지 환불할 수 있습니다.
양식은 단말기 비밀번호가 설정되어 있고, 주문에 승인 번호가 있는 확정된 Tranzila 거래가 있을 때 사용할 수 있습니다. 그렇지 않으면 블록에 이유가 표시됩니다. 예: Refunds need the terminal password (TranzilaPW) in the gateway settings. 현재 설정과 다른 단말기(예: 테스트 단말기)에서 결제된 주문은 주문 페이지에서 환불할 수 없으며, 해당 Tranzila 단말기에서 환불해야 합니다.
Tranzila가 환불을 거부하면 블록에 오류가 표시됩니다. 예: 코드와 그 의미가 함께 나오는 Tranzila declined the refund. 이 경우 환불은 기록되지 않습니다. 환불이 성공하면 Tranzila 신용 거래와 함께 환불 내역과 메모에 추가됩니다. 전액 환불은 주문을 Refunded로 설정합니다. 부분 환불은 상태를 변경하지 않습니다.
모듈은 신용 전표(credit slips)를 생성하지 않습니다. 주문 페이지의 표준 PrestaShop 환불 버튼은 Tranzila를 통해 돈을 돌려주지 않습니다. Tranzila 단말기에서 이루어진 환불은 쇼핑몰에 보고되지 않습니다. 필요하면 주문을 수동으로 업데이트하세요.
라이선스 키
모듈은 vibefox.net에서 받은 VibeFox 라이선스 키로 작동합니다. 라이선스 블록 License — VibeFox Tranzila Payment Gateway는 Modules > Module Manager > VibeFox Tranzila Payment Gateway > Configure에서 설정 위에 있는 첫 번째 블록입니다. 키를 License key에 입력하고 Activate를 클릭하세요. 그러면 블록에 마스킹된 키, 상태(예: 라이선스가 유효한 날짜와 도메인), 그리고 다음 버튼이 표시됩니다: Check now(상태를 다시 확인), Change key(다른 키 입력), Remove key(이 쇼핑몰에서 키 제거). 그 아래에는 Product: presta-payment-tranzila 줄과 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 계정에서 슬롯을 해제하세요.
활성 키가 없으면 체크아웃에서 고객에게 Tranzila가 표시되지 않습니다. 그럼에도 결제가 시작되면 고객에게는 This payment method is not available. Please choose another one.가 표시됩니다. PrestaShop 스토어프런트는 백오피스에 로그인했는지 알 수 없으므로, 결제 수단은 관리자에게도 숨겨집니다. 키를 구매하기 전에 모듈을 설정할 수는 있지만, 체크아웃에서 테스트할 수는 없습니다. Modules > Module Manager의 Alerts 탭에 알림이 나타납니다. 기존 주문은 영향을 받지 않습니다. 이미 시작된 결제는 Tranzila 알림과 쇼핑몰로의 복귀를 통해 계속 확인되며, 환불도 작동합니다.
라이선스가 만료되어도 모듈은 계속 작동하지만, 업데이트와 지원에는 갱신이 필요합니다. 백오피스에서 작업하는 동안 상태는 자동으로 다시 확인됩니다. 키를 입력한 후 처음 14일 동안은 하루에 한 번, 이후에는 일주일에 한 번입니다. cron 작업은 필요하지 않습니다. 모듈을 제거하거나 초기화하면 라이선스 키와 라이선스 상태가 항상 삭제됩니다.
문제 해결
체크아웃에 Tranzila가 나타나지 않음: 라이선스가 활성 상태인지, Enable/Disable이 켜져 있는지, Terminal name (supplier)이 입력되어 있는지, 장바구니 통화가 ILS, USD, EUR 또는 GBP인지 확인하세요. 단말기 이름이 없거나 기본 통화가 지원되지 않으면 설정 페이지에 경고가 표시됩니다. Payment > Preferences에서 모듈이 장바구니 통화, 고객의 국가, 고객 그룹에 대해 허용되어 있는지 확인하세요.
결제는 완료되었지만 주문이 생성되지 않음: 알림이 도착하지 않았거나 거부되었습니다. Notifications가 켜져 있는지, 그리고 Trusted IP에 Tranzila가 알림을 보내는 주소가 나열되어 있는지 확인하세요. 오류는 항상 로그에 기록되므로 모듈 페이지의 Log 필드를 확인하세요. IP가 Trusted IP 목록에 없다는 메시지는 Trusted IP 설정이나 프록시 구성을 수정해야 한다는 뜻입니다. 프록시나 CDN 뒤에서는 웹 서버가 방문자의 실제 IP를 PHP에 전달해야 합니다. 쇼핑몰이 신뢰할 수 있는 리버스 프록시 뒤에 있는 개발자는 actionTranzilaPRemoteIp 훅으로 IP를 설정할 수 있습니다.
알림이 Forbidden으로 응답함: Trusted IP에 없는 IP 주소에서 온 알림입니다.
알림이 Bad request 또는 Not found로 응답함: 알림의 장바구니, 결제 페이지 토큰, 단말기 또는 거래 인덱스가 이 쇼핑몰의 결제 페이지와 일치하지 않습니다.
알림이 Accepted for manual review로 응답함: Trusted IP가 비어 있어 알림을 확인할 수 없었습니다. 성공한 결제는 보류 상태로 주문을 생성합니다. 결제를 자동으로 확인하려면 Trusted IP를 입력하세요.
알림이 Busy, retry로 응답함: 같은 시점에 다른 요청이 장바구니를 처리 중이었거나, 주문을 생성할 수 없었습니다(예: 모듈이 비활성화됨). 로그에 이유가 표시됩니다. Tranzila 단말기에서 결제를 확인하세요. 그곳에서 승인되었는데 주문이 생성되지 않았다면, 고객에게 연락하거나 주문을 수동으로 생성하세요.
일부 주문이 Tranzila payment on hold 상태임: Tranzila payment 블록의 메모를 읽으세요. 금액, 통화 또는 handshake 토큰이 일치하지 않았거나, 알림을 확인할 수 없었습니다(Trusted IP가 비어 있거나 알림이 꺼져 있음). Tranzila 단말기에서 결제를 확인하고 상태를 수동으로 변경하세요.
handshake가 켜져 있을 때 결제 페이지가 열리지 않음: 단말기 이름과 단말기 비밀번호를 확인하고, Tranzila 단말기에서 handshake가 활성화되어 있는지, 그곳에서 서버의 IP 주소가 허용되어 있는지 확인하세요. 로그에 이유가 표시됩니다.
환불이 실패함: 환불에는 Terminal password (TranzilaPW)가 필요합니다. 일부 단말기는 별도의 신용 비밀번호도 요구합니다. 이를 Refund password (CreditPass)에 입력하세요. 다른 단말기에서 결제된 주문은 그 단말기에서 환불해야 합니다. Tranzila의 응답이 예상과 다르면 블록에 환불이 확인되지 않았다고 표시됩니다. 다시 시도하기 전에 Tranzila 단말기를 확인하세요.
다른 통화: 모듈은 ILS, USD, EUR, GBP만 지원합니다.
제거
Modules > Module Manager로 이동하여 VibeFox Tranzila Payment Gateway 옆의 메뉴를 열고 Uninstall을 선택합니다. 이 모듈의 라이선스 키와 라이선스 상태는 항상 제거됩니다. Delete data on uninstall이 켜져 있으면 설정과 로그가 삭제됩니다. 꺼져 있으면 나중에 다시 설치할 수 있도록 모든 설정이 유지됩니다. Tranzila 거래와 환불, 그리고 주문 상태 Tranzila payment on hold는 항상 유지되므로, 이전에 결제된 주문은 재설치 후에도 환불할 수 있습니다. 기존 주문은 결제 메모와 거래 ID를 그대로 유지합니다.
Tranzila는 해당 소유자의 상표입니다. 이 모듈은 Tranzila와 제휴하거나 Tranzila의 승인을 받은 것이 아닙니다.
