VibeFox Moneris for PrestaShop — 도움말
요구 사항
PrestaShop: 8.0 ~ 9.x.
PHP: SimpleXML 확장 기능이 있는 8.0 이상. 모듈은 이전 PHP 버전이거나 SimpleXML이 없는 환경에서는 설치되지 않습니다.
쇼핑몰 통화: 캐나다 Moneris 계정은 CAD, 기존 Moneris USA 계정은 USD. 결제 수단은 장바구니 통화가 계정 통화와 일치할 때만 표시됩니다.
HTTPS 및 PCI DSS: 카드 번호는 체크아웃 페이지에서 입력되며 쇼핑몰 서버를 거칩니다. 운영 결제에는 HTTPS와 PCI DSS SAQ D 준수가 필요합니다. 준수할 수 없다면 호스팅형 결제 페이지 솔루션을 사용하십시오.
Moneris 계정: Moneris Gateway 스토어의 Store ID와 API Token이 필요합니다. 이는 Moneris Merchant Resource Center > Admin > Store Settings에서 확인할 수 있습니다. 테스트를 위해 Moneris의 공개 테스트 스토어가 기본으로 입력되어 있습니다. 테스트 자격 증명과 테스트 카드는 Moneris 개발자 포털에 있습니다.
VibeFox 라이선스 키: vibefox.net에서 구매합니다. 키 하나는 도메인 하나에서 사용할 수 있습니다.
설치
1. 백오피스에서 Modules > Module Manager로 이동하여 Upload a module을 클릭합니다. 모듈의 ZIP 파일을 선택하십시오.
2. 업로드가 끝나면 Configure를 클릭하거나, 나중에 모듈 목록에서 VibeFox Moneris Gateway를 찾아 Configure를 클릭하십시오.
3. Configure 페이지 상단의 라이선스 블록에 있는 License key 필드에 VibeFox 라이선스 키를 입력하고 Activate를 클릭합니다(라이선스 키 참조).
4. 계정 국가를 선택하고 Live Store ID와 Live API Token을 입력합니다. 테스트 모드는 기본으로 켜져 있으며 공개 테스트 스토어(캐나다는 store5 / yesguy, 미국은 monusqa002 / qatoken)를 사용합니다.
5. Purchase 또는 Pre-Authorization과 카드 로고를 선택한 다음 Enable / Disable을 켜고 Save를 클릭합니다.
6. Moneris 테스트 카드로 테스트 주문을 한 다음 Test mode를 끕니다.
설치 시 모듈은 두 개의 주문 상태, Moneris payment authorized와 Moneris payment on hold를 만듭니다. PrestaShop은 새 결제 모듈을 모든 통화, 국가 및 고객 그룹에 대해 기본적으로 활성화합니다. Payment > Preferences에서 제한할 수 있습니다.
설정
모든 설정은 모듈 페이지에 있습니다: Modules > Module Manager > VibeFox Moneris Gateway > Configure. 각 섹션에는 자체 Save 버튼이 있으며, 이 버튼은 페이지 전체를 저장합니다. 테스트 모드가 켜져 있는 동안 페이지는 입력란 위에 Moneris gateway is in TEST MODE. No real charges will be made.를 표시합니다. 운영 모드에서는 운영 입력란에 Moneris 테스트 자격 증명이 들어 있으면(이 경우 결제 수단이 체크아웃에서 숨겨짐) 또는 쇼핑몰에서 SSL이 활성화되지 않았으면 경고합니다. 쇼핑몰 기본 통화가 Moneris 계정 통화와 다르면 경고하며, 이 경우 다른 통화에 대해서는 결제 수단이 체크아웃에서 숨겨집니다.
Moneris
Enable / Disable: Enable Moneris Gateway는 결제 수단을 켜거나 끕니다. 기본값: 끔.
Title: 고객에게 표시되는 결제 수단 제목입니다. 주문에 저장되는 결제 수단 이름이기도 합니다. 기본값: Credit card (Moneris). 테스트 모드에서는 제목에 (Test Mode)가 추가됩니다. 필수 항목.
Description: 체크아웃에서 카드 입력란 위에 표시되는 텍스트입니다. 기본값: Pay securely with your credit card.
Moneris 계정
Store ID와 API Token은 Moneris Merchant Resource Center의 Admin > Store Settings에 있습니다. 테스트 자격 증명과 테스트 카드는 Moneris 개발자 포털에 있습니다. 이 섹션에는 두 곳으로 가는 링크가 있습니다.
Moneris 계정 국가: 캐나다 계정은 CAD로, 미국 계정은 USD로 청구합니다. 결제 수단은 장바구니 통화가 일치할 때만 표시됩니다. 기본값: Canada (CAD).
Test mode: Moneris QA 게이트웨이와 테스트 자격 증명을 사용합니다. 실제 청구는 이루어지지 않습니다. 캡처, 무효화 및 환불은 항상 결제가 이루어진 환경으로 전송됩니다. 고객에게는 카드 입력란 위에 TEST MODE: use a Moneris test card, no real charges are made.가 표시됩니다. 기본값: 켜짐.
Live Store ID: 운영용 Store ID, 예: monca01234.
Live API Token: 운영용 API Token.
Test Store ID: Moneris 공개 테스트 스토어: store5(캐나다) 또는 monusqa002(미국). 기본값: store5.
Test API Token: 공개 테스트 토큰: yesguy(캐나다) 또는 qatoken(미국). 기본값: yesguy.
저장된 API 토큰은 다시 표시되지 않습니다. 입력란은 비어 있으며 Saved — leave empty to keep it.가 표시됩니다. 변경하려는 경우에만 새 값을 입력하십시오.
Clear saved tokens: 토큰을 체크하고 Save를 클릭하면 삭제됩니다. 입력란을 비워 두면 저장된 값이 유지됩니다.
결제
Transaction type: 카드에 청구하는 방식입니다. 기본값: Purchase.
Card logos: 체크아웃에서 결제 수단과 함께 표시되는 카드 브랜드입니다: Visa, Mastercard, Discover, American Express, JCB. 허용되는 브랜드는 Moneris 계정에 따라 다릅니다. 기본값: Visa와 Mastercard.
고급
Debug log: API 요청과 응답을 모듈 폴더의 logs/wc_mng_debug.log.php에 기록합니다. 이 파일은 웹에서 열 수 없습니다. 카드 번호, CVV, 만료일, API token은 마스킹됩니다. 오류는 이 옵션이 꺼져 있어도 항상 기록됩니다. 기본값: 끔.
Log: 로그의 크기와 최신 항목을 표시합니다. Clear log를 클릭하면 비워집니다.
Delete data on uninstall: 켜져 있으면 모듈을 제거할 때 게이트웨이 설정과 로그가 삭제됩니다. 주문의 Moneris 데이터(환불에 필요)와 주문 상태는 항상 남습니다. 기본값: 끔.
체크아웃
결제 단계에서 고객은 결제 수단(기본값 Credit card (Moneris))을 선택하고, 해당 옵션 아래의 카드 양식에 Card number, Expiry (MM/YY), Card code (CVC)를 입력합니다. 세 항목 모두 필수입니다. 주문이 이루어지면 쇼핑몰 서버가 장바구니 총액으로 카드를 Moneris에 보내고 결과를 즉시 받습니다. 리디렉션이나 webhook은 없습니다. 카드 정보는 이 한 번의 요청에만 사용되며 저장되지 않고, 로그에는 마지막 네 자리만 표시됩니다.
주문은 승인된 Moneris 응답이 있을 때만 생성됩니다. 이후 고객에게는 표준 주문 확인 페이지가 표시됩니다. Pre-Authorization의 경우 주문은 금액을 캡처할 때까지 Moneris payment authorized에서 대기합니다. Moneris가 장바구니 총액과 다른 금액을 처리했거나 결제 중 장바구니가 변경되었다면, 주문은 메모와 함께 Moneris payment on hold 상태로 생성됩니다.
카드가 거절되면 고객은 Your card was declined와 Moneris가 알려준 이유가 표시된 상태로 체크아웃에 남아 카드 정보를 확인하거나 다른 카드를 사용할 수 있습니다. 주문은 생성되지 않습니다. Moneris가 요청을 처리하지 못하면(예: 잘못된 Store ID 또는 API Token) 고객에게는 The payment could not be processed. Please try again or use another payment method.가 표시됩니다. 이유는 로그에 기록됩니다. 잘못된 카드 정보에는 Invalid card number. 또는 Invalid card expiry date.와 같은 짧은 메시지가 표시되며, Moneris로는 아무것도 전송되지 않습니다.
결제가 처리되는 동안 두 번째 클릭이나 두 번째 브라우저 탭을 열면 A payment for this order is already being processed. Please wait a moment and check your order status before trying again.가 표시됩니다. 이미 주문이 있는 장바구니는 다시 청구되지 않으며, 고객은 기존 주문으로 안내됩니다.
Moneris가 응답하지 않으면(네트워크 오류 또는 시간 초과), 모듈은 같은 Moneris 주문 ID로 Moneris에 Status Check를 보내 거래가 완료되었는지 확인합니다. Moneris에 그러한 거래가 없으면 고객은 다시 결제할 수 있습니다. Status Check도 응답을 받지 못하면, 주문은 Moneris 주문 ID와 함께 Moneris payment on hold 상태로 생성되며, 고객에게 두 번째 결제를 요청하지 않습니다.
모듈은 저장된 카드 및 Moneris Vault, 구독, Apple Pay, Google Pay 또는 Interac Online, Moneris Checkout 또는 Hosted Tokenization, 3-D Secure, AVS 또는 Kount, 다중 통화 가격 책정을 지원하지 않습니다.
주문 및 환불
주문 상태
No order yet: 카드가 거절되었거나 처리되지 않았습니다. 장바구니와 로그의 시도 기록만 존재합니다. 고객은 다시 결제할 수 있습니다.
Payment accepted: 구매가 승인되었습니다. 결제는 Moneris 거래 번호를 거래 ID로 하여 기록됩니다.
Moneris payment authorized: 사전 승인이 완료되어 캡처를 기다리고 있습니다. 아직 결제가 기록되지 않았습니다.
Moneris payment on hold: 처리된 금액이 장바구니 총액과 달랐거나, 결제 중 장바구니가 변경되었거나, Moneris가 결과를 확인하지 않았거나, 캡처가 실패했는데도 PrestaShop이 결제 완료 상태를 기록했습니다. 메모에 설명이 있습니다. 금액이 다른 구매의 경우 결제는 Moneris가 처리한 금액으로 기록됩니다.
Canceled: 사전 승인된 주문의 경우 취소하면 예약된 금액이 해제됩니다(void).
Refunded: 모듈을 통해 결제가 전액 환불되었습니다.
Moneris payment 블록
주문 페이지에는 Moneris payment 블록이 표시되며, 여기에는 Moneris 주문 ID, 계정 국가와 모드, 테스트 결제용 Test mode 배지, Trans ID(캡처 후에는 사전 승인 Trans ID 포함), 거래 유형과 상태(캡처되지 않음, 캡처됨 또는 해제됨), 영수증과 카드 유형, 처리된 금액, 주문 총액과 환불된 금액, 환불 내역, 주문의 Moneris notes가 포함됩니다. 확인되지 않은 결제의 경우 블록은 Merchant Resource Center에서 Moneris 주문 ID를 찾아보라고 안내합니다. 블록의 모든 작업에는 주문 편집 권한만 필요합니다.
캡처 및 무효화
사전 승인을 캡처하려면 블록에서 Capture payment를 클릭하고 확인하거나, 주문을 Payment accepted, 발송됨, 배송 완료 같은 결제 완료 상태로 변경하십시오. 환불을 뺀 주문 총액이 캡처되며, 승인된 금액을 초과할 수 없습니다. 버튼으로 캡처하면 주문은 Payment accepted가 되고, 결제는 캡처의 Trans ID와 함께 기록됩니다. Moneris가 캡처를 거부하면 상태는 바뀌지 않고, 결제 완료 이메일도 발송되지 않으며, 메모에 이유와 함께 Status not changed: the Moneris pre-authorization could not be captured가 표시됩니다. Moneris 사전 승인은 며칠 후 만료되므로 제때 캡처하십시오.
금액을 해제하려면 Void pre-authorization (cancel order)를 클릭하거나 주문을 Canceled로 설정하십시오. 주문을 Refunded로 설정해도 열린 사전 승인은 해제됩니다. 해제에 실패하면 메모에서 Merchant Resource Center에서 해제하라고 안내합니다.
환불
Moneris payment 블록에 금액(아직 환불되지 않은 금액이 자동으로 입력됨)을 입력하고, 필요하면 사유를 입력한 다음 Refund via Moneris를 클릭하십시오. Refund this amount through Moneris? This cannot be undone. 확인 질문에 응답하십시오. 전액 및 부분 환불이 지원됩니다. 환불은 Moneris가 실제로 청구한 금액을 한도로 합니다. 따라서 금액 불일치 후에는 주문 총액이 아니라 고객이 지불한 금액까지 환불할 수 있습니다. 사전 승인은 캡처한 후에만 환불할 수 있으며, 그 전에 금액을 해제하려면 주문을 취소하십시오. 환불은 결제가 이루어진 환경과 계정으로 전송되므로 해당 모드의 자격 증명이 계속 입력되어 있어야 합니다. Moneris가 환불을 받아들이지 않으면 블록에 이유와 함께 Refund failed가 표시되며, 환불은 기록되지 않습니다. 성공한 환불은 Moneris Trans ID와 함께 환불 내역과 메모에 추가됩니다. 전액 환불은 주문을 Refunded로 설정하고, 부분 환불은 상태를 바꾸지 않습니다.
모듈은 신용 명세서(credit slip)를 만들지 않습니다. 주문 페이지의 PrestaShop 표준 환불 버튼은 Moneris를 통해 돈을 돌려보내지 않습니다.
라이선스 키
이 모듈은 vibefox.net에서 발급받은 VibeFox 라이선스 키로 작동합니다. License — VibeFox Moneris Gateway 라이선스 블록은 Modules > Module Manager > VibeFox Moneris Gateway > Configure 페이지에서 설정 위에 있는 첫 번째 블록입니다. License key에 키를 입력하고 Activate를 클릭하십시오. 그러면 블록에 키가 마스킹되어 표시되고, 상태(예: 라이선스가 유효한 날짜와 도메인)와 다음 버튼이 나타납니다: 상태를 다시 확인하는 Check now, 다른 키를 입력하는 Change key, 이 쇼핑몰에서 키를 제거하는 Remove key. 그 아래에는 Product: presta-payment-moneris 줄과 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 계정에서 슬롯을 해제하십시오.
활성 키가 없으면 체크아웃에서 고객에게 Moneris가 표시되지 않습니다. 그래도 결제가 시작되면 고객은 This payment method is not available. Please choose another one.를 보게 됩니다. PrestaShop 스토어프론트는 백오피스에 로그인한 사용자를 알지 못하므로, 결제 수단은 본인에게도 숨겨집니다. 키를 구매하기 전에 모듈을 설정할 수는 있지만, 체크아웃에서 테스트할 수는 없습니다. Modules > Module Manager의 Alerts 탭에 알림이 나타납니다. 기존 주문에는 영향이 없습니다. 이전 결제의 캡처, 무효화, 환불은 계속 작동합니다.
라이선스가 만료되면 모듈은 계속 작동하지만, 업데이트와 지원에는 갱신이 필요합니다. 백오피스에서 작업하는 동안 상태는 자동으로 다시 확인됩니다. 키를 입력한 후 처음 14일 동안은 하루에 한 번, 그 후에는 일주일에 한 번입니다. cron 작업은 필요하지 않습니다. 모듈을 제거하거나 재설정하면 항상 라이선스 키와 라이선스 상태가 삭제됩니다.
문제 해결
Moneris가 체크아웃에 나타나지 않음: 라이선스가 활성 상태인지, Enable / Disable이 켜져 있는지, 현재 모드에 Store ID와 API Token이 있는지 확인하십시오. 운영 모드에서는 운영 입력란에 Moneris 테스트 자격 증명이 아니라 운영용 자격 증명이 있어야 합니다. 장바구니 통화가 계정 통화(캐나다는 CAD, 미국 계정은 USD)인지 확인하십시오. Payment > Preferences에서 모듈이 해당 통화, 고객의 국가, 고객 그룹에 대해 허용되어 있는지 확인하십시오.
결제는 완료되었지만 주문이 Moneris payment on hold 상태임: 모듈에는 webhook이 없습니다. 결과는 Moneris 응답에서만 옵니다. 블록의 Moneris notes를 읽으십시오. Moneris가 결과를 확인하지 않았다면 Moneris가 응답하지 않았고 Status Check도 실패한 것입니다. Merchant Resource Center에서 Moneris 주문 ID를 찾으십시오. 거래가 있으면 주문을 발송하고(필요하면 거기서 환불), 없으면 주문을 취소하거나 고객에게 다시 결제를 요청하십시오. 금액이 달랐다면 주문을 확인하고 처리하거나 결제를 환불하십시오.
고객에게 Payment gateway is misconfigured. Please contact the store administrator.가 표시됨: 현재 모드의 자격 증명이 없거나, 운영 모드가 켜져 있는데 운영 입력란에 Moneris 테스트 자격 증명이 들어 있습니다. 운영용 Store ID와 API Token을 입력하십시오.
고객에게 This payment method does not support the order currency.가 표시됨: 장바구니 통화가 Moneris 계정 통화가 아닙니다.
고객이 결제 중 오류를 봄: 모듈 페이지의 Log 필드를 확인하십시오. 오류는 항상 기록됩니다. 전체 요청과 응답을 보려면 Debug log를 켜십시오.
캡처가 실패함: 주문에 캡처를 기다리는 사전 승인이 없거나, 주문 총액이 0이거나, 금액이 승인된 금액보다 큽니다. Moneris 사전 승인도 며칠 후 만료됩니다.
환불, 캡처 또는 무효화가 모드나 계정에 관한 메시지와 함께 실패함: 결제가 테스트 모드 또는 운영 모드에서 이루어졌는데 해당 모드의 자격 증명이 설정되지 않았거나, 다른 국가의 Moneris 계정으로 결제했습니다. 자격 증명을 입력하거나 Merchant Resource Center에서 결제를 처리하십시오.
카드 테스트 공격: 직접 카드 양식은 카드 테스트의 표적이 되기 쉽습니다. Moneris 계정의 eFraud 또는 velocity 규칙과 쇼핑몰용 CAPTCHA 또는 요청 제한 모듈을 사용하십시오.
제거
Modules > Module Manager로 이동하여 VibeFox Moneris Gateway 옆의 메뉴를 열고 Uninstall을 선택하십시오. 이 모듈의 라이선스 키와 라이선스 상태는 항상 제거됩니다. Delete data on uninstall이 켜져 있으면 게이트웨이 설정과 로그가 삭제됩니다. 꺼져 있으면 나중에 다시 설치할 수 있도록 모든 설정이 유지됩니다. Moneris 거래와 환불, 그리고 주문 상태 Moneris payment authorized와 Moneris payment on hold는 항상 유지되므로, 이전에 결제된 주문은 재설치 후에도 캡처하거나 환불할 수 있습니다. 기존 주문은 결제 메모와 거래 ID를 유지합니다.
Moneris는 해당 소유자의 상표입니다. 이 모듈은 Moneris와 제휴하거나 Moneris의 승인을 받지 않았습니다.
