VibeFox DPO for OpenCart — 도움말
요구 사항
OpenCart: 3.0.x(3.0.5.0에서 테스트됨) 또는 4.0.2 이상(4.1.0.3에서 테스트됨).
PHP: SimpleXML 확장 기능이 포함된 8.0 이상.
DPO Pay 계정: DPO 가맹점 계정의 Company Token과 Service Type ID가 필요합니다. DPO는 계정을 개설할 때 이 값을 발급합니다. DPO 담당 계정 관리자에게 문의하거나 dpogroup.com에서 확인하세요. DPO는 자체 토큰과 서비스 유형이 있는 테스트 계정을 제공할 수도 있습니다. 별도의 테스트 서버는 없습니다. DPO는 테스트 계정과 실계정에 같은 API 주소를 사용하며, 토큰에 따라 계정이 결정됩니다.
통화: 주문 통화는 DPO 계정에서 지원되어야 합니다. DPO는 소수점 이하 최대 2자리까지만 허용하므로, 소수점 이하 3자리가 있는 주문 금액(예: KWD 12.345)은 결제할 수 없습니다.
서버 cron: 확장 기능의 재확인 URL을 15분마다 호출하는 cron 작업(구성 참조).
VibeFox 라이선스 키: vibefox.net에서 구매합니다. 키 하나는 도메인 하나에서 작동합니다.
설치
다운로드는 두 OpenCart 버전용 패키지가 들어 있는 zip 파일 하나입니다. 컴퓨터에서 압축을 푸십시오. 압축 파일에는 README.txt, OpenCart 3용 패키지 wcp_dpo_pay-oc3-(version).ocmod.zip, OpenCart 4용 패키지 wcp_dpo_pay.ocmod.zip이 들어 있습니다. 사용 중인 OpenCart 버전의 패키지만 설치하십시오. 라이선스 키는 두 버전 모두 같습니다.
OpenCart 3
1. 관리자 페이지에서 Extensions > Installer로 이동하여 Upload를 클릭하고 wcp_dpo_pay-oc3-(version).ocmod.zip 파일을 선택합니다. 이 확장 기능에는 OCMOD 수정 사항이 없으므로 Extensions > Modifications를 새로 고칠 필요가 없습니다. 설치 프로그램 대신 이 패키지의 upload 폴더 내용을 쇼핑몰의 루트 폴더에 복사해도 됩니다.
2. Extensions > Extensions로 이동하여 유형으로 Payments를 선택합니다. VibeFox DPO Pay Gateway를 찾아 Install(녹색 + 버튼)을 클릭합니다. 관리자 사용자에게 결제 확장 기능 목록을 수정할 권한이 있어야 합니다.
3. Edit(연필 버튼)을 클릭하여 설정 페이지를 엽니다. 페이지 상단의 라이선스 블록에 있는 License key에 VibeFox 라이선스 키를 붙여 넣고 Activate를 클릭합니다(라이선스 키 참조).
4. 테스트용 및/또는 운영용 Company Token과 Service Type을 입력합니다(구성 참조).
5. Payment notifications 섹션에 표시된 푸시 알림 URL을 DPO 지원팀에 보내고, 귀하의 계정에 설정해 달라고 요청합니다. cron URL은 서버의 cron 작업에 추가합니다.
6. Enable/Disable을 켜고 Save를 클릭합니다. 테스트 모드에서 테스트 주문을 한 후, 실제 결제를 받으려면 Test mode를 끕니다.
OpenCart 4
1. 관리자 페이지에서 Extensions > Installer로 이동한 뒤 Upload를 클릭하고 wcp_dpo_pay.ocmod.zip 파일을 선택합니다. 파일 이름을 바꾸지 마십시오. OpenCart 4는 확장 기능 코드를 파일 이름에서 가져오므로, 이름을 바꾼 패키지는 작동하지 않습니다.
2. 설치된 확장 기능 목록에 패키지가 같은 페이지에 나타납니다. 그 옆의 Install(녹색 + 버튼)을 클릭하십시오.
3. Extensions > Extensions로 이동하여 유형으로 Payments를 선택합니다. VibeFox DPO Pay Gateway를 찾아 Install(녹색 + 버튼)을 클릭한 다음 Edit(연필 버튼)을 클릭합니다.
4. 라이선스 키와 DPO 자격 증명을 입력하고, 푸시 알림 URL과 cron을 설정한 뒤, OpenCart 3의 3~6단계와 같이 결제를 테스트하십시오. 설정 페이지와 필드는 두 버전에서 같습니다. 푸시 알림 URL과 cron URL만 다릅니다(결제 알림 참조).
새로 설치하면 결제 수단은 꺼진 상태이고 테스트 모드는 켜진 상태로 시작합니다. 설치 시 확장 기능은 트랜잭션 테이블과 cron URL의 비밀 토큰을 생성합니다.
구성
모든 설정은 확장 기능 페이지에 있습니다: Extensions > Extensions > Payments > VibeFox DPO Pay Gateway > Edit. 섹션은 왼쪽에 나열되며, 목록 아래의 Save 버튼을 누르면 페이지 전체가 저장됩니다. 결제 수단이 활성화되어 있는데 선택한 모드의 Company Token 또는 Service Type이 비어 있으면, 페이지는 체크아웃에서 결제 수단이 숨겨진다고 경고하며, 저장할 때도 같은 경고가 표시됩니다. 테스트 모드가 켜져 있는 동안 페이지에는 Test mode is on: payments are created with the test account credentials.(테스트 모드가 켜져 있습니다: 결제는 테스트 계정 자격 증명으로 생성됩니다.)가 표시됩니다. 확장 기능을 수정할 권한이 없으면 페이지에 설정은 표시되지만 저장할 수는 없습니다.
저장할 때 Title은 비워 둘 수 없고 128자를 넘을 수 없습니다. Sort Order는 정수여야 하고, Total은 0 이상의 숫자여야 합니다. 조건을 충족하지 않으면 아무것도 저장되지 않습니다.
DPO Pay
Enable/Disable: Enable DPO Pay는 결제 수단을 켜거나 끕니다. 기본값: 끔.
Title: 고객이 체크아웃에서 보는 결제 수단 이름입니다. 주문에 저장되는 결제 수단 이름이기도 합니다. 기본값: DPO Pay. 필수 항목입니다.
Description: 고객이 Confirm Order 단계에서 확인 버튼 위에 보는 텍스트입니다. 기본값: DPO Pay 결제 페이지에서 카드 또는 모바일 머니로 안전하게 결제하세요.
Sort Order: 체크아웃에서 DPO Pay가 결제 수단 목록 중 어느 위치에 표시될지 정합니다. 비워 두거나 정수를 입력합니다.
Geo Zone: 선택한 지역(Geo Zone)에 속한 결제 주소에만 DPO Pay를 제공합니다. 기본값: All zones. 지역은 System > Localisation > Geo Zones에서 설정합니다.
Total: DPO Pay가 제공되려면 주문이 도달해야 하는 쇼핑몰 기본 통화 기준의 장바구니 합계입니다. 금액과 관계없이 DPO Pay를 제공하려면 비워 둡니다.
API 자격 증명
DPO는 귀하의 가맹점 계정용 Company Token과 Service Type ID를 발급하며, 테스트 계정용으로는 별도의 값을 발급합니다. DPO 담당 계정 관리자에게 문의하거나 dpogroup.com에서 받으세요(이 섹션에 해당 사이트 링크가 있습니다).
Test mode: 켜져 있으면 새 결제는 테스트용 Company Token과 Service Type으로 생성됩니다. 기본값: 켜짐. 실제 결제를 운영 자격 증명으로 받으려면 끄세요. 켜져 있는 동안 고객은 Confirm Order 단계에서 Test mode: payments are created with the test account.(테스트 모드: 결제는 테스트 계정으로 생성됩니다.)를 봅니다. 기존 결제의 상태 조회와 취소는 항상 결제를 생성할 때 사용한 계정을 사용합니다.
Test Company Token: DPO 테스트 계정의 Company Token입니다.
Test Service Type: DPO 테스트 계정의 숫자 Service Type ID입니다.
Live Company Token: DPO 운영 가맹점 계정의 Company Token입니다.
Live Service Type: DPO 운영 가맹점 계정의 숫자 Service Type ID입니다.
저장된 Company Token은 다시 표시되지 않습니다. 필드는 비어 있으며 Saved — leave empty to keep it.(저장됨 — 유지하려면 비워 두세요.)가 표시됩니다. 값을 변경하려는 경우에만 새 값을 입력하세요. 저장된 토큰을 삭제하려면 필드 아래의 Clear the saved Company Token on save를 선택한 다음 Save를 클릭합니다. Service Type은 숫자여야 합니다. 다른 값은 저장되지 않으며, 페이지에 경고가 표시되고 이전 값이 유지됩니다. 나머지 설정은 저장됩니다.
결제 알림
Push notification URL: 푸시 알림은 고객이 결제 후 브라우저를 닫더라도, 결제가 이루어졌다는 사실을 쇼핑몰에 즉시 알려 줍니다. 이 URL은 대시보드에서 설정하지 않습니다. DPO 지원팀에 연락하여 귀하의 계정에 이 URL을 설정해 달라고 요청하세요. 형식은 OpenCart 3에서 https://your-store/index.php?route=extension/payment/wcp_dpo_pay/notify, OpenCart 4에서 https://your-store/index.php?route=extension/wcp_dpo_pay/payment/wcp_dpo_pay.notify이며, OpenCart 설치의 쇼핑몰 주소에서 만들어집니다. 페이지에 표시된 그대로 정확히 복사하세요. 인터넷에서 접근할 수 있어야 하며, 앞에 방화벽이나 기본 인증이 있으면 안 됩니다.
DPO 푸시 알림에는 서명이 없으므로 그 내용은 신뢰하지 않습니다. 확장 기능은 트랜잭션 토큰으로 결제를 찾는 데만 이를 사용하고, 결과는 DPO에서 직접 확인합니다. 쇼핑몰이 생성하지 않은 토큰은 DPO에 요청하지 않고 거부됩니다.
예약된 상태 재확인(cron): 서버 cron 작업에서 이 URL을 15분마다 호출하세요. 예를 들어 curl을 사용할 수 있습니다. 확인되지 않은 결제는 리디렉션 15분 후, 그리고 결제 제한 시간이 지난 후에 DPO에서 다시 확인됩니다. URL에는 비밀 토큰이 포함되어 있으므로 비공개로 보관하세요. OpenCart 4에서는 https://your-store/index.php?route=extension/wcp_dpo_pay/payment/wcp_dpo_pay.cron&token= 형식이며, 그 뒤에 토큰이 붙습니다. 푸시 URL과 cron이 없으면, 주문은 고객이 결제 후 쇼핑몰로 돌아왔을 때에만 상태를 얻습니다.
주문
OpenCart는 Confirm Order 단계에서 상태 없이 주문(누락된 주문)을 만듭니다. 주문은 DPO가 결제를 확인한 후에만 상태를 얻습니다. 아래 각 필드에는 OpenCart 주문 상태가 나열됩니다.
Successful payment status: 검증된 성공 결제 후의 주문 상태입니다. 기본값: 처리중. 결제된 모든 주문을 완료하려면 완료됨을, 모든 주문을 수동으로 승인하려면 직접 만든 검토 상태를 선택하세요.
DPO payment on hold status: 검토가 필요한 결제의 상태입니다. 금액 또는 통화 불일치, 승인만 된 결제, 과납 또는 미납 거래, 또는 고객이 취소한 뒤에 들어온 결제가 해당합니다. 주문 기록의 메모에 이유가 표시됩니다. 기본값: 보류 중. OpenCart에는 On hold 상태가 없기 때문입니다. System > Localisation > Order Statuses에서 직접 상태를 만들고 여기에서 선택할 수 있습니다.
Cancelled order status: 결제되지 않은 DPO Pay 주문을 이 상태로 설정하면, 열려 있는 DPO 결제도 DPO에서 취소됩니다. 기본값: 취소됨.
고급
Logging: API 호출과 알림을 OpenCart 로그 폴더(storage/logs)의 dpo_p_debug.log.php에 기록합니다. 이 파일은 웹에서 열 수 없으며, 5 MB에 도달하면 dpo_p_debug.old.log.php로 옮겨집니다. 오류는 항상 기록됩니다. 토큰은 마스킹되며, 고객 정보는 기록되지 않습니다. 기본값: 끔.
Log: 로그의 크기와 최신 항목을 표시합니다. Clear log를 클릭하면 로그가 비워집니다.
Delete data: 켜져 있으면 확장 기능을 제거할 때 게이트웨이 설정과 로그가 삭제됩니다. 주문용으로 저장된 DPO 데이터는 항상 유지됩니다. 이 옵션 없이 제거하면 데이터는 절대 삭제되지 않습니다. 기본값: 끔.
가져오기 / 내보내기
Export: Download JSON은 설정을 JSON 파일로 저장합니다. Company Token은 내보내지 않습니다.
Import: 이전에 내보낸 JSON을 붙여 넣고 Import를 클릭하면 설정이 복원됩니다. 저장된 Company Token은 유지됩니다.
체크아웃
Payment Method 단계에서 고객이 결제 수단을 선택합니다(기본값은 DPO Pay). Confirm Order 단계에서 고객은 설명과 함께 You will be redirected to the secure DPO Pay payment page.(안전한 DPO Pay 결제 페이지로 이동합니다.)라는 안내를 봅니다. OpenCart는 이 단계에서 상태 없이 주문을 만듭니다. 고객이 Confirm Order를 클릭하면, 확장 기능은 주문 번호와 쇼핑몰 이름을 설명으로 하여 주문 통화로 주문 합계에 대한 DPO 거래를 만들고, 고객을 DPO 결제 페이지로 보냅니다. 고객의 이름, 이메일, 전화번호, 결제 주소가 전달되어 페이지가 미리 채워집니다. 거기서 고객은 귀하의 DPO 계정에서 활성화된 어떤 방법으로든 결제합니다. 결제 링크는 5시간 동안 유효합니다. OpenCart 4에서는 고객이 결제 수단 블록의 Choose 버튼을 눌러 Payment method options 창에서 결제 수단을 고르고, 체크아웃 페이지 하단의 Confirm Order를 클릭합니다. 쇼핑몰이 결제 주소를 요청하지 않는 경우(OpenCart 4 기본값), 대신 배송 주소가 전달됩니다.
결제 후 고객은 쇼핑몰로 돌아옵니다. 주문은 DPO가 확인한 후에만 결제 완료로 표시됩니다. 확장 기능은 고객이 돌아올 때, 푸시 알림이 도착할 때, 그리고 예약된 재확인 때 DPO에 거래 결과를 요청합니다. 그 후 주문은 일반적인 OpenCart 방식으로 상태를 얻고, 일반 주문 이메일과 재고 업데이트가 이루어지며, 고객은 OpenCart 주문 완료 페이지를 봅니다. OpenCart 4에서는 DPO가 고객을 쇼핑몰로 돌려보낼 때 브라우저가 쇼핑몰 세션을 보내지 않으므로, 확장 기능이 먼저 짧은 페이지를 표시하고 쇼핑몰에서 같은 복귀 주소를 다시 엽니다. 이렇게 하면 고객의 장바구니와 로그인 상태가 유지됩니다.
결제가 확인되지 않으면 고객은 다음 메시지 중 하나와 함께(OpenCart 4에서는 체크아웃 페이지 위에 표시됩니다) 체크아웃으로 돌아갑니다. 장바구니는 유지됩니다.
고객이 DPO 페이지에서 쇼핑몰로 돌아가는 버튼을 클릭하면, 먼저 거래를 확인합니다. 결제되었다면 고객은 성공 페이지를 봅니다. 그렇지 않으면 DPO에서 거래가 취소되고, 고객은 장바구니와 함께 체크아웃으로 돌아갑니다.
OpenCart 3은 Confirm Order 단계가 표시될 때마다 새 주문을 만들고, OpenCart 4는 체크아웃 주문 하나를 유지하면서 업데이트하며, 새 시도는 같은 주문의 새 DPO 거래가 됩니다. 새 결제 전에, 해당 주문과 같은 장바구니의 이전 주문들에 속한 열린 DPO 거래를 확인합니다. 그중 하나가 결제되었다면 그 결제가 확인되고, 고객은 두 번째 청구 없이 성공 페이지로 이동합니다. 아직 처리 중인 거래가 있으면 고객은 이 주문에 대한 이전 결제가 아직 DPO에서 처리 중입니다. 몇 분 기다린 후 다시 시도해 주세요.를 봅니다. 그렇지 않으면 오래된 거래는 DPO에서 취소되고 새 거래가 만들어집니다.
OpenCart 4는 성공 페이지가 표시될 때까지 주문을 체크아웃에 유지합니다. 그 사이에 주문이 닫힌 경우(예: 취소 또는 환불), Confirm Order 또는 DPO에서의 복귀는 고객을 체크아웃으로 돌려보냅니다. 결제가 없었던 주문은 The payment was declined or cancelled. Please try again or choose another payment method., 결제가 있었던 주문은 Your previous order was closed by the store. Please confirm the order again: the cart will be paid with a new order.와 함께 돌아갑니다. 주문이 이미 결제되었고 그 뒤 장바구니(상품 또는 수량)가 변경되었다면 메시지는 Your previous order is already paid. Please confirm the order again: the cart will be paid with a new order.입니다. 어느 경우든 다음 Confirm Order에서 그 장바구니의 새 주문에 대한 결제가 진행됩니다.
DPO가 결제를 시작할 수 없으면 고객은 Confirm Order 단계에 머물며, 버튼 위에 짧은 메시지가 표시됩니다. 메시지는 DPO 오류 코드에 따라 선택되며, 예를 들어 DPO Pay는 이 주문의 통화를 지원하지 않습니다. 다른 결제 수단을 선택해 주세요. 또는 금액이 DPO Pay에서 허용하는 한도를 초과합니다. 다른 결제 수단을 선택하거나 문의해 주세요.입니다. 그 밖의 오류는 DPO Pay를 일시적으로 사용할 수 없습니다. 다시 시도하거나 다른 결제 수단을 선택해 주세요.를 표시합니다. 기술적인 이유는 로그에 기록됩니다.
쇼핑몰이 점검 모드인 동안에도 푸시 알림과 cron URL은 작동합니다. OpenCart 3은 결제 확장 기능의 요청을 통과시키고, OpenCart 4에서는 확장 기능이 푸시 알림, cron URL, 고객의 복귀를 통과시키는 시작 액션(startup action)을 추가합니다. 결제 수단을 끄더라도 이미 시작된 결제는 확인됩니다.
이 확장 기능은 DPO 페이지에서만 일회성 결제를 처리합니다. 쇼핑몰에서의 환불, 저장된 카드, 구독이나 정기 결제, 쇼핑몰의 카드 입력란, 승인만 된 결제의 캡처는 지원하지 않습니다.
주문
주문 상태
상태 없음(누락된 주문): 고객이 DPO로 보내졌지만 결제하지 않았거나, 결제가 거부 또는 취소되었거나, DPO가 아직 결제를 확인하지 않은 경우입니다. Sales > Orders에서 이러한 주문은 Order Status 필터를 Missing Orders로 설정한 경우에만 표시됩니다.
Successful payment status(기본값 처리중): 결제가 검증되었습니다. 주문 기록의 메모에는 금액, 통화, 승인 코드, DPO 거래 토큰의 앞부분이 표시됩니다.
DPO payment on hold status(기본값 보류 중): DPO가 결제를 확인했지만, 금액 또는 통화가 주문과 다르거나, 결제가 승인만 되고 캡처되지 않았거나, 거래가 과납 또는 미납이거나, 고객이 결제를 취소했거나 주문이 이미 취소되었습니다. 메모에 이유가 설명되어 있습니다. DPO 포털에서 거래를 확인하세요. 승인만 된 결제는 DPO 포털에서 캡처하거나 무효화한 다음 주문 상태를 업데이트하세요.
Cancelled order status(기본값 취소됨): 확장 기능의 결제되지 않은 주문(예: 승인만 된 결제 때문에 보류된 주문)을 이 상태로 설정하면, 열려 있는 DPO 거래도 DPO에서 취소됩니다.
이후에 도착한 거부 결과는 주문을 바꾸지 않으며, 이전 거래의 결과가 현재 시도를 실패시키지도 않습니다. DPO가 이미 결제된 주문에 대해 두 번째 성공 결제를 확인하면, 주문은 바뀌지 않고 중복 결제 가능성에 대한 메모가 추가되어 DPO 포털에서 환불할 수 있습니다. 같은 장바구니(같은 고객 세션과 장바구니 내용)가 다른 주문으로 다시 결제되면(예: 두 번째 브라우저 탭에서), 결제된 주문에도 같은 종류의 메모가 추가됩니다. 그 다른 주문은 상태를 얻지 않습니다. 다른 상태(예: 환불됨)로 옮긴 주문은 다시 열리지 않으며, 늦게 도착한 결제는 메모만 추가합니다.
메모는 고객이 보지 않는 주문의 History 항목입니다. 확장 기능은 주문 페이지에 탭을 두지 않습니다.
환불
이 버전에서는 쇼핑몰에서의 환불을 지원하지 않습니다. DPO 가맹점 포털에서 결제를 환불한 다음, OpenCart에서 주문 상태를 변경하세요.
라이선스 키
이 확장 기능은 vibefox.net에서 받은 VibeFox 라이선스 키로 작동합니다. 라이선스 블록 License — VibeFox DPO Pay Gateway는 Extensions > Extensions > Payments > VibeFox DPO Pay Gateway > Edit의 첫 번째 블록이며, 설정 위에 있습니다. 키를 License key에 붙여 넣고 Activate를 클릭합니다. 그러면 블록에 마스킹된 키, 상태(예: 라이선스가 유효한 날짜와 도메인), 그리고 상태를 다시 확인하는 Check now, 다른 키를 입력하는 Change key, 이 쇼핑몰에서 키를 제거하는 Remove key 버튼이 표시됩니다. 그 아래에는 Product: opencart-payment-dpo 줄과 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 계정에서 슬롯을 해제하세요.
활성 키가 없으면 체크아웃에서 고객에게 DPO Pay가 표시되지 않습니다. 그래도 결제가 시작되면 고객은 This payment method is not available. Please choose another one.(이 결제 수단은 사용할 수 없습니다. 다른 결제 수단을 선택해 주세요.)를 봅니다. 같은 브라우저에서 관리자 페이지에 로그인한 관리자 사용자에게는 쇼핑몰에서 결제 수단이 (unlicensed — visible to admins only)(라이선스 없음 — 관리자에게만 표시)로 표시되므로, 키를 구매하기 전에 확장 기능을 설정하고 테스트할 수 있습니다. OpenCart 4에서는 이 미리 보기를 사용할 수 없습니다. 쇼핑몰은 관리자 로그인을 인식하지 못하므로, 활성 키가 없으면 결제 수단은 모든 사용자에게 숨겨집니다. Edit 페이지를 한 번 열면 관리자 Dashboard에 알림이 나타납니다. ×로 닫으면 7일 동안 숨겨집니다. 기존 주문은 영향을 받지 않습니다. 이미 시작된 결제는 여전히 확인됩니다.
라이선스가 만료되어도 확장 기능은 계속 작동하지만, 업데이트와 지원에는 갱신이 필요합니다. 관리자 Dashboard 또는 Edit 페이지를 열면 상태가 자동으로 다시 확인됩니다. 키를 입력한 후 처음 14일 동안은 하루에 한 번, 그 이후에는 일주일에 한 번 확인합니다. cron 작업은 필요하지 않습니다. 확장 기능을 제거하면 라이선스 키와 라이선스 상태는 항상 삭제됩니다.
문제 해결
DPO Pay가 체크아웃에 나타나지 않음: 라이선스가 활성 상태인지, Enable/Disable이 켜져 있는지, 선택한 모드의 Company Token과 Service Type이 설정되어 있는지 확인하세요. 테스트 모드에서는 테스트 필드, 그 밖에는 운영 필드입니다. 누락된 경우 설정 페이지에 경고가 표시됩니다. 또한 결제 주소가 선택한 Geo Zone에 있는지, 주문이 설정의 Total에 도달했는지 확인하세요.
결제는 완료되었지만 주문이 상태 없이 남아 있음: 귀하의 DPO 계정에 푸시 알림 URL이 설정되어 있지 않을 가능성이 높고, 고객도 쇼핑몰로 돌아오지 않았습니다. DPO 지원팀에 설정 페이지에 표시된 URL을 설정해 달라고 요청하고, cron이 재확인 URL을 15분마다 호출하는지 확인하세요. Logging을 켜고 확장 기능 페이지의 Log 필드를 확인하세요.
알림이 Unknown transaction으로 응답함: 트랜잭션 토큰이 이 쇼핑몰의 DPO Pay 결제에 속하지 않습니다. 예를 들어 같은 DPO 계정의 다른 쇼핑몰에서 온 푸시일 수 있습니다.
푸시 알림이 Verification failed로 응답함: 결제를 확인하기 위해 DPO에 연결할 수 없었거나, 같은 순간 다른 요청이 주문을 처리하고 있었거나, 주문 상태를 설정할 수 없었습니다. DPO는 알림을 다시 보내며, 예약된 재확인도 주문을 확인합니다. 이유는 로그에 있습니다.
푸시 URL이 브라우저에서 Method not allowed를 표시함: 정상입니다. 이 URL은 DPO의 요청만 받습니다.
cron URL이 Forbidden으로 응답함: URL의 토큰이 잘못되었습니다. 설정 페이지에서 URL을 다시 복사하세요. 정상적인 호출은 OK checked=와 확인한 결제 수를 응답합니다.
Service Type이 저장되지 않음: DPO에서 받은 숫자 Service Type ID여야 합니다.
고객이 This payment method is not available. Please reload the checkout page.:를 봄: 체크아웃 세션이 더 이상 주문과 맞지 않거나, 그 사이에 결제 수단이 꺼졌습니다. 고객은 체크아웃을 새로 고칩니다.
고객이 DPO Pay is temporarily unavailable를 봄: DPO가 거래 생성을 거부했습니다. 예를 들어 잘못된 Company Token 또는 Service Type이거나, 다른 모드의 토큰을 사용한 경우입니다. DPO 결과 코드는 로그에 있습니다.
고객이 DPO는 소수점 이하 최대 2자리까지만 허용한다는 메시지를 봄: 주문 합계가 소수점 이하 3자리입니다. DPO는 이런 금액을 청구할 수 없습니다.
고객이 This order has already been paid with DPO Pay를 봄: DPO가 같은 주문에 대한 두 번째 결제를 거부했습니다. DPO 포털에서 결제를, OpenCart에서 주문을 확인하세요.
결제 후 주문이 검토 상태임: 주문 History의 메모를 읽고(주문 상태 참조), 그다음 DPO 포털에서 거래를 검토하세요.
개발자용: 확장 기능은 OpenCart 이벤트 wcp_dpo_pay_customer_data(DPO에 전송되는 고객 데이터)와 wcp_dpo_pay_payment_time_limit(결제 제한 시간, 시간 단위)을 트리거합니다.
제거
Extensions > Extensions로 이동하여 유형으로 Payments를 선택하고, VibeFox DPO Pay Gateway 옆의 Uninstall(빨간색 − 버튼)을 클릭합니다. 이 확장 기능의 라이선스 키와 라이선스 상태는 항상 제거됩니다. OpenCart는 확장 기능 자체의 설정을 항상 제거합니다: Enable/Disable, Sort Order, Geo Zone, Total, 그리고 Orders 섹션의 주문 상태들이며, 이는 재설치 시 기본값으로 돌아갑니다. 확장 기능의 OpenCart 이벤트도 제거됩니다(OpenCart 4에서는 이벤트와 함께, 유지 보수 모드에서도 DPO와 cron을 통과시키는 시작 액션도 제거됩니다). Delete data가 켜져 있으면 나머지 게이트웨이 설정(제목, 설명, 테스트 모드, Company Token, Service Type, 로깅)과 로그가 삭제되며, 재설치하면 새 cron URL이 생성됩니다. 꺼져 있으면 나중에 재설치할 때를 위해 유지됩니다. 주문용으로 저장된 DPO 데이터는 항상 유지되므로, 재설치 후에도 늦은 알림과 이전 결제의 재확인이 계속 작동합니다. 기존 주문은 결제 메모를 유지합니다.
OpenCart 4에서 확장 기능의 파일까지 제거하려면, 제거 후 Extensions > Installer로 이동하여 설치된 확장 기능 목록에서 VibeFox DPO Pay Gateway 옆의 Uninstall(주황색 − 버튼)을 클릭한 다음, Delete(빨간색 휴지통 버튼)를 클릭하여 업로드한 패키지를 삭제하십시오.
DPO Pay는 각 소유자의 상표입니다. 이 확장 기능은 DPO Pay와 제휴 관계가 없으며 DPO Pay의 승인을 받지 않았습니다.
