뒤로

VibeFox Paytrail for OpenCart — 도움말

요구 사항

OpenCart: 3.0.x (3.0.5.0에서 테스트됨) 또는 4.0.2 이상 (4.1.0.3에서 테스트됨).

PHP: 8.0 이상.

통화: EUR. Paytrail은 유로만 받습니다. 다른 통화의 주문에서는 체크아웃에서 결제 수단이 표시되지 않습니다. 금액은 센트 단위로 전송됩니다.

쇼핑몰의 인터넷 접속: Paytrail은 서버 간 콜백(callback)으로 모든 결제를 확인하므로, 쇼핑몰은 인터넷에서 접근 가능해야 합니다. 콜백이 없어도 고객이 Paytrail에서 돌아오면 주문은 확정됩니다.

Paytrail 계정: Paytrail Merchant Panel(계정 또는 연동 정보)에 표시되는 가맹점 ID(merchant ID)와 비밀 키가 필요합니다. 테스트에는 계정이 필요하지 않습니다. 테스트 모드는 Paytrail의 공개 테스트 계정을 사용합니다. 결제 수단 자체는 Paytrail 계정에서 활성화합니다.

VibeFox 라이선스 키: vibefox.net에서 구매합니다. 키 하나는 도메인 하나에서 사용할 수 있습니다.

설치

다운로드 파일은 두 OpenCart 버전용 패키지가 들어 있는 하나의 zip 파일입니다. 컴퓨터에서 압축을 푸세요. 여기에는 README.txt, OpenCart 3 패키지 wcp_paytrail_gateway-oc3-(version).ocmod.zip, OpenCart 4 패키지 wcp_paytrail_gateway.ocmod.zip이 들어 있습니다. 사용 중인 OpenCart 버전의 패키지만 설치하세요. 라이선스 키는 두 버전에서 같습니다.

OpenCart 3

1. 관리자 화면에서 Extensions > Installer로 이동하여 Upload를 클릭하고 wcp_paytrail_gateway-oc3-(version).ocmod.zip 파일을 선택합니다. 이 확장 프로그램에는 OCMOD 수정 사항이 없으므로 Extensions > Modifications를 새로 고칠 필요가 없습니다. 설치 도구 대신, 이 패키지의 upload 폴더 내용을 쇼핑몰의 루트 폴더에 복사할 수도 있습니다.

2. Extensions > Extensions로 이동하여 유형으로 Payments를 선택합니다. VibeFox Paytrail Gateway를 찾아 Install(녹색 + 버튼)을 클릭합니다. 관리자 사용자에게 결제 확장 프로그램 목록을 수정할 권한이 있어야 합니다.

3. Edit(연필 버튼)를 클릭하여 설정 페이지를 엽니다. 페이지 상단의 라이선스 블록에 있는 License key에 VibeFox 라이선스 키를 붙여 넣고 Activate를 클릭합니다(「라이선스 키」 참조).

4. 먼저 확장 프로그램을 사용해 보려면 Test mode를 켭니다. 실제 결제를 받으려면 끄고 Merchant ID와 Secret key를 입력합니다. Paytrail에서 콜백 URL을 설정할 필요는 없습니다.

5. Enable/Disable을 켜고 Save를 클릭합니다.

OpenCart 4

1. 관리자 화면에서 Extensions > Installer로 이동하여 Upload를 클릭하고 wcp_paytrail_gateway.ocmod.zip 파일을 선택합니다. 파일 이름을 바꾸지 마세요. OpenCart 4는 파일 이름에서 확장 프로그램 코드를 가져오므로, 이름을 바꾼 패키지는 작동하지 않습니다.

2. 설치된 확장 프로그램 목록의 같은 페이지에 패키지가 표시됩니다. 그 옆의 Install(녹색 + 버튼)을 클릭합니다.

3. Extensions > Extensions로 이동하여 유형으로 Payments를 선택합니다. VibeFox Paytrail Gateway를 찾아 Install(녹색 + 버튼)을 클릭한 다음 Edit(연필 버튼)를 클릭합니다.

4. OpenCart 3의 3~5단계와 같이 라이선스 키와 Paytrail 설정을 입력합니다. 설정 페이지와 입력란은 두 버전에서 같습니다. 콜백 URL만 다릅니다(「주문」 참조).

새로 설치하면 결제 수단은 꺼져 있고 테스트 모드도 꺼져 있는 상태로 시작합니다.

설정

모든 설정은 확장 프로그램 페이지에 있습니다: Extensions > Extensions > Payments > VibeFox Paytrail Gateway > Edit. 섹션은 왼쪽에 나열되며, 목록 아래의 Save 버튼은 페이지 전체를 저장합니다. 테스트 모드가 켜져 있으면 설정 위에 페이지가 테스트 모드가 활성화되었습니다. 결제는 Paytrail의 공개 테스트 계정을 사용하며 실제 금액은 청구되지 않습니다.를 표시합니다. 운영 모드에서는 가맹점 ID나 비밀 키가 없거나, 가맹점 ID가 공개 테스트 계정 375917이면 경고합니다. 이런 경우 체크아웃에서 Paytrail은 표시되지 않습니다. 쇼핑몰의 기본 통화가 EUR이 아니면 경고합니다. 이 경우 Paytrail은 고객이 EUR로 결제할 때에만 표시됩니다. 확장 프로그램을 수정할 권한이 없으면 페이지에 설정은 표시되지만 저장할 수 없습니다.

저장할 때 Title은 비어 있거나 128자를 넘을 수 없고, Sort Order는 정수여야 하며(음수 허용), Total은 0 이상의 숫자여야 하고, 지역(geo zone)과 주문 상태가 존재해야 합니다. 그렇지 않으면 아무것도 저장되지 않습니다. 숫자 이외의 문자가 포함된 가맹점 ID는 저장되지 않으며, Paytrail 가맹점 ID는 숫자만 포함해야 합니다. 이전 값을 유지했습니다. 오류가 표시되고, 다른 설정은 저장됩니다.

Paytrail

이 섹션은 Paytrail 결제 페이지에 관한 짧은 안내와, 주문은 Paytrail이 결제를 확인한 후에만 상태를 받는다는 규칙으로 시작합니다.

Enable/Disable: Enable Paytrail은 결제 수단을 켜거나 끕니다. 기본값: 끔.

Title: 체크아웃에서 고객에게 표시되는 제목입니다. 주문에 저장되는 결제 수단 이름이기도 합니다. 기본값: Paytrail. 필수 항목이며 최대 128자입니다.

Description: Confirm Order 단계에서 확인 버튼 위, Paytrail 아이콘 옆에 고객에게 표시되는 텍스트입니다. 기본값: Pay securely with Finnish online banking, card, mobile payment or invoice on the Paytrail payment page.

Sort Order: 체크아웃에서 결제 수단 중 Paytrail의 표시 순서입니다. 비워 두거나 정수를 입력합니다.

Geo Zone: 선택한 지역(geo zone)의 결제 주소에 대해서만 Paytrail을 제공합니다. 기본값: All zones. 지역은 System > Localisation > Geo Zones에서 설정합니다.

Total: Paytrail을 제공하기 전에 주문이 도달해야 하는 쇼핑몰 기본 통화 기준의 체크아웃 합계입니다. 비워 두면 모든 금액에 대해 Paytrail을 제공합니다.

API 인증 정보

가맹점 ID와 비밀 키는 Paytrail Merchant Panel(계정 또는 연동 정보)에 표시됩니다. 이 섹션에는 Paytrail로 연결되는 링크가 있습니다. EUR 결제만 지원됩니다.

Test mode: 새 결제에 본인의 인증 정보 대신 Paytrail의 공개 테스트 계정(가맹점 ID 375917)을 사용합니다. 실제 금액은 청구되지 않으며 키도 필요하지 않습니다. 고객은 Confirm Order 단계에서 테스트 모드: 실제 결제가 이루어지지 않습니다.를 보게 됩니다. 테스트 계정의 비밀 키는 공개되어 있으므로, 누구나 테스트 모드의 결제를 흉내 낼 수 있습니다. 실제 운영 쇼핑몰에서는 테스트 모드를 절대 켜 두지 마세요. 기본값: 끔.

Merchant ID: 본인의 Paytrail 가맹점 ID(숫자만)입니다. 테스트 모드가 꺼져 있을 때 사용됩니다. 비밀 키와 달리 저장 후 페이지에 표시됩니다.

Secret key: 본인의 Paytrail 비밀 키입니다. 테스트 모드가 꺼져 있을 때 사용됩니다. 저장된 키는 다시 표시되지 않습니다. 입력란은 비어 있으며 저장됨 — 유지하려면 비워 두세요.라고 표시됩니다. 값을 바꾸려는 경우에만 새 값을 입력합니다. 저장된 비밀 키를 제거하려면 입력란 아래의 Clear saved secret key를 선택한 다음 Save를 클릭합니다.

콜백과 환불은 항상 결제가 이루어진 모드의 인증 정보를 사용합니다. 따라서 테스트와 운영 사이를 전환해도 이전 주문에는 문제가 없습니다.

주문

OpenCart는 Confirm Order 단계에서 상태 없이 주문을 만듭니다(누락된 주문, missing order). Paytrail이 결제를 확인한 후에야 주문에 상태가 지정됩니다. 아래의 각 상태 입력란에는 OpenCart 주문 상태가 나열됩니다.

Callback URL: Paytrail이 모든 결제를 서버 간으로 확인하는 URL을 표시합니다. OpenCart 3에서 형식은 https://your-store/index.php?route=extension/payment/wcp_paytrail_gateway/callback이고, OpenCart 4에서 형식은 https://your-store/index.php?route=extension/wcp_paytrail_gateway/payment/wcp_paytrail_gateway.callback입니다. 결제마다 함께 전송되므로 Paytrail 패널에서 설정할 것은 없지만, 쇼핑몰은 인터넷에서 접근 가능해야 합니다.

Order status after payment: 결제가 완료된 주문의 상태입니다. 기본값: Processing. 결제된 모든 주문을 즉시 완료하려면 Complete를 선택하세요.

Awaiting payment status: Paytrail이 결제를 보류 중 또는 지연됨으로 보고할 때의 상태입니다(제공자의 승인을 기다리는 청구서나 할부). Paytrail이 결제를 확인하거나 거절하면 주문이 자동으로 업데이트됩니다. 기본값: Pending.

Payment on hold status: 결제에 관리자의 확인이 필요합니다(「주문 상태」 참조). 기본값: Pending. OpenCart에는 On hold 상태가 없기 때문입니다. System > Localisation > Order Statuses에서 직접 상태를 만들고 여기에서 선택할 수 있습니다.

Payment failed status: 대기 중인 Paytrail 결제가 실패했을 때 설정됩니다. 기본값: Failed.

Refunded status: 주문 페이지에서 결제 전액을 환불한 후 설정됩니다. 기본값: Refunded.

고급

Debug log: API 요청과 콜백을 OpenCart 로그 폴더(storage/logs)의 ptg_debug.log.php에 기록합니다. 이 파일은 웹에서 열 수 없으며, 5 MB에 도달하면 ptg_debug.old.log.php로 이동합니다. 개인 데이터와 키는 기록되지 않습니다. 오류와 경고는 항상 기록됩니다. 기본값: 끔.

Log: 로그의 크기와 최신 항목을 표시합니다. Clear log를 클릭하면 로그를 비울 수 있습니다.

Delete data on uninstall: 켜면 확장 프로그램을 제거할 때 게이트웨이 설정과 로그가 삭제됩니다. 확장 프로그램을 비활성화해도 아무것도 삭제되지 않습니다. Paytrail 거래 데이터는 이전 주문의 환불에 필요하므로 주문에 대해 항상 보존됩니다. 기본값: 끔.

가져오기 / 내보내기

Export: Download JSON은 설정을 JSON 파일로 저장합니다. 가맹점 ID와 비밀 키는 내보내지 않습니다.

Import: 이전에 내보낸 JSON을 붙여 넣고 Import를 클릭하면 설정이 복원됩니다. 저장된 가맹점 ID와 비밀 키는 유지됩니다.

체크아웃

Payment Method 단계에서 고객은 결제 수단을 선택합니다(기본값은 Paytrail). Confirm Order 단계에서 고객은 Paytrail 아이콘과 쇼핑몰의 설명을 봅니다. OpenCart는 이 단계에서 아직 상태가 없는 주문을 만듭니다. OpenCart 4에서는 고객이 결제 수단 블록의 Choose 버튼을 눌러 Payment method options 창에서 결제 수단을 선택하고, 체크아웃 페이지 하단의 Confirm Order를 클릭합니다. 고객이 Confirm Order를 클릭하면, 확장 프로그램은 주문 합계에 대해 유로로 된 Paytrail 결제를 만들고, 참조로 주문 번호를 사용하며, 주문 항목도 함께 보냅니다. 옵션과 세금이 포함된 상품, 구매한 기프트 카드, 배송비 및 기타 요금이 포함됩니다. 쿠폰, 스토어 크레딧, 적립 포인트, 사용된 기프트 카드는 항목에 나누어 배분됩니다. 항목의 합계는 항상 결제 금액과 같으며, 반올림 차이는 항목 하나에 포함되거나 Rounding 항목으로 전송됩니다. 고객의 연락처 정보는 전송되며, 청구지 주소와 배송지 주소는 완전한 경우에만 전송됩니다. 결제 페이지의 언어는 고객의 언어에 따라 핀란드어, 스웨덴어 또는 영어입니다.

고객은 Paytrail 결제 페이지로 이동하여, Paytrail 계정에서 활성화된 결제 수단을 선택하고 결제합니다. 그런 다음 Paytrail은 결제를 두 번 확인합니다. 고객을 쇼핑몰로 돌려보내고, 서버 간으로 콜백 URL을 호출합니다. 두 확인은 해당 결제 시도의 인증 정보로 만든 유효한 서명이 있는 경우에만, 그리고 이 주문을 위해 만들어진 시도에 대해서만 받아들여집니다. 결제된 금액은 주문 합계와 비교됩니다. 주문은 Paytrail이 이런 방식으로 확인한 후에만 결제 완료로 표시되며, 그다음 일반적인 OpenCart 방식에 따라 상태를 받고, 일반적인 주문 이메일과 재고 업데이트가 이루어집니다. 확장 프로그램은 다음 Paytrail 상태를 처리합니다:

ok: 결제가 이루어졌습니다. 금액이 일치하면 주문은 Order status after payment를 받습니다.
pending, delayed: 결제가 청구서 승인 등 결제 제공자의 처리를 기다리고 있습니다. 주문은 Awaiting payment status를 받고, Paytrail이 결제를 확인하거나 거절하면 업데이트됩니다.
fail: 결제가 실패했거나 취소되었습니다. 가장 최근 시도의 경우 주문은 상태 없이 남고, 고객은 다시 결제할 수 있습니다. 대기 중인 주문은 Payment failed status를 받습니다. 결제 완료된 주문은 절대 변경되지 않습니다.

결제에 성공하면 고객은 Paytrail 결제가 접수되었습니다.라는 메시지와 함께 OpenCart 주문 성공 페이지를 봅니다. 대기 중인 결제의 경우 페이지에는 Paytrail 결제가 결제 제공자의 확인을 기다리고 있습니다. 주문은 자동으로 업데이트됩니다. 다시 결제하지 마세요.가 표시됩니다. 콜백이 바로 같은 시점에 결제를 기록하고 있다면, Payment confirmation 페이지가 고객에게 다시 결제하지 말 것을 요청하고 Check again을 제공합니다.

결제가 취소되었거나 실패한 후 고객은 Paytrail 결제가 취소되었거나 실패했습니다. 다시 시도하거나 다른 결제 수단을 선택할 수 있습니다.라는 메시지와 함께 체크아웃으로 돌아갑니다. 결제가 아직 끝나지 않았다면 메시지는 Paytrail 결제가 아직 완료되지 않았습니다. 다시 시도하거나 다른 결제 수단을 선택할 수 있습니다.입니다. 장바구니는 유지됩니다. OpenCart 4에서는 이러한 메시지가 체크아웃 페이지 상단에 표시됩니다. 확인할 수 없는 반환은 Payment Error 페이지에 Payment verification failed.를 표시하며, 아무것도 변경하지 않습니다.

Paytrail이 결제를 시작할 수 없으면, 고객은 Confirm Order 단계에 머무르며 버튼 위에 짧은 메시지를 보게 됩니다. 예: Paytrail에 연결할 수 없습니다. 잠시 후 다시 시도해 주세요., Paytrail을 일시적으로 사용할 수 없습니다. 다른 결제 수단을 선택해 주세요.(잘못된 인증 정보), 또는 Paytrail에서 결제를 시작할 수 없습니다. 청구 정보를 확인한 후 다시 시도하거나 다른 결제 수단을 선택해 주세요. 기술적인 이유는 로그에 기록됩니다. Paytrail의 한도를 벗어난 주문 합계에는 이 주문 금액은 Paytrail로 결제할 수 없습니다. 다른 결제 수단을 선택해 주세요.가 표시됩니다.

OpenCart 3에서는 Confirm Order 단계가 표시될 때마다 새 주문을 만들고, OpenCart 4에서는 체크아웃의 주문을 업데이트합니다(새 시도는 같은 주문을 결제합니다). 장바구니가 이미 다른 주문으로 결제되었다면, 고객은 바로 성공 페이지로 이동하며 새 결제는 시작되지 않습니다. Paytrail 결제는 API로 취소할 수 없으므로, 이전 결제 페이지도 계속 결제할 수 있는 상태로 남습니다. 고객이 그 페이지도 결제하면, 두 번째 결제는 결제 완료된 주문에 환불해야 할 중복 결제로 기록되며, 다른 주문은 상태 없이 남습니다. 장바구니를 변경하면(수량 변경 포함) 새 장바구니로 간주되며, 자체 결제가 필요합니다.

OpenCart 4는 성공 페이지가 표시될 때까지 주문을 체크아웃에 유지합니다. 그 사이에 결제 없이 해당 주문이 닫힌 경우(예: 취소한 경우), 고객은 Your previous order was cancelled or refunded. Please confirm the order again to pay with a new order. 메시지와 함께 체크아웃으로 돌아갑니다. 주문의 대기 중이던 결제가 실패했다면 The Paytrail payment was cancelled or failed. You can try again or choose another payment method. 메시지가 표시됩니다. 다음 Confirm Order에서 새 주문에 대한 결제가 이루어집니다. 해당 주문이 이전 장바구니에 대해 이미 결제되었고 그 후 장바구니가 변경된 경우, 고객은 체크아웃으로 돌아가며, 다음 Confirm Order에서 현재 장바구니의 새 주문에 대한 결제가 이루어집니다. 닫힌 주문은 결제 완료된 것으로 표시되지 않습니다.

OpenCart는 결제 확장 프로그램의 요청을 통과시키므로, 쇼핑몰이 점검 모드여도 콜백은 작동합니다(OpenCart 4에서는 확장 프로그램이 이를 위한 자체 시작 액션을 추가하며, 이를 통해 고객이 Paytrail에서 돌아오는 것도 허용됩니다).

고객은 체크아웃이 아니라 Paytrail 페이지에서 결제 수단을 선택합니다. 이 확장 프로그램에는 카드 토큰화나 저장된 카드, 구독, 숍인숍, 수동 청구서 활성화, 정산 보고서가 없습니다.

주문 및 환불

주문 상태

상태 없음(누락된 주문): 고객이 Paytrail로 이동했지만 결제하지 않았거나, 결제가 실패했거나, Paytrail이 아직 결제를 확인하지 않은 경우입니다. Sales > Orders에서 이런 주문은 Order Status 필터를 Missing Orders로 설정한 경우에만 표시됩니다.

Order status after payment(기본값 Processing): 결제가 확인되었습니다. 메모에는 Paytrail 거래, Paytrail에서 사용된 결제 수단, 금액이 표시되며, 테스트 결제의 경우 TEST mode — no real money.가 함께 표시됩니다.

Awaiting payment status(기본값 Pending): 결제가 제공자 측에서 대기 중입니다(청구서 또는 지연된 결제). Paytrail이 결제를 확인하면 주문은 결제 완료 상태로, 결제가 실패하면 실패 상태로 바뀝니다.

Payment on hold status(기본값 Pending): 결제된 금액이 주문 합계와 다르거나(실제로 결제된 금액이 기록됩니다), 주문이 취소 등 다른 상태로 설정된 뒤에 결제가 도착했거나, 확장 프로그램이 운영 모드일 때 테스트 결제를 받았습니다(실제 돈이 없고 환불할 것도 없습니다). 메모에 이유가 설명되어 있습니다. 주문을 확인한 다음 처리하거나 결제를 환불하세요.

Payment failed status(기본값 Failed): 대기 중인 Paytrail 결제가 실패했거나 취소되었습니다.

Refunded status(기본값 Refunded): 확장 프로그램을 통해 결제 전액을 환불했습니다.

반복되거나 동시에 들어온 콜백은 한 번만 적용되며, 중복 메모가 생기지 않습니다. 결제 완료, 환불 또는 완료된 주문은 이후의 콜백으로 다시 열리지 않습니다. 이미 결제된 주문이나 장바구니의 두 번째 시도가 결제되더라도 주문은 변경되지 않으며, Duplicate payment 메모가 Paytrail Merchant Panel에서 환불하라고 안내합니다.

메모는 고객이 볼 수 없는 주문 History의 항목입니다.

VibeFox Paytrail Gateway 탭

Sales > Orders에서 Paytrail로 결제된 주문을 엽니다. 주문 페이지 하단, History 및 Additional 옆에 있는 VibeFox Paytrail Gateway 탭에는 주문의 결제 시도 목록(날짜, Paytrail 거래와 스탬프(테스트 결제에는 Test 표시), 금액, 결제 수단, Paytrail 상태와 결과), Paid / refunded 금액, 환불 양식, 환불 내역, 주문의 Paytrail notes가 표시됩니다. 이 탭은 확장 프로그램에 접근 권한이 있는 사용자에게 표시됩니다.

환불

VibeFox Paytrail Gateway 탭에서 Amount를 입력하고(아직 환불되지 않은 금액이 자동으로 채워집니다), 필요하면 주문 메모에 들어갈 사유를 입력한 다음 Refund via Paytrail을 클릭합니다. 이 금액을 Paytrail로 환불하시겠습니까? 이 작업은 취소할 수 없습니다.라는 확인에 응답합니다. 전액 환불과 부분 환불이 지원되며, 금액 단위로만 가능합니다. 확장 프로그램을 수정할 권한이 필요합니다(System > Users > User Groups에서 설정). Paytrail이 실제로 청구한 금액까지만 환불할 수 있으므로, 금액 불일치가 있으면 한도는 주문 합계가 아니라 고객이 실제로 결제한 금액입니다. 환불은 결제가 이루어진 모드의 인증 정보를 사용하므로, 운영 결제에 대해서는 운영 인증 정보가 설정되어 있어야 합니다. Paytrail이 결제를 확인한 후에 환불을 사용할 수 있습니다.

결제 수단이 직접 환불을 지원하지 않으면, 확장 프로그램은 자동으로 이메일 환불을 시작합니다. Paytrail이 고객에게 이메일을 보내 은행 계좌를 입력하도록 요청합니다. 이를 위해서는 주문에 고객의 이메일이 있어야 합니다. 메모에는 시작된 환불의 종류가 표시됩니다.

환불은 즉시 완료되거나 나중에 처리될 수 있습니다. Paytrail의 이후 확인은 메모로 추가됩니다. Paytrail이 환불을 완료하지 못하면, 메모에 돈이 고객에게 환불되지 않았다고 표시되며, 그 환불은 더 이상 환불된 것으로 간주되지 않습니다. 고객에게 다른 방법으로 환불하세요. Paytrail이 환불을 즉시 거절하면 탭에 오류가 표시되며 환불은 기록되지 않습니다. 전액 환불은 고객에게 알리지 않고, 제품을 재고로 되돌리지 않은 채 주문을 Refunded status로 설정합니다. 수동 상태 변경과 같습니다. 부분 환불은 상태를 바꾸지 않습니다.

Sales > Returns에서의 제품 반품은 Paytrail을 통해 돈을 돌려주지 않습니다. Paytrail Merchant Panel에서 이루어진 환불은 OpenCart와 동기화되지 않습니다.

라이선스 키

이 확장 프로그램은 vibefox.net에서 받은 VibeFox 라이선스 키로 작동합니다. License — VibeFox Paytrail Gateway 라이선스 블록은 Extensions > Extensions > Payments > VibeFox Paytrail Gateway > Edit에서 설정 위에 있는 첫 번째 블록입니다. License key에 키를 붙여 넣고 Activate를 클릭합니다. 그 후 블록에는 마스킹된 키, 상태(예: 라이선스가 유효한 날짜와 도메인), 그리고 상태를 다시 확인하는 Check now, 다른 키를 입력하는 Change key, 이 쇼핑몰에서 키를 제거하는 Remove key 버튼이 표시됩니다. 그 아래에는 Product: opencart-payment-paytrail 줄과, vibefox.net 계정을 여는 Manage licenses and domains in your account 링크가 있습니다. 확장 프로그램에 대한 Modify 권한이 있는 관리자 사용자만 키를 변경할 수 있습니다. 블록의 텍스트는 관리자 화면 언어를 따릅니다(영어와 러시아어가 포함됩니다).

키가 승인되지 않으면 블록에 이유가 표시됩니다. 예: Key not found, This key belongs to another product, Domain limit reached, 또는 날짜와 함께 표시되는 License expired on. 쇼핑몰 주소를 변경한 후, 또는 계정에서 도메인 슬롯을 비운 후에는 Check now를 클릭하세요. 라이선스 서버에 연결할 수 없으면 확장 프로그램은 마지막으로 확인된 상태를 바탕으로 계속 작동합니다.

키 하나는 도메인 하나에서 작동합니다. 즉 OpenCart 설정의 쇼핑몰 주소입니다. 쇼핑몰에서 키를 제거해도 도메인 슬롯은 해제되지 않습니다. vibefox.net 계정에서 슬롯을 해제하세요.

활성 키가 없으면 체크아웃에서 Paytrail이 고객에게 표시되지 않습니다. 그래도 결제가 시작되면 고객에게 This payment method is not available. Please choose another one.가 표시됩니다. 같은 브라우저에서 관리자 화면에 로그인한 관리자 사용자는 결제 수단이 (unlicensed — visible to admins only) 표시와 함께 쇼핑몰에 계속 보이므로, 키를 구매하기 전에 확장 프로그램을 설정하고 테스트할 수 있습니다. OpenCart 4에서는 이 미리보기를 사용할 수 없습니다. 스토어는 관리자 로그인을 확인하지 않으므로, 활성 키가 없으면 결제 수단은 모든 사용자에게 숨겨집니다. Edit 페이지를 한 번 연 후에는 관리자 Dashboard에 알림이 나타납니다. ×로 닫으면 7일 동안 숨겨집니다. 기존 주문은 영향을 받지 않습니다. 이미 시작된 결제는 콜백과 고객의 반환을 통해 계속 확인되고, 환불도 작동합니다.

라이선스가 만료되어도 확장 프로그램은 계속 작동하지만, 업데이트와 지원에는 갱신이 필요합니다. 관리자 Dashboard나 Edit 페이지를 열면 상태가 자동으로 다시 확인됩니다. 키를 입력한 후 처음 14일 동안은 하루에 한 번, 그 후에는 일주일에 한 번입니다. 크론 작업은 필요하지 않습니다. 확장 프로그램을 제거하면 라이선스 키와 라이선스 상태는 항상 삭제됩니다.

문제 해결

체크아웃에 Paytrail이 나타나지 않음: 라이선스가 활성 상태인지, Enable/Disable이 켜져 있는지, 그리고 Test mode가 켜져 있거나 Merchant ID와 Secret key가 입력되어 있는지(공개 테스트 계정 375917이 아닌지) 확인하세요. 고객이 EUR로 결제하는지, 결제 주소가 선택한 Geo Zone에 있는지, 주문이 설정의 Total에 도달하는지도 확인하세요. 설정 페이지에는 인증 정보가 없거나 쇼핑몰 통화가 EUR이 아닌 경우의 경고가 표시됩니다.

결제는 되었지만 주문이 상태 없이 남아 있음: 콜백이 쇼핑몰에 도달하지 못했고 고객도 쇼핑몰로 돌아오지 않았습니다. Orders 섹션에 표시된 Callback URL은 인터넷에서 접근 가능해야 합니다(기본 인증이나 방화벽이 가로막지 않아야 합니다).

콜백이나 반환이 Payment verification failed.로 응답함: 서명이 유효하지 않거나, 결제가 이 주문의 결제 시도에 속하지 않습니다. 아무것도 변경되지 않습니다. Secret key가 올바르며 Merchant ID에 속하는지 확인하세요.

콜백이 Temporarily unavailable로 응답함: 같은 순간 다른 요청이 주문을 확인하고 있었거나, 주문 상태를 설정할 수 없었습니다. Paytrail이 다시 호출합니다. 이유는 Log 필드에서 확인하세요.

고객이 Confirm Order 후 오류를 봄: 확장 프로그램 페이지의 Log 필드를 확인하세요. 예를 들어 Paytrail API error (401)는 잘못된 인증 정보를 뜻합니다. 자세한 내용은 Debug log를 켜서 확인하세요. This payment method is not available. Please reload the checkout page.는 그 사이에 결제 수단이 꺼졌거나 체크아웃이 더 이상 주문과 맞지 않는다는 뜻입니다.

가맹점 ID가 저장되지 않음: 숫자만 포함해야 합니다. Paytrail Merchant Panel에서 다시 복사하세요.

주문이 보류 상태임: VibeFox Paytrail Gateway 탭의 메모를 읽으세요. 이유는 결제 금액이 다르거나, 상태 변경 후 결제가 도착했거나, 운영 모드에서 테스트 결제가 이루어진 경우일 수 있습니다.

환불이 실패함: 메시지를 읽으세요. This order has no confirmed Paytrail payment. Refund it manually.는 환불할 확인된 Paytrail 결제가 없다는 뜻입니다. The live Paytrail credentials used for this payment are missing. Enter them in the Paytrail settings.는 결제가 운영 모드에서 이루어졌지만 운영 인증 정보가 설정되지 않았다는 뜻입니다. Invalid refund amount: at most …는 금액이 남은 환불 가능 금액을 넘는다는 뜻입니다. This payment method supports only e-mail refunds, but the order has no billing e-mail.는 주문에 고객의 이메일이 필요하다는 뜻입니다.

개발자용: 결제 요청이 서명되어 전송되기 전에, 확장 프로그램은 요청과 주문을 담아 OpenCart 이벤트 ptg_payment_request를 발생시킵니다.

제거

Extensions > Extensions로 이동하여 유형으로 Payments를 선택하고, VibeFox Paytrail Gateway 옆의 Uninstall(빨간 − 버튼)을 클릭합니다. 이 확장 프로그램의 라이선스 키와 라이선스 상태는 항상 제거됩니다. OpenCart는 확장 프로그램 자체의 설정을 항상 제거합니다: Enable/Disable, Sort Order, Geo Zone, Total, 그리고 Orders 섹션의 주문 상태(다시 설치하면 기본값으로 돌아갑니다). 확장 프로그램의 OpenCart 이벤트도 제거됩니다(OpenCart 4에서는 이벤트와 시작 액션도 제거되며, 시작 액션은 점검 모드에서도 콜백과 고객의 복귀를 허용합니다). Delete data on uninstall이 켜져 있으면 나머지 게이트웨이 설정(제목, 설명, 테스트 모드, 가맹점 ID, 비밀 키, 로깅)과 로그가 삭제됩니다. 꺼져 있으면 나중에 다시 설치할 때를 위해 유지됩니다. Paytrail 거래와 환불은 항상 보존되므로, 이전에 결제된 주문은 다시 설치한 후에도 환불할 수 있습니다. 기존 주문은 결제 메모를 유지합니다.

OpenCart 4에서 확장 프로그램 파일까지 제거하려면, 제거 후 Extensions > Installer로 이동하여 설치된 확장 프로그램 목록에서 VibeFox Paytrail Gateway 옆의 Uninstall(주황색 − 버튼)을 클릭한 다음, 업로드한 패키지를 삭제하려면 Delete(빨간색 휴지통 버튼)를 클릭합니다.

Paytrail은 해당 소유자의 상표입니다. 이 확장 프로그램은 Paytrail과 제휴하거나 Paytrail의 승인을 받은 것이 아닙니다.