VibeFox Netopia for PrestaShop — 도움말
요구 사항
PrestaShop: 8.0 ~ 9.x.
PHP: 8.0 이상이며 OpenSSL, DOM, SimpleXML 확장 모듈이 있어야 합니다. 이 확장 모듈이 없으면 모듈 설치가 거부됩니다.
통화: 장바구니 통화는 RON, EUR, USD 또는 GBP여야 합니다. EUR, USD, GBP는 Netopia 계정에서 활성화되어 있어야 합니다. 다른 통화의 경우 체크아웃에서 해당 결제 수단이 숨겨집니다.
Netopia 계정: 판매 지점이 있는 Netopia Payments 판매자 계정이 필요합니다. 기술 설정에서 계정 서명을 확인하고, 사용하는 각 환경(샌드박스 및 실서비스)에 대해 공개 인증서(.cer)와 개인 키(.key)를 가져와야 합니다. Netopia 측에서 따로 설정할 것은 없습니다. IPN 주소는 결제 요청마다 함께 전송됩니다.
공개 쇼핑몰: IPN(확인) URL은 인터넷에서 접근 가능해야 하며, 로그인이나 기본 인증 뒤에 있으면 안 됩니다. 주문은 Netopia IPN을 통해서만 생성됩니다.
VibeFox 라이선스 키: vibefox.net에서 구매합니다. 키 하나는 도메인 하나에서 작동합니다.
설치
1. 백오피스에서 Modules > Module Manager로 이동하여 Upload a module을 클릭합니다. 모듈의 ZIP 파일을 선택합니다.
2. 업로드가 끝나면 Configure를 클릭하거나, 나중에 모듈 목록에서 VibeFox Netopia Gateway를 찾아 Configure를 클릭합니다.
3. Configure 페이지 상단의 라이선스 블록에 있는 License key 입력란에 VibeFox 라이선스 키를 입력하고 Activate를 클릭하십시오(라이선스 키 참고).
4. Netopia 관리자 페이지에서 판매 지점을 열고, 계정 서명을 복사한 다음 샌드박스 및 실서비스 환경의 인증서와 개인 키를 다운로드합니다. 서명과 파일의 전체 내용을 설정에 붙여넣습니다(설정 항목 참조).
5. Enable/Disable을 켜고 Save를 클릭합니다. 샌드박스 모드에서 결제를 테스트한 다음, 실제 결제를 받으려면 Test mode를 끕니다.
설치할 때 모듈은 두 개의 주문 상태, Awaiting Netopia payment와 Netopia payment on hold를 만듭니다. PrestaShop은 모든 통화, 국가, 고객 그룹에 대해 새 결제 모듈을 제공합니다. 이는 Payment > Preferences에서 제한할 수 있습니다.
설정
모든 설정은 모듈 페이지에 있습니다: Modules > Module Manager > VibeFox Netopia Gateway > Configure. 각 섹션에는 페이지 전체를 저장하는 자체 Save 버튼이 있습니다. 항목 위쪽에서 활성 환경의 계정 서명, 인증서 또는 개인 키가 없으면 페이지가 경고하며(이 경우 체크아웃에서 결제 수단이 숨겨짐), 테스트 모드가 켜져 있는 동안에는 Test mode is on: payments go to the Netopia sandbox and no real money is charged.를 표시합니다. 저장할 때 잘못된 인증서나 개인 키는 오류와 함께 거부되고 이전 값이 유지됩니다. 나머지 항목은 저장됩니다.
IPN (confirm) URL
페이지 상단에 읽기 전용으로 표시됩니다. 친근한 URL(friendly URL)을 사용하면 https://your-shop/module/wcp_netopia_gateway/notify와 같은 형태이며, /en/ 같은 언어 코드가 포함될 수도 있습니다. 이 URL은 모든 결제 요청에 확인 URL로 함께 전송되므로 Netopia 관리자 페이지에 입력할 필요가 없습니다. Netopia는 IPN을 이 URL로 보냅니다. 모듈은 결제가 시작된 환경의 개인 키로 IPN을 복호화하고, 계정 서명과 결제 요청을 확인합니다. Netopia는 다음 작업을 알려줍니다.
Netopia 오류 코드(예: 카드 거절)가 포함된 알림은 대기 중인 주문을 Payment error 상태로 설정합니다. 주문이 없으면 고객은 다시 결제할 수 있습니다. 복호화할 수 없거나, 다른 계정 서명을 포함하거나, 해당 장바구니의 결제 요청에 응답하지 않는 알림은 거부되며 아무것도 변경하지 않습니다.
체크아웃
Enable/Disable: Enable Netopia Payments는 결제 수단을 켜거나 끕니다. 기본값: off.
Title: 체크아웃에 표시되는 결제 수단 제목입니다. 주문에 저장되는 결제 수단 이름이기도 합니다. 기본값: Card Payment (Netopia).
Description: 체크아웃에 표시되는 결제 수단 설명입니다. 기본값: Pay securely with your credit or debit card via Netopia.
Netopia 계정
Netopia 관리자 페이지에서 Seller accounts > your point of sale > Technical settings로 이동하여 계정 서명을 복사하고, 각 환경의 공개 인증서(.cer)와 개인 키(.key)를 다운로드합니다. 파일을 텍스트 편집기로 열고, BEGIN/END 줄을 포함한 전체 내용을 붙여넣습니다.
Account signature: 판매자 계정 서명(형식: XXXX-XXXX-XXXX-XXXX-XXXX)입니다. 샌드박스와 실서비스에서 동일합니다.
Test mode: Netopia 샌드박스(sandboxsecure.mobilpay.ro)와 샌드박스 키를 사용합니다. 기본값: on. 실서비스 키로 실제 결제를 받으려면 끕니다.
Sandbox public certificate (.cer): 샌드박스 공개 인증서 파일의 내용입니다. 결제 요청을 암호화하는 데 사용됩니다.
Sandbox private key (.key): 샌드박스 개인 키 파일의 내용입니다. IPN을 복호화하는 데 사용됩니다.
Live public certificate (.cer): 실서비스 공개 인증서 파일의 내용입니다.
Live private key (.key): 실서비스 개인 키 파일의 내용입니다.
저장된 개인 키는 다시 표시되지 않습니다. 해당 필드는 비어 있으며, 도움말 텍스트는 A private key is saved.로 시작합니다. 저장된 키를 유지하려면 비워 두고, 교체하려면 새 키를 붙여넣습니다. 인증서 필드를 비우면 인증서가 삭제됩니다.
Clear saved private keys: 키를 선택하고 Save를 클릭하면 삭제됩니다. 필드가 비어 있으면 저장된 키가 유지됩니다.
주문
Order status after payment: 결제 완료된 주문의 상태입니다.
고급
Debug log: 요청과 IPN 처리 내용을 모듈 폴더의 logs/netopia_p_debug.log.php에 기록합니다. 이 파일은 웹에서 열 수 없습니다. 카드 데이터, 키, 고객 정보는 기록되지 않습니다. 거부된 IPN 같은 오류는 이 옵션이 꺼져 있어도 항상 기록됩니다. 기본값: off.
Log: 로그의 크기와 최근 항목을 보여줍니다. Clear log를 클릭하면 로그가 비워집니다.
Delete data on uninstall: 모듈을 제거할 때 게이트웨이 설정, 모듈의 Netopia 결제 기록, 로그를 삭제합니다. 주문은 유지됩니다. 기본값: off.
체크아웃
결제 단계에서 고객은 결제 수단(기본값은 Card Payment (Netopia))을 선택하고 확인합니다. 다음 페이지에는 Redirecting you to Netopia for secure payment…가 표시되며, 고객은 자동으로 Netopia 결제 페이지로 이동합니다. 대체 수단으로 Proceed to payment 및 Cancel(체크아웃으로 돌아가기) 버튼이 제공됩니다. 결제 요청은 귀하의 Netopia 인증서로 암호화되며, 장바구니 통화로 된 장바구니 합계, Cart #와 장바구니 번호, 청구 및 배송 연락처 정보를 포함합니다. 샌드박스 모드에서는 요청이 Netopia 샌드박스로 전송됩니다. 이 시점에는 아직 주문이 존재하지 않습니다.
고객은 Netopia 페이지에서 카드로 결제한 다음 쇼핑몰로 돌아옵니다. 돌아오는 행위 자체로는 주문이 생성되거나 결제되지 않습니다. 주문은 Netopia가 IPN으로 확인한 후에만 결제 완료로 표시됩니다. 주문이 있으면 고객은 표준 주문 확인 페이지를 봅니다. 대기 중인 주문의 경우 Netopia has not confirmed your payment yet. You will receive an e-mail as soon as the payment is confirmed.를 표시합니다. 보류된 주문의 경우 Your payment is awaiting confirmation. We will e-mail you as soon as the order is confirmed.를 표시합니다. 취소된 주문의 경우 The payment was cancelled at Netopia, so this order was cancelled. You can place a new order at any time.를 표시합니다. 결제 오류가 있는 주문의 경우 The payment was declined by Netopia.를 표시합니다.
고객이 돌아왔을 때 IPN이 아직 도착하지 않았다면, Payment confirmation 페이지에 같은 "아직 확인되지 않음" 문구가 표시되며 Check again 및 Back to checkout 버튼이 나타납니다. IPN이 도착하는 즉시 주문이 생성됩니다.
주문이 생성되기 전에 Netopia가 취소 또는 거절을 알린 경우, 고객은 The payment was cancelled at Netopia. You can try again or choose another payment method. 또는 The payment was declined by Netopia. You can try again or choose another payment method.가 표시된 체크아웃으로 돌아옵니다. 장바구니는 유지됩니다. 새로운 시도마다 새 결제 요청이 만들어집니다. 해당 장바구니의 이전 요청도 계속 유효하므로, 이전 시도의 지연된 IPN도 기록됩니다.
모듈이 올바르게 설정되지 않았다면, 고객은 Netopia gateway is not configured properly. Please contact the store administrator.가 표시된 체크아웃에 머무릅니다. 그 밖의 메시지는 Netopia cannot process payments in(뒤에 통화가 붙음), This order has nothing to pay., Payment encryption failed. Please try again or contact support.입니다. 기술적 원인은 로그에 기록됩니다.
IPN은 쇼핑몰이 유지 보수 모드인 동안에도 작동하며, 쇼핑몰의 국가 제한에 의해 차단되지 않습니다.
이 모듈은 Netopia v1 카드 프로토콜을 통한 카드 결제만 받습니다. PrestaShop에서의 환불 또는 매입, 저장된 카드나 원클릭 결제, 구독, 할부 및 기타 결제 수단은 지원하지 않으며 Netopia API v2도 지원하지 않습니다.
주문 및 환불
주문 상태
아직 주문 없음: 고객이 Netopia로 이동했지만 아직 결제하지 않았거나, Netopia가 아직 IPN을 보내지 않은 상태입니다. 장바구니만 존재합니다.
Payment accepted or Delivered: Netopia가 결제를 확인했습니다. 상태는 Order status after payment를 따릅니다. 결제는 Netopia 거래를 거래 ID로 하여 기록되며, 비공개 메모에는 금액, 마스킹된 카드 번호, Netopia 거래가 표시됩니다. 샌드박스 결제에는 [sandbox]가 표시됩니다.
Awaiting Netopia payment: 결제는 Netopia 관리자 페이지에서 매입을 기다리는 사전 승인이거나, Netopia에서 검토 중입니다. 아직 결제가 기록되지 않았습니다. Netopia가 확인하면 주문은 결제 완료 상태로 넘어갑니다.
Netopia payment on hold: 청구 금액이나 통화가 장바구니 또는 주문과 다르거나, 결제의 일부만 매입되었거나, Netopia가 취소된 주문 또는 다른 결제 수단으로 된 주문의 결제를 확인했거나, 쇼핑몰이 실서비스 모드인 동안 샌드박스(테스트) 결제가 확인되었습니다(실제 금액이 입금되지 않았으므로 결제가 기록되지 않습니다). 메모에 이유가 설명되어 있습니다. Netopia 관리자 페이지에서 거래를 확인한 다음, 주문을 처리하거나 그곳에서 결제를 환불하십시오.
Payment error: 대기 중인 주문에 대해 Netopia가 카드 거절 등의 오류를 알렸습니다.
Canceled: Netopia가 대기 중인 주문의 결제를 취소했습니다.
Refunded: 결제가 Netopia 관리자 페이지에서 전액 환불되었습니다.
지연된 알림이 결제 완료되었거나 종료된 주문의 상태를 낮추는 일은 결코 없습니다. Netopia가 이미 결제된 주문에 대해 다른 결제를 확인하면, 메모를 통해 중복 결제를 Netopia 관리자 페이지에서 환불하라는 안내가 표시됩니다.
Netopia 블록
주문 페이지에는 Netopia Payments 블록이 표시되며, Netopia 거래, 환경(샌드박스 또는 실서비스), 결제 요청, 마지막 IPN 작업, 마스킹된 카드, 결제·환불·남은 금액, 환불 내역이 나타납니다. 이 블록은 읽기 전용입니다.
환불
환불은 PrestaShop에서 하지 않습니다. Netopia v1 카드 프로토콜에는 환불 호출이 없기 때문입니다. Netopia 관리자 페이지에서 거래를 환불하십시오. 그러면 Netopia가 크레딧 IPN을 보내고, 모듈은 Netopia refund processed: 메모와 금액을 붙여 환불을 주문에 자동으로 기록합니다. 부분 환불은 주문 상태를 유지하며, 환불할 금액이 남지 않으면 주문은 Refunded 상태로 설정됩니다. EUR, USD, GBP 주문의 경우 Netopia가 RON으로 보고한 환불 금액은 주문 통화로 다시 환산됩니다. 환불은 두 번 기록되지 않으며, 남은 금액을 넘어서 기록되지도 않습니다. Netopia가 환불에 대해 오류를 보고하면 메모만 추가됩니다.
모듈은 크레딧 노트를 만들지 않으며 제품을 재고로 되돌리지도 않습니다. 주문 페이지의 표준 PrestaShop 환불 버튼은 Netopia를 통해 돈을 돌려주지 않습니다.
라이선스 키
이 모듈은 vibefox.net에서 발급받은 VibeFox 라이선스 키로 작동합니다. 라이선스 블록 License — VibeFox Netopia Gateway는 Modules > Module Manager > VibeFox Netopia Gateway > Configure에서 설정 위에 있는 첫 번째 블록입니다. 키를 License key 입력란에 붙여 넣고 Activate를 클릭하십시오. 그러면 블록에 키가 마스킹되어 표시되고, 상태(예: 라이선스 유효 기간 종료일과 도메인), 상태를 다시 확인하는 Check now, 다른 키를 입력하는 Change key, 이 쇼핑몰에서 키를 제거하는 Remove key 버튼이 나타납니다. 그 아래에는 Product: presta-payment-netopia 줄과 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 계정에서 슬롯을 해제하십시오.
활성 키가 없으면 체크아웃에서 고객에게 Netopia가 표시되지 않습니다. 그래도 결제가 시작되면 고객은 This payment method is not available. Please choose another one.를 보게 됩니다. PrestaShop 스토어프런트는 관리자 페이지에 로그인되어 있는지 알지 못하므로, 귀하에게도 이 결제 수단이 숨겨집니다. 키를 구매하기 전에 모듈을 설정할 수는 있지만 체크아웃에서 테스트할 수는 없습니다. Modules > Module Manager의 Alerts 탭에 알림이 표시됩니다. 기존 주문은 영향을 받지 않습니다. 이미 시작된 결제는 계속 확인되며, Netopia 관리자 페이지에서 이루어진 환불도 계속 기록됩니다.
라이선스가 만료되어도 모듈은 계속 작동하지만, 업데이트와 지원을 받으려면 갱신이 필요합니다. 관리자 페이지에서 작업하는 동안 상태가 자동으로 다시 확인됩니다. 키를 입력한 후 처음 14일 동안은 하루에 한 번, 그 후에는 일주일에 한 번입니다. cron 작업은 필요하지 않습니다. 모듈을 제거하거나 초기화하면 라이선스 키와 라이선스 상태는 항상 삭제됩니다.
문제 해결
체크아웃에 Netopia가 나타나지 않음: 라이선스가 활성 상태인지, Enable/Disable이 켜져 있는지, 활성 환경이 완전한지(테스트 모드에서는 샌드박스의 Account signature와 인증서 및 개인 키, 실서비스 모드에서는 실서비스 환경의 같은 항목), 장바구니 통화가 RON, EUR, USD, GBP 중 하나인지 확인하십시오. 설정 페이지는 누락된 항목이 있으면 경고를 표시합니다. Payment > Preferences에서 장바구니 통화, 고객의 국가, 고객 그룹에 대해 모듈이 허용되어 있는지도 확인하십시오.
결제는 되었지만 주문이 생성되지 않음: IPN이 쇼핑몰에 도달하지 못했거나 거부되었습니다. 설정의 IPN(확인) URL이 인터넷에서 접근 가능한지(기본 인증이나 방화벽이 없는지) 확인하십시오. 모듈 페이지의 Log 필드를 보십시오. 거부된 IPN은 항상 기록됩니다. 모든 IPN을 보려면 Debug log를 켜십시오. 고객이 돌아온 것만으로는 주문이 생성되지 않습니다.
로그에 failed decrypting data가 표시됨: 개인 키가 Netopia가 사용한 인증서와 일치하지 않습니다. IPN은 각 환경에 저장된 개인 키로 복호화되므로, 다른 환경의 결제가 아직 열려 있는 동안에는 그 키를 저장된 상태로 두십시오. Netopia가 IPN을 다시 시도합니다.
로그에 signature mismatch가 표시됨: Account signature가 IPN을 보낸 판매 지점의 것과 다릅니다. Netopia 관리자 페이지에서 다시 복사하십시오.
로그에 unknown payment request가 표시됨: IPN이 귀하의 쇼핑몰이 해당 장바구니에 대해 그 환경(샌드박스 또는 실서비스)에서 보낸 결제 요청에 응답하지 않습니다. 아무것도 변경되지 않습니다.
로그에 gateway not configured가 표시됨: 개인 키나 계정 서명이 저장되어 있지 않습니다. Netopia가 IPN을 다시 시도하며, 설정이 완료되면 결제가 기록됩니다.
로그에 busy, retry later or processing failed가 표시됨: 같은 순간에 다른 요청이 해당 장바구니를 처리하고 있었거나, 주문을 생성할 수 없었습니다(예: 모듈이 비활성화됨). Netopia가 IPN을 자동으로 다시 시도합니다.
인증서나 개인 키 저장 시 오류: 붙여넣은 텍스트가 올바른 인증서나 키가 아닙니다. BEGIN/END 줄을 포함한 파일의 전체 내용을 붙여넣으십시오. 이전 값은 유지되었습니다.
결제 후 주문이 Netopia payment on hold 상태임: 주문의 비공개 메모를 읽으십시오(주문 상태 참조). 금액이나 통화가 달랐거나, 일부만 매입되었거나, 주문이 취소되었거나, 쇼핑몰이 실서비스 모드인 동안 샌드박스 결제가 확인되었을 수 있습니다. Netopia 관리자 페이지에서 거래를 확인하십시오.
Netopia에서 한 환불이 주문에 나타나지 않음: 크레딧 IPN이 쇼핑몰에 도달하지 못했거나 거부되었습니다. 로그를 확인하십시오.
제거
Modules > Module Manager로 이동하여 VibeFox Netopia Gateway 옆의 메뉴를 열고 Uninstall을 선택합니다. 이 모듈의 라이선스 키와 라이선스 상태는 항상 삭제됩니다. Delete data on uninstall이 켜져 있으면 게이트웨이 설정(저장된 키 포함), 주문의 Netopia 블록에 표시되는 모듈의 Netopia 결제 기록, 로그가 삭제됩니다. 꺼져 있으면 나중에 다시 설치할 수 있도록 모든 데이터가 보관됩니다. 주문과 Awaiting Netopia payment 및 Netopia payment on hold 주문 상태는 절대 삭제되지 않습니다. 기존 주문은 결제 메모와 거래 ID를 유지합니다.
Netopia Payments와 mobilPay는 각 소유자의 상표입니다. 이 모듈은 Netopia Payments와 제휴하거나 승인을 받은 것이 아닙니다.
