VibeFox TrustPay for PrestaShop — 도움말
요구 사항
PrestaShop: 8.0 ~ 9.x.
PHP: 8.0 이상. 이전 PHP 버전에서는 모듈 설치가 거부됩니다.
finby(TrustPay) 계정: finby Merchant Portal에 Project ID와 Secret key가 있는 프로젝트가 필요합니다. 테스트 결제에는 별도의 테스트(playground) 프로젝트가 필요하며, 이 프로젝트도 자체 Project ID와 Secret key가 있어야 합니다. 그 밖의 키는 필요하지 않습니다. Secret key는 API 접근 권한을 얻는 데도, 결제 알림의 서명을 확인하는 데도 사용됩니다.
접근 가능한 알림 URL: finby가 인터넷을 통해 쇼핑몰에 접근할 수 있어야 합니다. 쇼핑몰 앞의 방화벽, 유지 보수 로그인 또는 HTTP 인증은 결제 알림을 차단합니다.
VibeFox 라이선스 키: vibefox.net에서 구입합니다. 키 하나는 도메인 하나에서 작동합니다.
설치
1. 백오피스에서 Modules > Module Manager로 이동하고 Upload a module을 클릭합니다. 모듈의 ZIP 파일을 선택합니다.
2. 업로드가 끝나면 Configure를 클릭하거나, 나중에 모듈 목록에서 VibeFox TrustPay Gateway를 찾아 Configure를 클릭합니다.
3. Configure 페이지 상단의 라이선스 블록에 있는 License key 필드에 VibeFox 라이선스 키를 입력하고 Activate를 클릭하십시오(라이선스 키 항목 참조).
4. 테스트 프로젝트의 Project ID와 Secret key를 입력하고, 실제 결제를 위해서는 실서비스 프로젝트의 값도 입력합니다(설정 항목 참조).
5. Enable / Disable을 켜고 Save를 클릭합니다. Test mode를 켠 상태에서 테스트 결제를 진행한 다음, Test mode를 끄면 실제 결제를 받을 수 있습니다.
설치 시 모듈은 두 가지 주문 상태, Awaiting TrustPay payment와 TrustPay payment on hold를 만듭니다. PrestaShop은 새 결제 모듈을 설치 당시 활성화된 국가와 연결합니다. 이후에 추가하는 국가는 Payment > Preferences에서 모듈을 체크하십시오. 그곳에서 통화와 고객 그룹별로 모듈을 제한할 수도 있습니다.
설정
모든 설정은 모듈 페이지에 있습니다: Modules > Module Manager > VibeFox TrustPay Gateway > Configure. 각 섹션에는 별도의 Save 버튼이 있으며, 이 버튼은 페이지 전체를 저장합니다. 필드 위에서 페이지는 모듈이 활성화되어 있지만 현재 모드의 Project ID 또는 Secret key가 비어 있거나, 쇼핑몰의 기본 통화가 지원되지 않는 경우 경고를 표시합니다. 두 경우 모두 결제 방법은 체크아웃에서 숨겨집니다.
TrustPay / finby
Enable / Disable: Enable TrustPay / finby card payments는 결제 방법을 켜거나 끕니다. 기본값: off.
Title: 고객이 체크아웃에서 보는 결제 방법 이름입니다. 주문에 저장되는 결제 방법 이름이기도 합니다. 기본값: Card payment (TrustPay). 필수.
Description: 체크아웃에서 결제 방법 아래에 표시되는 문구입니다. 기본값: Pay securely by card on the TrustPay / finby payment page.
API 자격 증명
finby(TrustPay) Merchant Portal에서 프로젝트의 Project ID와 Secret key를 복사하십시오. 이 섹션에는 Merchant Portal로 가는 링크가 있습니다. 테스트 결제는 자체 Project ID와 Secret key를 가진 별도의 테스트(playground) 프로젝트를 사용합니다. 그곳에서는 실제 금액이 청구되지 않습니다.
Test mode: 테스트 프로젝트를 사용합니다(실제 결제 없음). 새 결제와 환불은 테스트 자격 증명을 사용합니다. 주문의 환불은 항상 그 주문의 결제에 사용된 프로젝트로 처리됩니다. 기본값: on. 켜져 있는 동안 고객에게는 결제 방법 아래에 Test mode: no real payment will be taken.이 표시됩니다.
Live Project ID: 실서비스 프로젝트의 숫자형 Project ID입니다.
Live Secret key: 실서비스 프로젝트의 Secret key입니다. API 접근 토큰을 얻고 결제 알림을 검증하는 데 사용됩니다.
Test Project ID: 테스트(playground) 프로젝트의 숫자형 Project ID입니다.
Test Secret key: 테스트 프로젝트의 Secret key입니다.
Project ID에는 숫자만 입력해야 합니다. 다른 값을 저장하면 페이지에 must contain digits only — the previous value was kept.가 표시되며, 나머지 필드는 저장됩니다. Secret key는 입력한 그대로 저장되며, 앞뒤의 공백만 제거됩니다. 저장된 Secret key는 다시 표시되지 않습니다. 필드는 비어 있는 상태로 Saved — leave empty to keep it.를 표시합니다. 값을 바꾸려는 경우에만 새 값을 입력하십시오. 설정을 저장하면 캐시된 API 접근 토큰도 삭제되므로, 새 자격 증명이 즉시 사용됩니다.
Clear saved secrets: Secret key를 체크하고 Save를 클릭하면 삭제됩니다. 빈 필드는 저장된 값을 유지합니다.
결제 알림
주문은 finby가 서명된 알림으로 확인한 후에만 결제 완료로 표시됩니다. 모듈은 모든 결제와 함께 알림 URL을 자동으로 보내므로 별도로 설정할 필요가 없습니다. 이 섹션은 Notification URL 아래에 URL을 표시합니다. 친숙한 URL을 사용하는 경우 https://your-shop/module/wcp_trustpay_gateway/callback와 같은 형태이며, 언어 코드가 포함될 수도 있습니다. Merchant Portal에서 프로젝트의 알림 URL로 이 값을 입력할 수도 있습니다. 유효한 서명이 없는 알림은 거부됩니다.
모듈은 스스로 finby에 결제 상태를 묻지 않습니다. 알림이 쇼핑몰에 도달하지 못하면 finby가 알림을 전달할 때까지 주문이 생성되지 않습니다. finby는 알림을 다시 시도합니다.
고급
Order status after payment: 결제 성공 후 설정되는 주문 상태입니다. 상태는 한 단계로 설정되므로 고객은 이메일을 한 번만 받습니다.
Debug logging: API 요청과 알림을 모듈 폴더의 logs/trustpay_p_debug.log.php에 기록합니다. 이 파일은 웹에서 열 수 없습니다. 이 옵션이 꺼져 있어도 오류는 항상 기록됩니다. 로그에는 키, 토큰, 카드 데이터, 고객 정보가 포함되지 않습니다. 기본값: off.
Log: 로그의 크기와 최근 항목을 보여줍니다. Clear log를 클릭하면 로그가 비워집니다.
Delete data on uninstall: 켜져 있으면 모듈을 제거할 때 모듈 설정과 로그가 삭제됩니다. 주문 데이터는 유지됩니다: 주문, TrustPay 결제 기록과 환불, 주문 상태. 기본값: off.
체크아웃
결제 단계에서 고객은 결제 방법(기본값은 Card payment (TrustPay))을 선택하고 주문을 확정합니다. 결제 방법은 지원되는 통화에서만 제공됩니다: EUR, CZK, HUF, GBP, PLN, NOK, SEK, DKK, BGN, RON, CHF, USD. HUF 금액은 소수점 없이 전송됩니다.
카드 결제에는 주소가 필요합니다. 도로명, 도시, 우편번호 또는 국가가 없으면 고객에게 Please enter your billing address (street, city, postcode and country) — it is required for card payments.가 표시됩니다.
모듈은 finby에 장바구니 통화로 장바구니 금액에 대한 카드 결제 요청을 생성합니다. 고객의 이름, 주소, 이메일은 3-D Secure를 위해 전송되며, 장바구니 번호는 참조값으로 전송됩니다. 이 시점에는 아직 주문이 존재하지 않습니다. 고객은 finby 결제 페이지로 이동하여 그곳에서 카드로 결제합니다. 페이지는 finby가 지원하는 경우 장바구니 언어로 열리며, 지원하지 않으면 영어로 열립니다.
결제 후 고객은 쇼핑몰로 돌아옵니다. 주문은 finby가 서명된 알림으로 확인한 후에만 결제 완료로 표시됩니다. 돌아오는 행위 자체는 결제 상태를 바꾸지 않습니다. 알림이 이미 도착했다면 고객은 표준 주문 확인 페이지를 봅니다. 아직 도착하지 않았다면 Payment confirmation 페이지가 표시되며, finby가 카드 결제를 확인 중이고 확인되는 즉시 주문이 생성된다고 알려 줍니다. 이 페이지에는 Check again 버튼과 Back to checkout 버튼이 있습니다. 주문이 Awaiting TrustPay payment 또는 TrustPay payment on hold 상태인 동안, 확인 페이지에는 Your card payment is being confirmed by TrustPay / finby. You will receive an e-mail as soon as it is confirmed — there is no need to pay again.가 표시됩니다. finby가 결제를 거부했거나 미결제 주문이 취소되었다면 Your card payment was not completed. Please contact us about this order.가 표시됩니다.
고객이 결제 페이지에서 취소하면 The card payment was cancelled. You can try again or choose another payment method. 메시지와 함께 체크아웃으로 돌아갑니다. 결제 페이지가 오류를 반환하거나 finby가 이미 결제를 거부한 경우 메시지는 The card payment was not completed. Please try again or choose another payment method.입니다. 장바구니는 유지되며 고객은 다시 결제할 수 있습니다.
finby가 결제를 시작할 수 없는 경우 고객은 We could not start the card payment. Please try again in a moment or choose another payment method. 메시지와 함께 체크아웃에 머뭅니다. 기술적인 이유는 로그에 기록됩니다.
알림은 쇼핑몰이 유지 보수 모드인 동안에도 작동하며, 쇼핑몰의 국가 제한에 의해 차단되지 않습니다.
모듈은 카드 결제만 처리하며, finby 페이지에서 한 단계로 완료되는 구매 방식입니다. 계좌이체나 finby의 다른 결제 수단, 사이트의 Apple Pay 또는 Google Pay 버튼, 카드 저장, 정기 구독이나 반복 결제, 승인과 매입의 분리, 상태 조회 기능은 지원하지 않습니다.
주문 및 환불
주문 상태
No order yet: 고객은 finby로 이동했지만 아직 결제하지 않았거나, 알림이 아직 도착하지 않았습니다. 장바구니만 존재합니다.
Payment accepted or Delivered: finby가 결제를 확인했고, 금액과 통화가 결제 요청 및 장바구니 합계와 일치합니다. 상태는 Order status after payment를 따릅니다. 결제는 finby 결제 요청 ID를 거래 ID로 하여 기록되며, 메모에는 금액, 결제 요청, 프로젝트(테스트 또는 실서비스)가 표시됩니다.
Awaiting TrustPay payment: finby가 최근 결제가 보류 중이라고 보고했습니다. finby가 결제를 확인하면 주문은 결제 완료 상태로 바뀝니다.
TrustPay payment on hold: 두 가지 경우에 설정됩니다. 결제가 승인만 되었고 매입되지 않은 경우입니다. finby Merchant Portal에서 매입하거나 취소한 다음 주문을 업데이트하십시오. 또는 결제된 금액이나 통화가 결제 요청 또는 장바구니 합계와 다른 경우입니다. 예를 들어 고객이 결제 페이지로 이동한 후 장바구니가 변경된 경우입니다. 배송 전에 결제를 확인하십시오. 메모에 자세한 내용이 설명되어 있습니다.
Payment error: 대기 중이던 주문의 최근 결제를 finby가 거부했습니다. finby가 사유를 보내면 메모에 사유가 표시됩니다. 이후에 확인된 결제가 있으면 주문은 여전히 결제 완료 상태로 바뀝니다.
Refunded: 모듈을 통해 결제 전액이 환불되었습니다.
취소되거나 환불된 주문은 늦게 도착한 결제로 다시 열리지 않습니다. 메모에서 Merchant Portal로 주문을 복구하거나 결제를 환불하라고 안내합니다. 이미 결제 완료된 주문에 두 번째 결제가 도착하면 주문은 변경되지 않으며, 메모에서 Merchant Portal로 중복 결제를 환불하라고 안내합니다. finby가 보고한 차지백과 분쟁은 메모로 추가됩니다.
TrustPay / finby 결제 블록
주문 페이지에는 TrustPay / finby payment 블록이 표시됩니다. 이 블록에는 결제 요청 ID, finby 결제 ID, 프로젝트, 결제 상태, 요청 금액과 결제 금액, 환불된 금액, 테스트 결제용 Test project 배지, 환불 내역, 그리고 주문의 TrustPay notes가 포함됩니다.
환불
TrustPay / finby payment 블록에 금액을 입력하십시오(아직 환불되지 않은 금액이 자동으로 채워집니다). 필요하면 사유를 입력하고 Refund via TrustPay를 클릭합니다. Refund this amount through TrustPay? This cannot be undone. 확인 질문에 응답하십시오. 전액 및 부분 환불을 지원합니다. 주문을 편집할 권한이 있어야 하며, 모듈 페이지에 접근할 권한은 필요하지 않습니다. 환불은 finby가 결제에 대해 보고한 금액과 통화로 처리됩니다. 따라서 금액이 맞지 않는 경우에는 주문 합계가 아니라 고객이 실제로 결제한 금액까지 환불할 수 있습니다. HUF 환불은 정수 금액이어야 합니다.
환불은 그 사이에 모드를 바꾸었더라도 주문 결제에 사용된 프로젝트(테스트 또는 실서비스)로 처리됩니다. 해당 프로젝트의 Project ID와 Secret key가 설정되어 있어야 하며, 그 Project ID가 변경되지 않았어야 합니다. 환불은 finby가 승인한 경우에만 기록됩니다. 그렇지 않으면 블록에 사유와 함께 TrustPay refused the refund:가 표시되며, 환불은 기록되지 않습니다. 성공한 환불은 환불 내역과 메모에 추가됩니다. 전액 환불을 하면 주문은 Refunded 상태가 됩니다. 부분 환불은 상태를 바꾸지 않습니다.
모듈은 크레딧 슬립을 만들지 않습니다. 주문 페이지의 PrestaShop 표준 환불 버튼은 finby를 통해 돈을 돌려주지 않습니다. finby Merchant Portal에서 한 환불은 환불로 기록되지 않습니다. 이에 대해 finby가 알림을 보내면 메모로 추가되며, 주문 상태는 바뀌지 않습니다.
라이선스 키
모듈은 vibefox.net에서 받은 VibeFox 라이선스 키로 작동합니다. License — VibeFox TrustPay Gateway 라이선스 블록은 Modules > Module Manager > VibeFox TrustPay Gateway > Configure 페이지에서 설정 위에 있는 첫 번째 블록입니다. 키를 License key에 입력하고 Activate를 클릭하십시오. 그러면 블록에 키가 마스킹되어 표시되고, 상태(예: 라이선스 유효 기간 종료일과 도메인)가 나타나며, Check now(상태 다시 확인), Change key(다른 키 입력), Remove key(이 쇼핑몰에서 키 제거) 버튼이 보입니다. 그 아래에는 Product: presta-payment-trustpay 줄과 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 계정에서 슬롯을 해제하십시오.
활성 키가 없으면 체크아웃에서 카드 결제가 고객에게 표시되지 않습니다. 그래도 결제가 시작되면 고객에게 This payment method is not available. Please choose another one.가 표시됩니다. PrestaShop 스토어프런트는 백오피스에 로그인되어 있는지 알 수 없으므로, 결제 방법은 관리자에게도 숨겨집니다. 키를 구매하기 전에 모듈을 설정할 수는 있지만 체크아웃에서 테스트할 수는 없습니다. Modules > Module Manager의 Alerts 탭에 알림이 나타납니다. 기존 주문은 영향을 받지 않습니다. 이미 시작된 결제는 TrustPay 알림과 쇼핑몰로의 복귀를 통해 계속 확인되며, 환불도 작동합니다.
라이선스가 만료되어도 모듈은 계속 작동하지만, 업데이트와 지원에는 갱신이 필요합니다. 백오피스에서 작업하는 동안 상태는 자동으로 다시 확인됩니다. 키를 입력한 후 처음 14일 동안은 하루에 한 번, 그 후에는 일주일에 한 번입니다. cron 작업은 필요하지 않습니다. 모듈을 제거하거나 초기화하면 라이선스 키와 라이선스 상태가 항상 삭제됩니다.
문제 해결
Card payment (TrustPay)가 체크아웃에 나타나지 않음: 라이선스가 활성 상태인지, Enable / Disable이 켜져 있는지, 현재 모드에 Project ID와 Secret key가 있는지 확인하십시오. 테스트 모드에서는 Test Project ID와 Test Secret key, 실서비스 모드에서는 Live Project ID와 Live Secret key입니다. 장바구니 통화는 지원되는 통화 중 하나여야 합니다. 자격 증명이 없거나 기본 통화가 지원되지 않으면 설정 페이지에 경고가 표시됩니다. Payment > Preferences에서 장바구니 통화, 고객의 국가, 고객 그룹에 대해 모듈이 허용되어 있는지 확인하십시오.
결제는 완료되었지만 주문이 생성되지 않음: 알림이 쇼핑몰에 도달하지 못했습니다. Notification URL 아래에 표시된 URL이 인터넷에서 접근 가능한지(방화벽, 유지 보수 로그인, HTTP 인증이 없는지) 확인하십시오. finby는 알림을 다시 보내며, 알림이 도착하면 주문이 생성됩니다. Debug logging을 켜고 모듈 페이지의 Log 필드를 확인하십시오.
로그에 Notification rejected: invalid signature or unknown project가 표시됨: 알림이 설정에 Project ID가 없는 프로젝트에서 왔거나, 그 프로젝트의 Secret key가 잘못되었습니다. 쇼핑몰은 Invalid signature로 응답하며 아무것도 변경되지 않습니다. 결제가 이루어진 모드의 Project ID와 Secret key를 확인하십시오.
로그에 Notification ignored가 표시됨: 알림이 이 쇼핑몰이 해당 장바구니에 대해 만들지 않은 결제 요청에 대한 것이거나, 결제를 시작할 때와 다른 프로젝트 또는 모드에 대한 것입니다. 아무것도 변경되지 않습니다.
알림에 Busy, retry later 또는 Temporary error로 응답됨: 같은 시점에 다른 알림이 장바구니를 업데이트하고 있었거나, 주문을 생성할 수 없었습니다(예: 모듈이 비활성화된 경우). finby가 다시 시도합니다. 로그에 사유가 표시됩니다.
고객에게 We could not start the card payment가 표시됨: 로그를 여십시오. 잘못된 Project ID나 Secret key는 finby가 프로젝트의 자격 증명을 거부했다는 메시지를 나타냅니다. 테스트 자격 증명이 테스트 필드에, 실서비스 자격 증명이 실서비스 필드에 들어 있는지 확인하십시오.
Card payment is temporarily unavailable: 현재 모드에 Project ID나 Secret key가 없으면 고객에게 이 메시지가 표시됩니다. 값을 입력하고 저장하십시오.
주문이 TrustPay payment on hold 상태임: TrustPay / finby payment 블록의 메모를 읽으십시오(주문 상태 항목 참조). 배송 전에 Merchant Portal에서 결제를 확인한 다음 주문을 처리하거나 결제를 환불하십시오.
프로젝트 관련 메시지와 함께 환불이 실패함: 주문이 테스트 또는 실서비스 프로젝트로 결제되었는데, 해당 모드의 Project ID 또는 Secret key가 설정되어 있지 않거나, 지금은 다른 Project ID가 저장되어 있습니다. 그 프로젝트의 자격 증명을 입력하거나, finby Merchant Portal에서 결제를 환불하십시오.
Invalid refund amount: at most … can be refunded: 금액이 결제 금액에서 모듈을 통해 이미 처리된 환불을 뺀 값을 초과합니다.
제거
Modules > Module Manager로 이동하여 VibeFox TrustPay Gateway 옆의 메뉴를 열고 Uninstall을 선택하십시오. 이 모듈의 라이선스 키와 라이선스 상태는 항상 삭제됩니다. 캐시된 API 접근 토큰은 항상 삭제됩니다. Delete data on uninstall이 켜져 있으면 모듈 설정과 로그가 삭제됩니다. 꺼져 있으면 나중에 다시 설치할 수 있도록 모든 설정이 유지됩니다. TrustPay 결제 기록과 환불, 그리고 Awaiting TrustPay payment 및 TrustPay payment on hold 주문 상태는 항상 유지되므로, 이전에 결제된 주문은 재설치 후에도 환불할 수 있습니다. 기존 주문은 결제 메모와 거래 ID를 유지합니다.
TrustPay와 finby는 각 소유자의 상표입니다. 이 모듈은 TrustPay 또는 finby와 제휴하거나 그들의 승인을 받지 않았습니다.
