뒤로

VibeFox Transbank for PrestaShop — 도움말

요구 사항

PrestaShop: 8.0 ~ 9.x.

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

통화: 칠레 페소(CLP). Webpay Plus는 정수 페소만 청구하므로 International > Localization > Currencies에서 CLP 통화의 소수점 자릿수를 0으로 설정하세요. 다른 통화의 장바구니에서는 결제 수단이 표시되지 않습니다.

Transbank 계정: 실제 결제에는 운영용 Commerce Code와 API Key Secret이 있는 표준 Webpay Plus 커머스(즉시 캡처)가 필요합니다. Transbank는 가맹 신청이 승인되면 Commerce Code를, 통합 검증 절차가 끝난 뒤 API Key Secret을 발급합니다(Transbank 개발자 문서 참고). 테스트에는 자격 증명이 필요하지 않습니다. Webpay Plus Mall, Oneclick, 지연 캡처 커머스 코드는 지원되지 않습니다.

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

설치

1. 관리자 화면에서 Modules > Module Manager로 이동하여 Upload a module을 클릭하세요. 모듈 ZIP 파일을 선택하세요.

2. 업로드가 끝나면 Configure를 클릭하거나, 나중에 모듈 목록에서 VibeFox Transbank Gateway를 찾아 Configure를 클릭하세요.

3. Configure 페이지 상단의 라이선스 블록에 있는 License key에 VibeFox 라이선스 키를 입력하고 Activate를 클릭하세요(라이선스 키 참고).

4. Enable / Disable을 켜고 Save를 클릭하세요. Integration (test) mode를 켠 상태에서 Transbank 개발자 문서의 테스트 카드로 결제를 시험해 보세요.

5. 실제 운영을 시작하려면 Production Commerce Code와 Production API Key Secret을 입력하고, Integration (test) mode를 끈 다음 Save를 클릭하세요.

Transbank에 반환 URL이나 웹훅을 설정할 필요는 없습니다. 모듈이 모든 거래에 반환 URL을 함께 보냅니다.

설치 시 모듈은 Transbank payment on hold 주문 상태를 만듭니다. PrestaShop은 새 결제 모듈을 모든 통화, 국가 및 고객 그룹에 대해 활성화합니다. Payment > Preferences에서 이를 제한할 수 있으며, 단 CLP 통화는 모듈에서 계속 허용되어 있어야 합니다.

설정

모든 설정은 모듈 페이지에 있습니다: Modules > Module Manager > VibeFox Transbank Gateway > Configure. 각 섹션에는 전체 페이지를 저장하는 자체 Save 버튼이 있습니다. 필드 위에서 페이지는 운영 모드가 선택되었는데 운영용 Commerce Code 또는 API Key가 없거나 잘못된 경우(이때 Webpay는 체크아웃에서 숨겨집니다), 쇼핑몰의 기본 통화가 CLP가 아닌 경우(다른 통화에서는 결제 수단이 숨겨집니다), CLP에 소수점이 있는 경우(금액이 정수 페소로 반올림됩니다)를 알려 줍니다. 통합 모드가 켜져 있는 동안에는 결제가 공개 테스트 커머스 코드를 사용해 Transbank 통합 환경으로 전송되며 실제 금액은 청구되지 않는다는 내용이 표시됩니다.

Transbank Webpay Plus

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

Title: 고객이 체크아웃에서 보는 결제 수단 이름입니다. 주문에 저장되는 결제 수단 이름이기도 합니다. 기본값: Webpay Plus. 필수: 제목을 비워 두고 저장하면 Enter a title for the payment method.가 표시됩니다.

Description: 체크아웃에서 결제 수단 아래에 표시되는 텍스트입니다. 기본값: Pay with credit, debit or prepaid card via Webpay.

환경 및 자격 증명

이 섹션의 텍스트는 Transbank 개발자 문서로 연결되는 링크를 포함하며, Transbank가 운영용 자격 증명을 언제 제공하는지 설명합니다.

Integration (test) mode: 결제는 자동으로 입력되는 Transbank의 공개 테스트 커머스 코드(597055555532)를 사용해 Transbank 통합 환경으로 전송됩니다. 아래의 운영용 자격 증명은 사용되지 않으며 실제 금액은 청구되지 않습니다. 기본값: 켜짐. 운영을 시작하려면 끄세요. 켜져 있는 동안 고객에게는 결제 수단 설명 위에 TEST MODE: 통합 환경. 실제 청구 없음. 이 표시됩니다.

Production Commerce Code: 운영용 커머스 코드(Tbk-Api-Key-Id): 5970으로 시작하는 12자리 숫자입니다. 8자리라면 그대로 입력하세요. 저장할 때 모듈이 5970 접두사를 추가합니다. 공백과 기타 문자는 제거됩니다. Transbank의 공개 테스트 커머스 코드는 운영 환경에서 허용되지 않습니다.

Production API Key Secret: 운영용 커머스의 Tbk-Api-Key-Secret입니다. 비밀로 유지하세요. 저장할 때 공백은 제거됩니다. 저장된 키는 다시 표시되지 않습니다. 필드는 비어 있고 Saved — leave empty to keep it.가 표시됩니다. 값을 바꾸려는 경우에만 새 값을 입력하세요.

Clear saved API key: Production API Key Secret에 체크하고 Save를 클릭하면 저장된 키가 삭제됩니다. 필드가 비어 있으면 저장된 값이 유지됩니다.

반환 URL

Return from Webpay: Transbank가 고객을 되돌려 보내는 주소이며, 참고용으로 표시됩니다. Transbank에서는 아무것도 설정할 필요가 없습니다. 모듈이 모든 거래에 이 URL을 보냅니다. 고객이 접근할 수 있어야 하며, 유지보수 모드에서도 차단되지 않습니다.

고급

Debug log: API 요청과 반환 내용을 모듈 폴더의 logs/wc_tbk_debug.log.php에 기록합니다. 이 파일은 웹에서 열 수 없습니다. 이 옵션이 꺼져 있어도 오류와 경고는 항상 기록됩니다. 카드 정보, API 키, 전체 토큰은 기록되지 않습니다. 기본값: 끔.

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

Delete data on uninstall: 켜져 있으면 모듈을 제거할 때 게이트웨이 설정과 로그가 삭제됩니다. 주문 데이터는 유지됩니다. 기본값: 끔.

테스트와 운영

Integration (test) mode는 새 결제가 어디로 갈지 결정합니다. 각 결제는 자신의 환경을 기억합니다. 결제의 확정과 환불은 나중에 모드를 바꾸더라도 항상 그 결제가 만들어진 환경(통합 또는 운영)과 자격 증명으로 처리됩니다.

체크아웃

결제 단계에서 고객은 결제 수단(기본값은 Webpay 로고가 있는 Webpay Plus)을 선택하고 확인합니다. 모듈은 장바구니 총액을 정수 페소로 하여 Transbank 거래를 생성하고(소수점이 있는 총액은 가장 가까운 페소로 반올림됩니다), 고객을 Redirecting to Webpay. Please wait...라는 짧은 페이지로 보내 Webpay 양식으로 넘어가게 합니다. JavaScript가 꺼져 있으면 고객이 Proceed to Webpay를 클릭합니다. Webpay에서 고객은 신용카드, 체크카드 또는 선불카드로 결제합니다. 이 시점에는 아직 주문이 없습니다.

고객이 돌아오면 모듈은 서버 간 통신으로 Transbank와 거래를 확정(commit)합니다. 주문은 Transbank가 확정한 후에만 결제 완료로 표시됩니다. 응답이 승인되어야 하며, 금액, buy order, 세션이 이번 시도에서 쇼핑몰이 보낸 내용과 일치해야 합니다. 그런 다음 주문이 생성되고, 고객은 표준 주문 확인 페이지에서 Your Webpay payment has been received.를 보게 됩니다. 보류된 주문의 경우 페이지에는 Your Webpay payment was received and is being reviewed by the shop.가 표시됩니다.

확정 요청이 실패하면(예: 시간 초과), 모듈은 Transbank에 거래 상태를 요청합니다. 상태를 여전히 확인할 수 없으면 주문은 생성되지 않고 고객에게 We could not confirm your Webpay payment with Transbank. Please try again in a moment; if your card was charged, contact us before paying again.가 표시됩니다. 같은 순간에 다른 요청이 같은 장바구니를 확정하고 있거나, Transbank가 결제를 승인했지만 주문을 아직 만들 수 없는 경우에는 고객에게 Payment confirmation 페이지가 표시되며, 여기에는 Your Webpay payment is being confirmed. Please do not pay again — check again in a moment. 문구와 Check again 버튼이 있습니다. 이후 주문은 저장된 응답으로부터 생성되며, 두 번째 확정은 필요하지 않습니다.

고객이 Webpay에서 취소하거나, Webpay 양식이 만료되거나 오류를 보고하면 아무 금액도 청구되지 않습니다. 고객은 예를 들어 You cancelled the Webpay payment. Nothing was charged — you can try again or choose another payment method. 같은 메시지와 함께 체크아웃으로 돌아갑니다. 카드가 거절되면 Your Webpay payment was rejected and nothing was charged. Please try again or choose another payment method.가 표시됩니다. 장바구니는 유지되며, 새로 시도할 때마다 새 Webpay 거래가 만들어집니다.

결제가 시작된 후 장바구니가 바뀌었다면(예: 다른 탭에서 변경했거나, 장바구니의 쿠폰이 더 이상 유효하지 않아 PrestaShop이 제거한 경우), 거래는 확정되지 않으므로 Transbank는 청구하지 않습니다. 고객에게는 Your cart changed after the Webpay payment was started. The payment was not confirmed, so it was not charged — please pay again.가 표시됩니다. 장바구니에 이미 주문이 있다면(다른 시도나 다른 결제 수단으로 결제됨), 늦게 도착한 반환도 확정되지 않으며, 그 주문이 결제되지 않은 상태라면 고객에게 This order can no longer be paid (it was cancelled or already paid). Your Webpay payment was not confirmed, so it was not charged.가 표시됩니다.

Webpay가 결제를 시작할 수 없으면 고객은 체크아웃에 머무르며, 예를 들어 Could not connect to Webpay. Please try again in a moment. 또는 Webpay payments are not available at the moment. Please choose another payment method.와 같은 짧은 메시지를 봅니다. 기술적인 원인은 로그에 기록됩니다.

쇼핑몰이 유지보수 모드일 때도 Webpay에서의 반환은 작동하며, 쇼핑몰의 국가 제한에 의해 차단되지 않습니다.

Transbank에는 결제 웹훅이 없습니다. 결과는 고객이 Webpay에서 돌아올 때 처리됩니다. 고객이 Webpay에서 브라우저를 닫고 돌아오지 않으면 거래는 확정되지 않으며 주문도 생성되지 않습니다. Transbank에 따르면 확정되지 않은 거래는 정산되지 않습니다. 모듈은 Webpay Plus Mall, Oneclick 저장 카드, 정기결제, 지연 캡처, 통화 변환을 지원하지 않습니다.

주문 및 환불

주문 상태

No order yet: 고객은 Webpay로 이동했지만 결제하지 않았거나, 취소했거나, 양식이 만료되었거나, 카드가 거절되었거나, 결제를 아직 확인할 수 없는 상태입니다. 장바구니만 존재합니다.

Payment accepted: Transbank가 결제를 승인했습니다. 결제는 Webpay 토큰을 거래 ID로 하여 기록되며, 메모에는 승인 코드, 카드 번호 뒤 네 자리, buy order, 금액, 결제 유형, 할부 개월 수가 표시됩니다.

Transbank payment on hold: Transbank가 주문과 일치하지 않는 결제(금액, buy order 또는 세션)를 승인했거나, Transbank가 결제를 승인한 뒤 장바구니의 쿠폰이 더 이상 유효하지 않아 PrestaShop이 제거했습니다. 결제는 Transbank가 청구한 금액으로 기록되며, 메모에 차이점이 나열됩니다. Transbank 포털을 확인한 다음 주문을 처리하거나 결제를 환불하세요.

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

Webpay가 이미 주문이 있는 장바구니의 결제를 반환하면 그 결제는 확정되지 않으며, 해당 주문의 메모에 고객이 청구 건을 신고하는 경우 Transbank 포털을 확인하라는 안내가 표시됩니다. 이후의 시도는 기존 주문에 영향을 주지 않습니다.

Transbank Webpay Plus 블록

주문 페이지에는 Transbank Webpay Plus 블록이 표시되며, buy order와 그 환경, 결제 상태, 승인 코드, 카드 및 결제 유형과 할부 개월 수, 청구 금액과 환불 금액, 테스트 결제용 Integration 배지, 환불 내역, Webpay attempts of the cart, 주문의 Transbank notes가 포함됩니다.

환불

Transbank Webpay Plus 블록에 CLP 금액을 입력하고(아직 환불되지 않은 금액이 자동으로 채워집니다), 필요하면 사유를 입력한 다음 Refund via Transbank를 클릭하세요. Refund this amount via Transbank? 질문을 확인하면 환불이 진행됩니다. 전액 및 부분 환불은 정수 페소 단위로 지원됩니다. 주문을 편집할 권한이 필요하며, 모듈 페이지에 접근할 권한은 필요하지 않습니다. 소수점이 있는 부분 금액은 Webpay refunds are in whole Chilean pesos. Please enter an amount without decimals.라는 메시지와 함께 거절됩니다. 소수점이 있는 주문 총액의 마지막 잔액은 청구와 같은 방식으로 반올림됩니다. 환불은 Transbank가 청구한 금액까지 가능하므로, 불일치가 생긴 뒤에도 고객이 실제로 낸 금액을 환불할 수 있습니다. 환불은 결제가 이루어진 환경으로 처리되므로, 운영 결제의 경우 운영용 자격 증명이 설정되어 있어야 합니다.

Transbank는 취소(REVERSED) 또는 무효화(NULLIFIED)로 응답합니다. 환불이 성공하면 금액, 유형, 승인 코드, Transbank에 남아 있는 잔액과 함께 환불 내역과 메모에 추가됩니다. 전액 환불하면 주문이 Refunded 상태가 됩니다. 부분 환불은 상태를 바꾸지 않습니다. Transbank가 환불을 거부하면 블록에 오류가 표시되며 환불은 기록되지 않습니다.

모듈은 신용 전표를 만들지 않습니다. 주문 페이지의 표준 PrestaShop 환불 버튼은 Transbank를 통해 돈을 돌려주지 않습니다. Transbank 포털에서 처리한 환불은 PrestaShop으로 가져오지 않습니다.

라이선스 키

모듈은 vibefox.net에서 받은 VibeFox 라이선스 키로 작동합니다. 라이선스 블록 License — VibeFox Transbank Gateway는 Modules > Module Manager > VibeFox Transbank Gateway > Configure에서 설정 위에 있는 첫 번째 블록입니다. 키를 License key에 입력하고 Activate를 클릭하세요. 그러면 블록에 마스킹된 키, 상태(예: 라이선스가 유효한 날짜와 도메인), 그리고 다음 버튼이 표시됩니다: Check now(상태를 다시 확인), Change key(다른 키 입력), Remove key(이 쇼핑몰에서 키 제거). 그 아래에는 Product: presta-payment-transbank 줄과 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 계정에서 슬롯을 해제하세요.

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

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

문제 해결

체크아웃에 Webpay Plus가 나타나지 않음: 라이선스가 활성 상태인지, Enable / Disable이 켜져 있는지, 장바구니 통화가 CLP인지 확인하세요. 통합 모드가 꺼져 있다면 유효한 Production Commerce Code(5970으로 시작하는 12자리 숫자)와 Production API Key Secret이 저장되어 있어야 합니다. 설정 페이지는 누락된 조건마다 경고를 표시합니다. Payment > Preferences에서 모듈이 CLP, 고객의 국가, 고객의 그룹에 대해 허용되어 있는지 확인하세요.

결제는 되었지만 주문이 생성되지 않음: Transbank에는 웹훅이 없으므로 고객이 Webpay에서 돌아와야만 주문이 생성됩니다. 고객이 Webpay에서 브라우저를 닫았다면 거래는 확정되지 않았으며, Transbank에 따르면 정산되지 않습니다. Debug log를 켜고 Log 필드를 확인한 다음 Transbank 포털에서 거래를 확인하세요.

고객에게 We could not confirm your Webpay payment with Transbank가 표시됨: 확정 요청이 실패했고 상태를 확인할 수 없었습니다. 주문은 생성되지 않았으며, 이유는 로그에 있습니다. 고객은 잠시 후 다시 시도할 수 있습니다. Transbank 포털에서 거래가 승인된 것으로 나오면 고객이 다시 결제하기 전에 연락하세요.

고객에게 Your cart changed after the Webpay payment was started가 표시됨: 장바구니 총액이 거래와 달랐습니다. 예를 들어 다른 탭에서 변경되었거나 쿠폰이 만료된 경우입니다. 아무 금액도 청구되지 않았으며, 고객은 새 총액을 결제합니다.

고객이 Webpay Plus를 선택할 때 오류가 표시됨: Debug log를 켜고 모듈 페이지의 Log 필드를 확인하세요. Webpay payments are not available at the moment는 보통 운영용 자격 증명이 잘못되었다는 뜻입니다. Could not connect to Webpay는 Transbank에 연결할 수 없다는 뜻입니다. Transbank Webpay only supports payments in CLP (Chilean Peso)는 장바구니가 다른 통화라는 뜻입니다.

합계와 환불이 몇 페소 차이 남: CLP 통화에는 소수점이 있습니다. Webpay는 정수 페소만 청구하므로 합계가 반올림됩니다. International > Localization > Currencies에서 CLP 소수점 자릿수를 0으로 설정하세요.

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

환불이 The production Commerce Code / API Key are missing 오류로 실패함: 결제는 운영 환경에서 이루어졌지만 운영용 자격 증명이 저장되어 있지 않습니다. 자격 증명을 입력한 뒤 다시 시도하세요.

환불이 Transbank refused the refund 또는 Transbank did not approve the refund 오류로 실패함: Transbank가 승인하지 않았습니다. 메시지에 사유 또는 Transbank가 반환한 유형과 응답 코드가 표시됩니다. 아무 금액도 환불되지 않았습니다. Transbank 포털에서 거래를 확인하세요.

환불이 Another request is processing this order 오류로 실패함: 주문이 같은 순간 환불 또는 확정 처리 중이었습니다. 잠시 후 다시 시도하세요.

제거

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

Transbank와 Webpay는 각 소유자의 상표입니다. 이 모듈은 Transbank와 제휴하거나 Transbank의 승인을 받은 제품이 아닙니다.