VibeFox 2C2P for PrestaShop — 도움말
요구 사항
PrestaShop: 8.0 ~ 9.x.
PHP: 8.0 이상. 모듈은 이전 PHP 버전에는 설치되지 않습니다.
2C2P 계정: 2C2P 가맹점 계정의 Merchant ID와 Secret Key가 필요합니다. 가맹점 계정이 개설될 때 2C2P에서 발급합니다. 샌드박스 계정과 운영 계정은 서로 다른 키를 사용합니다. 개발자 문서와 샌드박스 테스트 카드는 developer.2c2p.com에 있습니다.
통화: 장바구니 통화가 모듈에서 지원되고 2C2P 계정에서 활성화되어 있어야 합니다. 지원되는 통화에는 THB, SGD, MYR, PHP, IDR, VND, MMK, KHR, LAK, CNY, HKD, TWD, JPY, KRW, INR, AUD, NZD, USD, EUR, GBP 등이 있습니다. 장바구니 통화가 지원되지 않으면 체크아웃에서 해당 결제 수단이 표시되지 않습니다.
VibeFox 라이선스 키: vibefox.net에서 구매합니다. 키 하나는 도메인 하나에서만 작동합니다.
설치
1. 백오피스에서 Modules > Module Manager로 이동한 후 Upload a module을 클릭합니다. 모듈의 ZIP 파일을 선택합니다.
2. 업로드가 끝나면 Configure를 클릭하거나, 나중에 모듈 목록에서 VibeFox 2C2P Payment를 찾아 Configure를 클릭합니다.
3. Configure 페이지 상단의 라이선스 블록에서 VibeFox 라이선스 키를 License key에 입력하고 Activate를 클릭합니다 (라이선스 키 참조).
4. 샌드박스 Merchant ID와 Secret Key를 입력하고, Enable/Disable을 켠 다음 Save를 클릭하여 테스트 주문을 진행합니다.
5. 준비가 되면 운영 자격 증명을 입력하고 Sandbox Mode를 끕니다.
설치 시 모듈은 두 가지 주문 상태, 즉 Awaiting 2C2P payment와 2C2P payment on hold를 생성합니다. PrestaShop은 모든 통화, 국가 및 고객 그룹에 대해 새 결제 모듈을 활성화합니다. 이는 Payment > Preferences에서 제한할 수 있습니다. 반환 URL과 알림 URL은 모든 결제와 함께 전송됩니다. 2C2P 포털에서 아무것도 설정할 필요가 없습니다.
설정
모든 설정은 모듈 페이지에 있습니다: Modules > Module Manager > VibeFox 2C2P Payment > Configure. 각 섹션에는 전체 페이지를 저장하는 자체 Save 버튼이 있습니다. 샌드박스 모드가 켜져 있는 동안 필드 위에 Sandbox mode is active. No real transactions will be processed.가 표시됩니다. 게이트웨이는 켜져 있지만 현재 모드의 Merchant ID 또는 Secret Key가 비어 있거나, 쇼핑몰의 기본 통화가 지원되지 않으면 경고가 표시됩니다. 두 경우 모두 체크아웃에서 해당 결제 수단이 표시되지 않습니다. Sandbox Mode가 꺼진 상태에서 저장할 때 운영 필드가 비어 있으면 Please enter your live Merchant ID. 또는 Please enter your live Secret Key.가 표시됩니다. 그래도 설정은 저장됩니다.
2C2P
Enable/Disable: Enable 2C2P Payment Gateway는 결제 수단을 켜거나 끕니다. 기본값: 끔.
Title: 고객이 체크아웃에서 보는 결제 수단 이름입니다. 주문에도 결제 수단 이름으로 저장됩니다. 기본값: 2C2P Payment.
Description: 체크아웃에서 결제 수단 아래에 표시되는 텍스트입니다. 기본값: Pay securely via credit/debit card, e-wallet, or internet banking through 2C2P. 샌드박스 모드에서는 텍스트 뒤에 (TEST MODE)가 추가됩니다.
테스트 모드(샌드박스)
Sandbox Mode: 아래의 샌드박스 자격 증명으로 결제를 2C2P 샌드박스(demo2.2c2p.com)로 보냅니다. 기본값: 켬. 실제 결제를 받으려면 끄십시오.
Sandbox Merchant ID: 2C2P 샌드박스 Merchant ID입니다.
Sandbox Secret Key: 2C2P 샌드박스 Secret Key입니다.
운영 API 자격 증명
샌드박스 모드가 꺼져 있을 때 사용됩니다.
Merchant ID: 2C2P 운영 Merchant ID입니다.
Secret Key: 2C2P 운영 Secret Key입니다. 키는 따옴표와 백슬래시를 포함하여 입력한 그대로 저장됩니다.
저장된 Secret Key는 다시 표시되지 않습니다. 필드는 비어 있으며 Saved — leave empty to keep it.가 표시됩니다. 값을 바꾸려는 경우에만 새 값을 입력하십시오.
저장된 비밀 값 삭제: Sandbox Secret Key 또는 Secret Key에 체크한 후 Save를 클릭하면 삭제됩니다. 필드가 비어 있으면 저장된 값이 유지됩니다.
결과는 항상 결제가 이루어진 모드의 Merchant ID와 Secret Key로 검증됩니다. 샌드박스 모드에서 시작된 결제는 운영으로 전환한 후에도 샌드박스 키로 검증되며, 다른 모드의 키로 서명된 결과는 거부됩니다.
결제 페이지
결과 URL: 참고용으로 Frontend return URL과 Backend notification URL을 표시합니다. 친숙한 URL을 사용하면 https://your-shop/module/wcp_2c2p_payment/return 및 https://your-shop/module/wcp_2c2p_payment/notify와 같은 형태이며, /en/과 같은 언어 코드가 붙을 수도 있습니다. 이 URL들은 모든 결제와 함께 자동으로 전송됩니다.
Payment Page Language: 2C2P 결제 페이지의 언어입니다. 기본값: English.
Redirect API version: 2C2P에서 계정이 아직 이전 버전 7.0(SHA-1 서명)을 사용한다고 알려주지 않은 한 8.5로 두십시오. 전환 이전에 시작된 결제의 결과도 계속 검증됩니다.
Order ID prefix: 선택 사항이며, 영문자와 숫자만 사용할 수 있습니다(최대 10자). 예: SHOP1. 2C2P는 이미 받은 주문 ID를 거부합니다. 여러 쇼핑몰이 하나의 2C2P 계정을 공유하는 경우와, 테스트 가맹점 계정이 공유되는 샌드박스에서는 고유한 접두사를 설정하십시오. 그 밖의 문자는 저장할 때 경고와 함께 제거됩니다.
고급 설정
Enable Logging: 2C2P 이벤트를 모듈 폴더의 logs/tc2p_p_debug.log.php에 기록합니다. 이 파일은 웹에서 열 수 없습니다. 카드 데이터, Secret Key, 고객 이메일, 결제 토큰은 기록되지 않습니다. 기본값: 끔. 꺼져 있는 동안에는 오류를 포함하여 아무것도 기록되지 않습니다.
Log: 로그의 크기와 최신 항목을 표시합니다. Clear log를 클릭하면 로그가 비워집니다.
Delete Data on Uninstall: 켜져 있으면 모듈을 제거할 때 게이트웨이 설정과 로그가 삭제됩니다. 2C2P 거래, 주문 및 모듈의 주문 상태는 항상 유지되므로, 재설치 후에도 이전 결제의 지연된 결과가 처리됩니다. 기본값: 끔.
체크아웃
결제 단계에서 고객은 결제 수단(기본값은 2C2P Payment)을 선택하고 확인합니다. 다음 페이지에는 Thank you for your order. You will be redirected to 2C2P to complete your payment.가 표시되며, 잠시 후 고객은 2C2P 결제 페이지로 이동합니다. 이동하지 않으면 고객은 Pay via 2C2P를 클릭합니다. 이 페이지에는 Back to checkout 버튼도 있습니다. 이 시점에서는 아직 주문이 존재하지 않습니다.
2C2P 페이지에서 고객은 2C2P 계정에서 활성화된 모든 수단, 예를 들어 카드, 전자 지갑, QR 결제, 인터넷 뱅킹 또는 현금 결제로 결제할 수 있습니다. 모듈은 장바구니 합계(장바구니 통화 기준), 고객의 이메일, 장바구니 상품명을 전달합니다. 결제는 24시간 이내에 완료할 수 있습니다. 2C2P는 같은 주문 ID를 두 번 받지 않으므로, 결제 시도마다 고유한 2C2P 주문 ID가 부여됩니다(선택적 접두사 뒤에 장바구니 번호와 시도 번호가 붙습니다).
2C2P는 결과를 두 번 보고합니다. 고객의 브라우저가 쇼핑몰로 돌아오고, 2C2P가 서버 간 알림을 보냅니다. 두 경우 모두 같은 방식으로 처리됩니다. 주문은 2C2P가 유효한 서명으로 확인한 후에만 결제 완료로 표시됩니다. 결과는 해당 결제에 속해야 합니다. 2C2P 주문 ID는 쇼핑몰이 발급한 것이어야 하며, Merchant ID와 시도별 무작위 토큰도 확인됩니다. 유효한 서명이 없는 결과는 거부됩니다. 알림은 쇼핑몰이 유지 보수 모드인 동안에도 작동하며, 쇼핑몰의 국가 제한의 영향을 받지 않습니다.
결제에 성공하면 주문이 생성되고, 고객은 Your 2C2P payment has been received.가 표시된 표준 주문 확인 페이지를 보게 됩니다. 대기 중인 결제의 경우 페이지에 Your 2C2P payment is pending (for example a cash or bank payment that is not made yet). The order will be processed as soon as 2C2P confirms the payment.가 표시됩니다. 보류 중인 주문의 경우 Your payment was received and is being reviewed by the shop.가 표시됩니다. 대기 중이던 결제가 나중에 취소되면 Your 2C2P payment was not completed. Please contact us about this order.가 표시됩니다.
결제가 완료되지 않으면 주문이 생성되지 않습니다. 고객은 Payment was not completed. Please try again or choose a different payment method.라는 메시지와 함께 체크아웃으로 돌아갑니다. 장바구니는 유지되므로, 고객은 다시 결제하거나 다른 결제 수단을 선택할 수 있습니다. 결과를 확인할 수 없으면 고객에게 We could not confirm the payment result. If your account was charged, please contact us before paying again.가 표시됩니다. 장바구니 통화가 지원되지 않는 등의 이유로 결제를 시작할 수 없으면 메시지는 This payment method is currently unavailable for this order. Please contact us or choose another payment method.입니다.
장바구니에 이미 주문이 있으면(결제 완료 상태이거나 대기 중인 결제를 기다리는 상태), 두 번째 결제 양식은 생성되지 않습니다. 고객은 주문 확인 페이지로 이동합니다.
이 모듈은 PrestaShop에서의 환불, 저장된 카드, 정기 결제 또는 구독, 쇼핑몰 사이트의 카드 입력 필드를 지원하지 않으며, 2C2P PGW 4.x API도 지원하지 않습니다.
주문
주문 상태
No order yet: 고객이 2C2P로 이동했지만 아직 결과가 도착하지 않았거나 결제가 실패했습니다. 장바구니만 존재합니다.
Payment accepted: 2C2P가 결제 성공을 보고했습니다(상태 000). 결제는 2C2P 거래 참조 번호를 거래 ID로 하여 기록됩니다. 주문의 비공개 메모에는 2C2P 거래, 승인 코드, 날짜, 결제 채널이 표시됩니다.
Awaiting 2C2P payment: 결제가 2C2P에서 대기 중입니다(상태 001). 예를 들어 고객이 아직 지불하지 않은 현금 결제입니다. 2C2P가 결제를 보고하면 주문은 Payment accepted로 바뀝니다.
2C2P payment on hold: 2C2P가 주문 합계와 다른 금액 또는 통화를 보고했습니다. 메모에는 수신된 값과 예상된 값이 표시됩니다. 2C2P 포털에서 주문과 거래를 확인하십시오.
Canceled: 대기 중이던 결제가 이후 거부되거나, 취소되거나, 실패했습니다(상태 002, 003, 999). 메모에는 상태와 이유가 표시됩니다. 이전 시도의 실패 결과가 다른 시도로 생성된 주문을 취소하지는 않습니다.
결제 완료된 주문은 이후의 결과로 변경되지 않으며, 반복된 이전 결과가 취소된 주문을 다시 열지도 않습니다. 이미 결제 완료된 주문에 두 번째 결제가 도착하면 주문은 변경되지 않습니다. 메모는 이를 확인하고, 중복 결제를 2C2P 가맹점 포털에서 환불하도록 요청합니다.
2C2P 결제 블록
주문 페이지에는 2C2P 주문 ID, 거래, 결제 상태, 채널, 승인 코드, 마스킹된 카드 번호, 날짜, 채널 응답, 수령 금액이 포함된 2C2P payment 블록이 표시됩니다. 샌드박스 결제에는 Sandbox 배지도 표시됩니다.
환불
PrestaShop에서의 환불은 지원되지 않습니다. 2C2P 가맹점 포털에서 결제를 환불한 다음, PrestaShop에 환불 내역을 수동으로 기록하십시오.
라이선스 키
이 모듈은 vibefox.net에서 받은 VibeFox 라이선스 키로 작동합니다. 라이선스 블록 License — VibeFox 2C2P Payment은 Modules > Module Manager > VibeFox 2C2P Payment > Configure에서 설정 위에 있는 첫 번째 블록입니다. 키를 License key에 입력하고 Activate를 클릭하십시오. 그 후 블록에는 마스킹된 키, 상태(예: 라이선스가 유효한 날짜와 도메인), 그리고 Check now(상태 다시 확인), Change key(다른 키 입력), Remove key(이 쇼핑몰에서 키 제거) 버튼이 표시됩니다. 그 아래에는 Product: presta-payment-2c2p 줄과 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 계정에서 슬롯을 해제하십시오.
활성 키가 없으면 체크아웃에서 2C2P가 고객에게 표시되지 않습니다. 그래도 결제가 시작되면 고객에게 This payment method is not available. Please choose another one.가 표시됩니다. PrestaShop 스토어프런트는 백오피스에 로그인되어 있는지 알 수 없으므로 결제 수단이 본인에게도 숨겨집니다. 키를 구매하기 전에 모듈을 설정할 수는 있지만, 체크아웃에서 테스트할 수는 없습니다. Modules > Module Manager의 Alerts 탭에 알림이 나타납니다. 기존 주문은 영향을 받지 않습니다. 이미 시작된 결제는 여전히 확인됩니다.
라이선스가 만료되어도 모듈은 계속 작동하지만, 업데이트와 지원에는 갱신이 필요합니다. 백오피스에서 작업하는 동안 상태가 자동으로 다시 확인됩니다. 키를 입력한 후 처음 14일 동안은 하루에 한 번, 그 후에는 일주일에 한 번입니다. cron 작업은 필요하지 않습니다. 모듈을 제거하거나 초기화하면 라이선스 키와 라이선스 상태는 항상 삭제됩니다.
문제 해결
체크아웃에 2C2P가 나타나지 않음: 라이선스가 활성 상태인지, Enable/Disable이 켜져 있는지, 현재 모드에 Merchant ID와 Secret Key가 있는지 확인하십시오. 샌드박스 모드에서는 샌드박스 필드를, 운영 모드에서는 운영 필드를 확인합니다. 장바구니 통화가 지원되는지도 확인하십시오. 두 경우 모두 설정 페이지에 경고가 표시됩니다. Payment > Preferences에서 장바구니 통화, 고객의 국가, 고객 그룹에 대해 모듈이 허용되어 있는지 확인하십시오.
결제는 완료되었으나 주문이 생성되지 않음: 유효한 결과가 쇼핑몰에 도달하지 않았습니다. 결제가 이루어진 모드의 Merchant ID와 Secret Key가 2C2P 계정과 일치하는지, 그리고 Redirect API version이 계정과 맞는지 확인하십시오. 서명이 잘못되었거나 다른 Merchant ID에 대한 결과는 거부됩니다. Enable Logging을 켜고 Log 필드에서 hash 또는 Merchant ID 관련 메시지를 확인하십시오. 또한 서버가 2C2P에서 백엔드 알림 URL로 보내는 요청을 허용하는지도 확인하십시오.
백엔드 알림이 400 FAIL로 응답함: 결과에 필드가 누락되었거나, 서명이 잘못되었거나, Merchant ID가 다르거나, 토큰이 잘못되었습니다. 404 FAIL은 2C2P 주문 ID가 이 쇼핑몰에서 발급되지 않았다는 뜻입니다. 503 RETRY는 같은 순간 다른 요청이 주문을 확인 중이었거나, 주문을 생성할 수 없었다는 뜻입니다(예: 모듈이 비활성화된 경우). 2C2P는 나중에 다시 시도합니다. 이유를 확인하려면 Enable Logging을 켜십시오.
알림 URL을 브라우저에서 열면 FAIL이 표시됨: 정상입니다. 이 URL은 2C2P에서 오는 POST 요청만 허용합니다.
2C2P가 주문 ID가 이미 존재한다고 함: 2C2P는 같은 주문 ID를 두 번 받지 않습니다. 여러 쇼핑몰이 하나의 2C2P 계정을 공유하거나, 많은 개발자가 데모 가맹점 계정을 공유하는 샌드박스에서 발생합니다. 고유한 Order ID prefix를 설정하십시오.
결제는 되었지만 주문이 Awaiting 2C2P payment 또는 2C2P payment on hold 상태임: 결제가 아직 2C2P에서 대기 중이거나(예: 고객이 아직 지불하지 않은 현금 결제), 지불된 금액 또는 통화가 주문과 일치하지 않은 것입니다. 2C2P 포털에서 주문 메모와 거래를 확인하십시오.
고객에게 This payment method is currently unavailable for this order가 표시됨: 장바구니 통화가 지원되지 않거나, 현재 모드의 Merchant ID 또는 Secret Key가 비어 있거나, 장바구니 합계가 0입니다.
저장할 때 Please enter your live Merchant ID 또는 Please enter your live Secret Key가 표시됨: 샌드박스 모드가 꺼져 있고 운영 필드가 비어 있습니다. 운영 자격 증명을 입력하거나 Sandbox Mode를 켜 두십시오.
제거
Modules > Module Manager로 이동하여 VibeFox 2C2P Payment 옆의 메뉴를 열고 Uninstall을 선택합니다. 이 모듈의 라이선스 키와 라이선스 상태는 항상 삭제됩니다. Delete Data on Uninstall이 켜져 있으면 게이트웨이 설정과 로그가 삭제됩니다. 꺼져 있으면 나중에 재설치할 수 있도록 모든 설정이 유지됩니다. 2C2P 거래와 Awaiting 2C2P payment 및 2C2P payment on hold 주문 상태는 항상 유지됩니다. 기존 주문은 결제 메모와 거래 ID를 그대로 보관합니다.
2C2P는 해당 소유자의 상표입니다. 이 모듈은 2C2P와 제휴하거나 2C2P의 승인을 받은 것이 아닙니다.
