VibeFox IntaSend for PrestaShop — 도움말
요구 사항
PrestaShop: 8.0 ~ 9.x.
PHP: cURL 확장 모듈이 포함된 8.0 이상. 이전 버전의 PHP이거나 cURL이 없으면 모듈이 설치되지 않습니다.
HTTPS: IntaSend는 운영 결제와 웹훅에 HTTPS를 요구합니다. 운영 모드가 켜져 있는데 쇼핑몰이 HTTPS를 사용하지 않으면 설정 페이지에 경고가 표시됩니다.
IntaSend 계정: IntaSend 계정의 공개 키(ISPubKey_...)와 비밀 키(ISSecretKey_...)가 필요합니다. 샌드박스용, 운영용 또는 둘 다에 해당하는 키를 준비하고, IntaSend 대시보드에서 챌린지 문구가 있는 웹훅을 설정해야 합니다(설정 참조). 공개 키는 체크아웃을 생성하는 데 사용됩니다. 비밀 키는 결제 상태를 IntaSend에 조회하기 위해 서버에서만 사용됩니다.
쇼핑몰 통화: KES, USD, EUR, GBP, UGX, TZS, NGN, GHS, XAF 또는 XOF. 그 밖의 통화에서는 결제 수단이 숨겨집니다.
VibeFox 라이선스 키: vibefox.net에서 구매합니다. 키 하나는 도메인 하나에서만 작동합니다.
설치
1. 백오피스에서 Modules > Module Manager로 이동하여 Upload a module을 클릭합니다. 모듈의 ZIP 파일을 선택합니다.
2. 업로드가 끝나면 Configure를 클릭하거나, 나중에 모듈 목록에서 VibeFox IntaSend Pay Gateway를 찾아 Configure를 클릭합니다.
3. Configure 페이지 상단의 라이선스 블록에서 License key에 VibeFox 라이선스 키를 입력하고 Activate를 클릭합니다(라이선스 키 참조).
4. IntaSend 샌드박스 및/또는 운영 키를 붙여넣고, IntaSend 대시보드에 웹훅을 추가한 다음, 같은 챌린지를 모듈에 입력합니다(설정 참조).
5. Enable/Disable을 켜고 Save를 클릭합니다. Test mode를 켠 상태에서 결제를 테스트한 다음, 실제 결제를 받으려면 Test mode를 끕니다.
설치 시 모듈은 주문 상태 IntaSend payment on hold를 생성합니다. PrestaShop은 모든 통화, 국가, 고객 그룹에 대해 새 결제 모듈을 제공합니다. Payment > Preferences에서 이를 제한할 수 있습니다.
설정
모든 설정은 모듈 페이지에 있습니다: Modules > Module Manager > VibeFox IntaSend Pay Gateway > Configure. 각 섹션에는 전체 페이지를 저장하는 자체 Save 버튼이 있습니다. 입력란 위의 상태 상자에는 Test mode: IntaSend sandbox, no real money is charged. 또는 Live mode: real payments are accepted.가 표시됩니다. 또한 현재 모드의 키가 없거나 잘못된 경우(이때 체크아웃에서 결제 수단이 숨겨짐), 쇼핑몰의 기본 통화가 지원되지 않는 경우, 웹훅 챌린지가 설정되지 않은 경우, HTTPS 없이 운영 모드를 사용하는 경우에도 경고합니다. 붙여넣은 키는 저장할 때 앞뒤 공백이 제거됩니다.
IntaSend
Enable/Disable: Enable IntaSend는 결제 수단을 켜거나 끕니다. 기본값: 꺼짐.
Title: 고객이 체크아웃에서 보는 결제 수단 이름입니다. 주문에 저장되는 결제 수단 이름이기도 합니다. 기본값: IntaSend (M-Pesa, card). 필수.
Description: 체크아웃에서 결제 수단 아래에 표시되는 문구입니다. 기본값: You will be redirected to IntaSend to pay securely with M-Pesa, card or another available method.
API 키
IntaSend 대시보드의 Settings > API Keys에서 키를 가져옵니다. 샌드박스 대시보드와 운영 대시보드에서 각각 가져오면 됩니다(이 섹션에 두 대시보드로 가는 링크가 있습니다). 테스트 모드는 샌드박스 키와 샌드박스 API를, 운영 모드는 운영 키와 운영 API를 사용합니다. 모듈은 공개 키가 ISPubKey_로 시작하는지, 비밀 키가 ISSecretKey_로 시작하는지, 그리고 키가 현재 모드에 속하는지 확인합니다. 샌드박스 키에는 _test가, 운영 키에는 _live가 포함됩니다. 그렇지 않으면 결제 수단이 숨겨지고 상태 상자에 그 이유가 표시됩니다.
Test mode: IntaSend 샌드박스를 사용하며 실제 금액은 청구되지 않습니다. 기본값: 켜짐. 운영 키로 실제 결제를 받으려면 끄십시오. Test mode가 켜져 있는 동안 체크아웃의 결제 수단 아래에 TEST MODE - IntaSend sandbox, no real money is charged.가 표시됩니다.
Sandbox publishable key: ISPubKey_test로 시작합니다. 체크아웃을 생성할 때 귀사의 사업자를 식별합니다.
Sandbox secret key: ISSecretKey_test로 시작합니다. Payment Status API로 결제를 확인하기 위해 서버에서만 사용합니다.
Live publishable key: ISPubKey_live로 시작합니다.
Live secret key: ISSecretKey_live로 시작합니다. 결제를 확인하기 위해 서버에서만 사용합니다.
저장된 비밀 키와 웹훅 챌린지는 다시 표시되지 않습니다. 입력란은 비어 있으며 Saved — leave empty to keep it.가 표시됩니다. 값을 변경하고 싶을 때만 새 값을 입력하십시오.
웹훅
웹훅은 고객이 쇼핑몰로 돌아오지 않더라도(브라우저를 닫음, M-Pesa 확인이 늦어짐) 결제가 이루어졌다는 사실을 쇼핑몰에 알려 줍니다. IntaSend 대시보드에서 샌드박스와 운영 각각에 대해 Webhooks를 열고, 이 섹션의 Webhook URL에 표시된 URL을 추가하십시오. 친숙한 URL을 사용할 경우 URL은 https://your-shop/module/wcp_intasend_pay/webhook와 같은 형태이며, /en/ 같은 언어 코드가 붙을 수도 있습니다. 설정에 표시된 URL을 정확히 그대로 복사하십시오. 그곳에 챌린지 문구를 입력하고, 모듈에도 같은 문구를 입력하십시오. 샌드박스와 운영에는 동일한 챌린지를 사용하십시오.
Webhook challenge: IntaSend 대시보드에 있는 것과 같은 챌린지입니다. 다른 챌린지를 사용하는 웹훅은 거부됩니다. 이 입력란이 비어 있는 동안에는 웹훅이 처리되지 않으며, 결제는 고객이 쇼핑몰로 돌아왔을 때만 확인됩니다. 이러한 웹훅에는 오류가 아니라 Ignored 응답이 전송됩니다. 그래야 챌린지를 입력하기 전에 IntaSend가 웹훅을 비활성화하지 않습니다.
저장된 비밀 정보 지우기: Sandbox secret key, Live secret key 또는 Webhook challenge를 선택하고 Save를 클릭하면 삭제됩니다. 입력란을 비워 두면 저장된 값이 유지됩니다.
모듈은 IntaSend가 보고하는 다음 결제 상태에 반응합니다. 무엇인가를 변경하기 전에 매번 Payment Status API에 실제 상태를 조회합니다:
이 쇼핑몰의 체크아웃 결제가 아닌 알림, 예를 들어 같은 IntaSend 계정의 결제 링크나 송금 이벤트는 Ignored로 응답됩니다. 그래야 IntaSend가 웹훅을 비활성화하지 않습니다.
고급
Debug log: 체크아웃, 복귀, 웹훅 이벤트를 모듈 폴더의 logs/intasend_p_debug.log.php에 기록합니다. 이 파일은 웹에서 열 수 없습니다. 오류와 경고는 항상 기록됩니다. API 키와 고객 데이터는 절대 기록되지 않습니다. 기본값: 꺼짐.
Log: 로그의 크기와 최신 항목을 보여 줍니다. Clear log를 클릭하면 비워집니다.
Delete data on uninstall: 켜면 모듈을 제거할 때 게이트웨이 설정과 로그가 삭제됩니다. 주문에 저장된 IntaSend 참조 정보는 결제 내역이므로 항상 보존됩니다. 기본값: 꺼짐.
체크아웃
결제 단계에서 고객은 결제 수단(기본값 IntaSend (M-Pesa, card))을 선택하고 확인합니다. 모듈은 장바구니 금액과 장바구니 통화로 IntaSend 체크아웃을 생성하고, 고객을 IntaSend가 호스팅하는 체크아웃 페이지로 보냅니다. 고객은 그곳에서 M-Pesa, 카드 또는 IntaSend 계정에서 활성화된 다른 방법으로 결제합니다. 고객의 이메일과 청구지 주소의 이름, 주소, 전화번호, 국가는 IntaSend의 필드 규칙에 맞는 경우 IntaSend에 전달됩니다. 비어 있거나 적합하지 않은 필드는 제외됩니다. 이 시점에는 아직 주문이 존재하지 않습니다.
결제 후 고객은 쇼핑몰로 돌아옵니다. 주문은 IntaSend가 확인한 후에만 결제 완료로 표시됩니다. 모듈은 고객이 돌아올 때와 웹훅이 도착할 때 Payment Status API를 조회합니다. 그런 다음 주문이 생성되고 고객에게 표준 주문 확인 페이지가 표시됩니다. 주문이 보류되었다면 페이지에 Your payment was received and your order is being reviewed. We will contact you if anything is needed.가 표시됩니다. 결제가 아직 확인되지 않았거나 그 시점에 IntaSend에 연결할 수 없으면, Payment confirmation 페이지에 Your payment is being confirmed by IntaSend (M-Pesa confirmations can take a minute). You will receive an e-mail as soon as it is confirmed.가 표시되고, Check again과 Back to checkout 버튼이 나타납니다. 웹훅은 IntaSend가 결제를 확인하는 즉시 주문을 생성합니다.
결제가 실패한 경우 고객은 The payment was not successful. Please try again or choose another payment method.(IntaSend가 사유를 알려 준 경우 그 사유 포함) 메시지와 함께 체크아웃으로 돌아갑니다. 고객이 결제하지 않고 돌아온 경우 메시지는 The payment was not completed. Please try again or choose another payment method.입니다. 장바구니는 유지되며 고객은 다시 결제할 수 있습니다. 각 시도에는 고유한 IntaSend 참조 번호가 부여됩니다.
IntaSend가 결제를 시작할 수 없으면 고객은 체크아웃에 머무르며 IntaSend could not start the payment:와 IntaSend가 알려 준 사유, 또는 IntaSend is temporarily unavailable. Please try again in a moment or choose another payment method. 메시지를 보게 됩니다. 자세한 내용은 로그에 기록됩니다. 합계가 0인 장바구니는 IntaSend로 결제할 수 없습니다.
웹훅은 쇼핑몰이 유지 보수 모드일 때도 작동하며, 쇼핑몰의 국가 제한의 영향을 받지 않습니다. 친숙한 URL이 꺼져 있으면, IntaSend가 복귀 주소의 일부 문자를 받아들이지 않기 때문에 고객은 쇼핑몰의 홈페이지를 통해 돌아옵니다.
모듈은 일회성 결제만 받습니다. 환불은 쇼핑몰에서 IntaSend로 전송되지 않으며, 저장된 카드, 구독, 인라인(팝업) 결제 양식은 지원하지 않습니다. 같은 장바구니의 이전 체크아웃 링크는 IntaSend에서 취소할 수 없습니다.
주문
주문 상태
No order yet: 고객이 IntaSend로 이동했지만 아직 결제하지 않았거나, IntaSend가 아직 결제를 확인하지 않았습니다. 장바구니만 존재합니다.
Payment accepted: 결제가 확인되었습니다. 결제는 IntaSend 인보이스 ID를 거래 ID로 하여 기록되며, 메모에는 인보이스, IntaSend의 결제 수단, 금액, 모드(샌드박스 또는 운영), 확인 방법(웹훅 또는 고객의 복귀)이 표시됩니다.
IntaSend payment on hold: IntaSend가 장바구니 합계와 다른 금액이나 통화, 부분 결제, 또는 주문이 취소된 후 도착한 결제를 보고했습니다. 메모에 그 내용이 설명되며, IntaSend가 받은 금액이 주문 통화인 경우 결제로 기록됩니다. IntaSend 대시보드에서 결제를 확인한 후 주문을 처리하거나 결제를 환불하십시오. 나중에 올바른 결제가 도착하면 주문은 Payment accepted로 바뀝니다.
이미 결제 완료된 주문에 두 번째 결제가 들어오면 주문은 변경되지 않습니다. 중복된 결제라면 메모가 IntaSend 대시보드에서 환불하라고 안내합니다. 환불된 주문에 대한 결제는 메모만 추가하며 주문을 다시 열지 않습니다.
IntaSend 결제 블록
주문 페이지에는 IntaSend payment 블록이 표시되며, 여기에는 주문 장바구니의 모든 체크아웃 시도(날짜, 참조, IntaSend 체크아웃, 환경, 금액, 인보이스 및 결과, 실패 사유 포함)와 Invoices processed(인보이스, IntaSend 상태, 금액 및 결과)가 나열됩니다. 이 블록은 읽기 전용입니다.
환불
환불은 쇼핑몰에서 IntaSend로 전송되지 않습니다. IntaSend 대시보드에서 결제를 환불하고, PrestaShop에 환불을 수동으로 기록하십시오.
라이선스 키
이 모듈은 vibefox.net에서 받은 VibeFox 라이선스 키로 작동합니다. 라이선스 블록 License — VibeFox IntaSend Pay Gateway은 Modules > Module Manager > VibeFox IntaSend Pay Gateway > Configure의 첫 번째 블록이며 설정 위에 있습니다. 키를 License key에 입력하고 Activate를 클릭하십시오. 그 후 블록에는 마스킹된 키, 상태(예: 라이선스 유효 기간 종료일과 도메인), 그리고 다음 버튼이 표시됩니다: 상태를 다시 확인하는 Check now, 다른 키를 입력하는 Change key, 이 쇼핑몰에서 키를 제거하는 Remove key. 그 아래에는 Product: presta-payment-intasend 줄과 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 계정에서 슬롯을 해제하십시오.
활성 키가 없으면 체크아웃에서 고객에게 IntaSend가 표시되지 않습니다. 그래도 결제가 시작되면 고객에게 This payment method is not available. Please choose another one.가 표시됩니다. PrestaShop 스토어프런트는 백오피스에 로그인했는지 알지 못하므로, 결제 수단은 귀하에게도 숨겨집니다. 키를 구매하기 전에 모듈을 설정할 수는 있지만, 체크아웃에서 테스트할 수는 없습니다. Modules > Module Manager의 Alerts 탭에 알림이 나타납니다. 기존 주문은 영향을 받지 않습니다. 이미 시작된 결제는 계속 확인됩니다.
라이선스가 만료되면 모듈은 계속 작동하지만 업데이트와 지원에는 갱신이 필요합니다. 백오피스에서 작업하는 동안 상태는 자동으로 다시 확인됩니다. 키를 입력한 후 처음 14일 동안은 하루에 한 번, 그다음부터는 일주일에 한 번입니다. cron 작업은 필요하지 않습니다. 모듈을 제거하거나 재설정하면 라이선스 키와 라이선스 상태는 항상 삭제됩니다.
문제 해결
체크아웃에 IntaSend가 나타나지 않음: 라이선스가 활성 상태인지, Enable/Disable이 켜져 있는지, 현재 모드의 키가 입력되어 있고 그 모드에 속하는지 확인하십시오. 테스트 모드에서는 샌드박스 키(_test 포함), 운영 모드에서는 운영 키(_live 포함)여야 합니다. 장바구니 통화는 지원되어야 합니다. 설정 페이지 상단의 상태 상자에 무엇이 잘못되었는지 표시됩니다. Payment > Preferences에서 모듈이 장바구니 통화, 고객의 국가, 고객 그룹에 대해 허용되어 있는지 확인하십시오.
결제는 완료되었는데 주문이 생성되지 않음: M-Pesa 확인에는 잠시 시간이 걸릴 수 있습니다. 웹훅은 IntaSend가 최종 상태를 보고하면 주문을 생성합니다. 사용하는 모드(샌드박스 또는 운영)의 IntaSend 대시보드에 있는 웹훅 URL이 Webhook URL에 표시된 것과 정확히 같은지, 그리고 그곳의 챌린지가 Webhook challenge와 같은지 확인하십시오. 고객이 쇼핑몰로 돌아오거나 Check again을 클릭해도 주문이 생성됩니다.
웹훅이 Ignored: webhook challenge not configured로 응답함: Webhook challenge가 비어 있습니다. IntaSend 대시보드의 챌린지를 입력하십시오.
웹훅이 Invalid challenge로 응답함: IntaSend와 모듈의 챌린지가 다르거나, 웹훅에 챌린지가 없습니다.
웹훅이 Verification unavailable, retry later 또는 Busy, retry later로 응답함: 그 시점에 IntaSend에 연결할 수 없었거나, 장바구니가 다른 요청에 의해 확인 중이었거나, 주문을 생성할 수 없었음(예: 모듈이 비활성화됨)을 뜻합니다. IntaSend는 웹훅을 다시 시도합니다. 사유는 로그에 있습니다.
웹훅이 Invoice not verified 또는 Invoice does not match the reference로 응답함: IntaSend가 이 인보이스가 장바구니에 속한다는 것을 확인하지 못했습니다. 아무것도 변경되지 않습니다.
브라우저에서 웹훅 URL이 Method not allowed를 표시함: 정상입니다. 이 URL은 IntaSend의 요청만 받아들입니다.
주문이 IntaSend payment on hold 상태임: 주문 메모를 확인하십시오. 결제된 금액이나 통화가 장바구니와 달랐거나, 부분 결제였거나, 주문이 취소된 후에 도착한 것입니다. IntaSend 대시보드에서 결제를 확인하십시오.
고객이 IntaSend를 선택할 때 오류를 봄: 모듈 페이지의 Log 필드를 확인하십시오(자세한 내용은 Debug log를 켜서 확인). 현재 모드의 키가 잘못되었다면 고객에게 IntaSend is not available at the moment. Please choose another payment method or contact the store.가 표시됩니다. 로그에 복귀 URL에 IntaSend가 받아들이지 않는 문자가 있다고 나오면, 원인은 쇼핑몰 주소입니다.
고객에게 We could not match this payment to an order가 표시됨: 복귀 링크가 변경되었거나 다른 장바구니에 속합니다. 고객이 결제했다면 웹훅이 그래도 주문을 생성합니다.
제거
Modules > Module Manager로 이동하여 VibeFox IntaSend Pay Gateway 옆의 메뉴를 열고 Uninstall을 선택하십시오. 이 모듈의 라이선스 키와 라이선스 상태는 항상 삭제됩니다. Delete data on uninstall이 켜져 있으면 게이트웨이 설정과 로그가 삭제됩니다. 꺼져 있으면 나중에 다시 설치할 수 있도록 모든 설정이 유지됩니다. 주문의 IntaSend 체크아웃 시도와 인보이스, 그리고 주문 상태 IntaSend payment on hold는 항상 보존됩니다. 기존 주문은 결제 메모와 거래 ID를 유지합니다.
IntaSend는 각 소유자의 상표입니다. 이 모듈은 IntaSend와 제휴하거나 IntaSend의 승인을 받지 않았습니다.
