뒤로

VibeFox Moyasar for PrestaShop — 도움말

요구 사항

PrestaShop: 8.0 ~ 9.x.

PHP: 8.0 이상. 모듈은 이전 PHP 버전에는 설치되지 않습니다.

통화: 장바구니 통화는 SAR, AED, USD, EUR, KWD, BHD 또는 OMR이어야 합니다. 그 밖의 통화에서는 체크아웃에서 이 결제 수단이 표시되지 않습니다.

Moyasar 계정: Moyasar 계정의 비밀 API 키(테스트 및 실서비스)가 필요합니다. 비밀 키만 사용됩니다. 결제는 Moyasar 페이지에서 이루어지므로 공개 키는 필요하지 않습니다. Moyasar Dashboard에서 웹훅 설정을 권장합니다(설정 항목 참조).

VibeFox 라이선스 키: vibefox.net에서 구매합니다. 키 하나는 도메인 하나에서 작동합니다.

설치

1. 관리자 페이지에서 Modules > Module Manager로 이동한 뒤 Upload a module을 클릭합니다. 모듈의 ZIP 파일을 선택합니다.

2. 업로드가 끝나면 Configure를 클릭합니다. 나중에 모듈 목록에서 VibeFox Moyasar Payment Gateway를 찾아 Configure를 클릭해도 됩니다.

3. Configure 페이지 상단의 라이선스 블록 License key 항목에 VibeFox 라이선스 키를 입력하고 Activate를 클릭합니다 (라이선스 키 항목 참조).

4. Moyasar 비밀 키를 붙여 넣고 Save를 클릭합니다. Moyasar Dashboard에서 웹훅을 설정합니다(설정 항목 참조).

5. Enable/Disable을 켜고 Save를 클릭합니다. 테스트 모드에서 테스트 주문을 한 뒤 Test mode를 끕니다.

설치 시 모듈은 두 가지 주문 상태를 만듭니다: Awaiting Moyasar payment와 Moyasar payment on hold. PrestaShop은 모든 통화, 국가 및 고객 그룹에 대해 새 결제 모듈을 제공합니다. Payment > Preferences에서 이를 제한할 수 있습니다.

설정

모든 설정은 모듈 페이지에 있습니다: Modules > Module Manager > VibeFox Moyasar Payment Gateway > Configure. 각 섹션에는 전체 페이지를 저장하는 자체 Save 버튼이 있습니다. 필드 위에서 페이지는 현재 모드에 비밀 키가 없을 때(이 경우 체크아웃에서 결제 수단이 숨겨짐), 저장된 웹훅 공유 비밀이 없을 때(이 경우 웹훅이 모든 호출을 거부함), 또는 쇼핑몰의 기본 통화가 지원되지 않을 때 경고를 표시합니다. 모듈이 테스트 모드로 활성화되어 있으면 Test mode is active: payments are simulated, no money is charged.를 표시합니다. 저장할 때 모듈은 공개 키, 다른 모드의 키, 또는 공백이 포함된 키를 거부하고, 이전 값을 유지하며 그 이유를 표시합니다.

Moyasar

Enable/Disable: Enable Moyasar는 결제 수단을 켜거나 끕니다. 기본값: 꺼짐.

Title: 체크아웃에서 고객에게 표시되는 결제 수단 이름입니다. 주문에 저장되는 결제 수단 이름이기도 합니다. 기본값: Pay with Moyasar. 필수.

Description: 체크아웃에서 결제 수단 아래에 표시되는 텍스트입니다. 기본값: You will be redirected to the secure Moyasar payment page to pay with mada, Visa, Mastercard, Apple Pay or STC Pay. 테스트 모드에서는 체크아웃에 (Test mode: no real payment is made.)가 추가됩니다.

API 키

비밀 키는 Moyasar Dashboard > Settings > API Keys에서 복사합니다. 테스트 키와 실서비스 키는 별도입니다. 테스트 모드는 테스트 키만, 실서비스 모드는 실서비스 키만 사용합니다.

Test mode: 테스트 비밀 키를 사용합니다. 결제는 시뮬레이션되며 실제 요금은 청구되지 않습니다. 기본값: 켜짐. 실서비스 비밀 키로 실제 결제를 받으려면 끄십시오.

Test secret key: 테스트 모드의 비밀 키입니다. sk_test_로 시작합니다.

Live secret key: 실서비스 모드의 비밀 키입니다. sk_live_로 시작합니다.

저장된 키와 비밀 정보는 다시 표시되지 않습니다. 필드는 비어 있으며 Saved — leave empty to keep it.를 표시합니다. 변경하려는 경우에만 새 값을 입력하십시오.

결제 알림(웹훅)

웹훅은 권장되지만 필수는 아닙니다. 주문은 고객이 쇼핑몰로 돌아왔을 때와, 인보이스가 결제되면 Moyasar가 쇼핑몰로 자동 발송하는 인보이스 알림을 통해서도 확인됩니다. 웹훅은 돌아오기 전에 브라우저를 닫은 고객을 포함하며, Moyasar Dashboard에서 이루어진 환불을 알려 줍니다. Moyasar Dashboard > Settings > Webhooks에서 추가하십시오.

Webhook URL: Copy 버튼과 함께 읽기 전용으로 표시됩니다. 친숙한 URL을 사용하면 https://your-shop/module/wcp_moyasar_payment_gateway/webhook와 같은 형태이며, /en/과 같은 언어 코드가 포함될 수도 있습니다. 설정에 표시된 그대로 URL을 복사하십시오. HTTP 메서드: POST.

Webhook shared secret: Moyasar의 웹훅 Shared secret과 같은 값을 입력합니다. 저장된 값이 없으면 Save가 무작위 비밀 값을 생성합니다. Generate a new secret은 저장된 값을 교체합니다. 생성된 비밀 값은 저장 후 설정 위에 한 번만 표시되고 그 뒤로는 다시 표시되지 않으므로, 즉시 Moyasar에 복사하십시오. 올바른 공유 비밀 값이 없는 웹훅은 거부됩니다.

웹훅에 대해 다음 이벤트를 선택하십시오(이 섹션에도 나열되어 있습니다):

payment_paid: 고객이 인보이스를 결제했습니다.
payment_failed: 결제가 실패했습니다.
payment_refunded: 결제가 환불되었습니다. 예를 들어 Moyasar Dashboard에서 환불한 경우입니다.
payment_voided: 결제가 취소되었습니다.

웹훅이나 알림의 내용은 그대로 신뢰되지 않습니다. 각 경우에 모듈은 인보이스가 생성된 모드의 비밀 키로 Moyasar API에서 인보이스를 조회하고, 이 장바구니를 위해 생성되었는지 확인합니다. 같은 Moyasar 계정의 다른 연동에서 발생한 결제는 무시됩니다. 하나의 공유 비밀 값이 두 모드 모두에 사용됩니다.

주문

Status after payment: 결제가 확인된 후 설정되는 주문 상태입니다. 주문은 이 상태로 바로 생성됩니다.

Processing (default): PrestaShop의 표준 상태 Payment accepted.
Completed: 결제된 모든 주문이 Delivered가 됩니다.
On hold: 결제된 모든 주문이 Moyasar payment on hold 상태가 되어 수동 검토를 기다립니다. 결제 내역은 주문에 그대로 기록됩니다.

고급

Clear saved secrets: Test secret key, Live secret key 또는 Webhook shared secret을 선택하고 Save를 클릭하면 삭제됩니다. 빈 필드는 저장된 값을 유지합니다.

Debug log: API 호출과 알림을 모듈 폴더의 logs/moyasar_p_debug.log.php에 기록합니다. 이 파일은 웹에서 열 수 없습니다. 오류와 경고는 항상 기록됩니다. API 키, 카드 정보, 고객 정보는 절대 기록되지 않습니다. 기본값: 꺼짐.

Log: 로그의 현재 크기와 최신 항목을 표시합니다. Clear log를 클릭하면 비워집니다.

Clean uninstall: 켜져 있으면 모듈을 제거할 때 모듈 설정과 로그가 삭제됩니다. 주문과 함께 저장된 결제 정보(Moyasar 인보이스 및 결제 ID)는 환불을 계속 추적할 수 있도록 유지됩니다. 기본값: 꺼짐.

체크아웃

결제 단계에서 고객은 결제 수단(기본값 Pay with Moyasar)을 선택하고 확인합니다. 모듈은 장바구니 금액에 대해 장바구니 통화로 Moyasar 인보이스를 생성하고, 고객을 그 결제 페이지로 보냅니다. 고객은 그곳에서 Moyasar 계정에 활성화된 결제 수단 중 아무거나 골라 결제합니다. 인보이스에는 Order #, 장바구니 번호, 쇼핑몰 이름이 표시됩니다. 이 시점에는 아직 주문이 존재하지 않습니다.

주문은 Moyasar가 확인한 후에만 결제 완료로 표시됩니다. 모듈은 Moyasar API에서 인보이스를 조회하여 결제되었는지, 이 장바구니에 속하는지, 장바구니의 금액과 통화가 정확히 일치하는지 확인합니다. 그 후 주문이 생성되고, 고객은 Your payment with Moyasar has been received.가 표시된 표준 주문 확인 페이지를 보게 됩니다. Moyasar가 결제를 검토를 위해 보류하면 페이지에 Your payment is being reviewed by Moyasar. The order will be updated automatically when Moyasar confirms it — please do not pay again.가 표시됩니다. 주문이 쇼핑몰 관리자의 검토를 위해 보류 상태이면, 페이지에는 결제가 접수되었고 주문이 검토 중이라고 표시됩니다. 검토 중인 결제가 나중에 실패하거나 결제되지 않은 주문이 취소되면, 페이지에 Your Moyasar payment was not completed. Please contact us about this order.가 표시됩니다.

고객이 결제하지 않고 돌아오면(예: 결제 페이지의 뒤로 가기 버튼 사용), 다음 메시지 중 하나와 함께 체크아웃으로 돌아갑니다: The payment at Moyasar was not completed. You can try again or choose another payment method., Your Moyasar payment was declined or has expired. Please try again or choose another payment method., 또는 결제를 아직 확인할 수 없는 경우 We could not confirm your payment with Moyasar yet. If you completed the payment, the order will be updated automatically in a few minutes — please check your e-mail before paying again.. 장바구니는 유지됩니다.

고객은 다시 시도할 수 있습니다. 장바구니의 열려 있는 결제 페이지가 여전히 같은 금액과 통화이면 그 페이지를 재사용합니다. 장바구니 금액이 변경되었다면 이전 결제 페이지는 Moyasar에서 취소되고 새 페이지가 생성되므로, 이전 페이지로는 더 이상 결제할 수 없습니다. 이전 인보이스가 이미 결제된 것으로 확인되면, 새 결제 대신 주문이 생성됩니다.

Moyasar가 결제를 시작할 수 없으면 고객은 체크아웃에 머무르며 The Moyasar payment service is not responding. Please try again in a few minutes.와 같은 짧은 메시지를 보고, 다른 결제 수단을 선택할 수 있습니다. 자세한 내용은 로그에 기록됩니다.

웹훅과 인보이스 알림은 쇼핑몰이 점검 모드일 때도 작동하며, 쇼핑몰의 국가 제한에 의해 차단되지 않습니다.

모듈은 Moyasar 페이지에서의 일회성 결제만 받습니다. 자체 체크아웃에는 카드 입력 양식이 없으며, 저장된 카드나 토큰화, 구독, 별도의 승인 및 매입(capture)은 지원하지 않습니다.

주문 및 환불

주문 상태

아직 주문 없음: 고객이 Moyasar로 이동했지만 결제하지 않았거나, Moyasar가 아직 결제를 확인하지 않았습니다. 장바구니만 존재합니다.

Payment accepted, Delivered 또는 Moyasar payment on hold: 결제가 확인되었습니다. 상태는 Status after payment를 따릅니다. 결제는 Moyasar 결제 ID를 거래 ID로 하여 기록되며, 메모에는 결제가 어떻게 확인되었는지(웹훅, 인보이스 알림, 고객의 복귀 또는 체크아웃), 인보이스 ID, 결제 ID, 결제 수단이 표시됩니다.

Awaiting Moyasar payment: Moyasar가 결제를 검토를 위해 보류하고 있습니다. Moyasar가 결제를 확인하면 주문이 결제 완료 상태로 바뀝니다.

결제 오류: 검토 중이던 결제가 실패했습니다.

Moyasar payment on hold after payment: Moyasar가 장바구니 합계와 다른 금액 또는 통화를 보고했습니다(예: 결제가 시작된 후 다른 탭에서 장바구니가 변경됨). 또는 주문을 취소한 후에 인보이스가 결제되었습니다. 주문은 결제 완료로 표시되지 않지만, 실제로 받은 금액이 주문 통화이면 기록됩니다. 메모에 이유가 설명되어 있습니다. Moyasar Dashboard에서 결제를 확인한 뒤 주문을 처리하거나 결제를 환불하십시오.

Refunded: 모듈을 통해 결제가 전액 환불되었습니다.

결제 완료된 주문은 이후의 이벤트에 의해 다시 바뀌지 않습니다. 이미 결제된 장바구니의 두 번째 인보이스도 결제되면(예: 브라우저 탭 두 개에서), 주문은 변경되지 않습니다. 메모는 Moyasar Dashboard에서 중복 결제를 환불하라고 안내합니다.

Moyasar 결제 블록

주문 페이지에는 Moyasar payment 블록이 표시되며, Moyasar 인보이스 ID, 결제 ID, 결제 수단(예: 카드 브랜드와 끝 4자리), 상태, 결제 금액과 환불 금액, 테스트 결제용 Test mode 배지, 환불 내역, 주문의 Moyasar notes가 나타납니다.

환불

Moyasar payment 블록에 금액을 입력하고(아직 환불되지 않은 금액이 자동으로 채워짐), 필요하면 사유를 입력한 뒤 Refund via Moyasar를 클릭합니다. Refund this amount through Moyasar? This cannot be undone. 질문을 확인하십시오. 전액 및 부분 환불을 지원합니다. 주문을 편집할 권한이 필요하며, 모듈 페이지에 접근할 필요는 없습니다. 환불은 Moyasar가 청구한 금액과 통화로 이루어집니다. 따라서 금액 불일치가 있는 경우 주문 합계가 아니라 고객이 실제로 결제한 금액까지만 환불할 수 있습니다. 2시간 이내에 이루어진 카드 결제의 전액 환불은 취소(void)로 전송됩니다. 정산 전 취소이며 수수료가 없습니다. 그 밖의 경우에는 환불로 처리됩니다. 환불에는 결제가 이루어진 모드(테스트 또는 실서비스)의 비밀 키가 사용되므로, 해당 키가 설정되어 있어야 합니다. 모듈은 먼저 Moyasar에서 결제의 통화, 상태, 환불 가능 금액을 확인합니다. Moyasar가 환불을 수락하지 않으면 블록에 오류가 표시되며 환불은 기록되지 않습니다. 성공한 환불 또는 취소는 환불 내역과 메모에 추가됩니다. 전액 환불은 주문을 Refunded로 설정합니다. 부분 환불은 상태를 바꾸지 않습니다. 환불은 Moyasar가 결제를 확인한 후에 가능합니다.

모듈은 크레딧 슬립을 만들지 않습니다. 주문 페이지의 표준 PrestaShop 환불 버튼은 Moyasar를 통해 돈을 돌려주지 않습니다.

Moyasar Dashboard에서 이루어진 환불과 취소는 웹훅을 통해 전달됩니다. Moyasar가 모듈이 기록한 것보다 많은 환불 금액을 표시하면 주문에 메모가 추가됩니다. 주문 상태와 크레딧 슬립은 자동으로 바뀌지 않습니다. 필요하면 Refund via Moyasar를 사용하지 않고 수동으로 업데이트하십시오.

라이선스 키

모듈은 vibefox.net에서 받은 VibeFox 라이선스 키로 작동합니다. 라이선스 블록 License — VibeFox Moyasar Payment Gateway은 Modules > Module Manager > VibeFox Moyasar Payment Gateway > Configure 페이지에서 설정 위에 있는 첫 번째 블록입니다. License key에 키를 입력하고 Activate를 클릭하십시오. 그 후 블록에는 마스킹된 키, 상태(예: 라이선스 유효 기간 종료일과 도메인), 그리고 Check now(상태를 다시 확인), Change key(다른 키 입력), Remove key(이 쇼핑몰에서 키 제거) 버튼이 표시됩니다. 그 아래에는 Product: presta-payment-moyasar 줄과 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 계정에서 슬롯을 해제하십시오.

활성 키가 없으면 체크아웃에서 고객에게 Moyasar가 표시되지 않습니다. 그래도 결제가 시작되면 고객에게 This payment method is not available. Please choose another one.가 표시됩니다. PrestaShop 스토어프런트는 사용자가 백오피스에 로그인되어 있는지 알 수 없으므로, 결제 수단은 관리자에게도 숨겨집니다. 키를 구매하기 전에 모듈을 설정할 수는 있지만, 체크아웃에서 테스트할 수는 없습니다. Modules > Module Manager의 Alerts 탭에 알림이 표시됩니다. 기존 주문은 영향을 받지 않습니다. 이미 시작된 결제는 여전히 확인되며, 환불도 작동합니다.

라이선스가 만료되어도 모듈은 계속 작동하지만, 업데이트와 지원에는 갱신이 필요합니다. 백오피스에서 작업하는 동안 상태가 자동으로 다시 확인됩니다. 키를 입력한 후 처음 14일 동안은 하루에 한 번, 그 후에는 일주일에 한 번입니다. cron 작업은 필요하지 않습니다. 모듈을 제거하거나 재설정하면 라이선스 키와 라이선스 상태는 항상 삭제됩니다.

문제 해결

체크아웃에 Moyasar가 표시되지 않음: 라이선스가 활성 상태인지, Enable/Disable이 켜져 있는지, 현재 모드에 비밀 키가 있는지(테스트 모드는 Test secret key, 실서비스 모드는 Live secret key), 그리고 장바구니 통화가 SAR, AED, USD, EUR, KWD, BHD 또는 OMR인지 확인하십시오. 키가 없거나 쇼핑몰 통화가 지원되지 않으면 설정 페이지에 경고가 표시됩니다. Payment > Preferences에서 장바구니 통화, 고객의 국가, 고객의 그룹에 대해 모듈이 허용되어 있는지 확인하십시오.

결제는 완료되었지만 주문이 생성되지 않음: 확인 정보가 쇼핑몰에 도달하지 않았습니다. 웹훅을 설정하십시오. Moyasar Dashboard에서 웹훅이 있는지, URL이 설정의 Webhook URL과 정확히 일치하는지, 메서드가 POST인지, 네 가지 이벤트가 모두 선택되었는지, 공유 비밀 값이 Webhook shared secret에 저장된 값과 같은지 확인하십시오. 고객이 쇼핑몰로 돌아오거나 같은 장바구니를 다시 결제하려고 할 때도 주문이 생성됩니다.

웹훅이 Unauthorized로 응답함: Moyasar의 공유 비밀 값이 저장된 값과 다릅니다. Moyasar 웹훅의 비밀 값을 Webhook shared secret에 입력하고 저장하거나, Generate a new secret을 선택하고 저장한 뒤 표시된 비밀 값을 Moyasar에 붙여 넣으십시오.

웹훅이 Webhook secret not configured로 응답함: 저장된 공유 비밀 값이 없습니다. 예를 들어 Clear saved secrets로 제거한 후입니다. Save를 클릭하여 생성하고 Moyasar에 복사하십시오.

웹훅이 Key not configured로 응답함: 인보이스가 비밀 키가 비어 있는 모드(테스트 또는 실서비스)에서 생성되었습니다. 해당 키를 입력하십시오.

웹훅이 Verification failed 또는 Try again later로 응답함: Moyasar API에서 인보이스를 읽을 수 없었거나, 같은 순간 다른 요청이 장바구니를 업데이트하고 있었거나, 주문을 생성할 수 없었습니다(예: 모듈이 비활성화됨). Moyasar는 웹훅을 다시 시도합니다. 이유를 보려면 Debug log를 켜십시오.

브라우저에서 웹훅 URL에 Method not allowed가 표시됨: 정상입니다. 이 URL은 Moyasar의 POST 요청만 받습니다.

키와 관련된 저장 오류: 공개 키(pk_...)나 다른 모드의 키를 붙여 넣었거나, 키에 공백이 포함되어 있습니다. 이전 값이 유지되었습니다. 테스트 키는 sk_test_, 실서비스 키는 sk_live_로 시작합니다.

고객이 Moyasar를 선택할 때 오류가 표시됨: Debug log를 켜고 모듈 페이지의 Log 필드를 확인하십시오. This payment method is temporarily unavailable. Please choose another payment method or contact us.는 보통 잘못되었거나 없는 비밀 키를 의미합니다. A payment for this order has already been received and is being reviewed. Please contact us instead of paying again.는 장바구니에 이미 결제된 인보이스가 있지만 주문으로 전환할 수 없었다는 뜻입니다. 로그를 확인하십시오.

Order is Moyasar payment on hold after payment: Moyasar payment 블록의 Moyasar notes를 읽으십시오. 결제된 금액이나 통화가 장바구니와 달랐거나, 주문이 취소된 후에 결제가 들어온 것입니다. 주문을 처리하거나 결제를 환불하십시오.

환불이 실패함: 메시지를 읽으십시오. 결제가 다른 모드에서 이루어졌다면 그 모드의 비밀 키를 입력하십시오. 금액이 Moyasar에서 아직 환불 가능한 금액보다 크다면, 예를 들어 Moyasar Dashboard에서 이미 일부가 환불된 것입니다. Moyasar가 환불된 금액을 확인하지 않았다면, 다시 시도하기 전에 Moyasar Dashboard에서 결제를 확인하십시오.

제거

Modules > Module Manager로 이동하여 VibeFox Moyasar Payment Gateway 옆의 메뉴를 열고 Uninstall을 선택합니다. 이 모듈의 라이선스 키와 라이선스 상태는 항상 삭제됩니다. Clean uninstall이 켜져 있으면 모듈 설정과 로그가 삭제됩니다. 꺼져 있으면 나중에 다시 설치할 수 있도록 모든 설정이 유지됩니다. Moyasar 인보이스, 결제, 환불, 그리고 Awaiting Moyasar payment 및 Moyasar payment on hold 주문 상태는 항상 유지되므로, 다시 설치한 후에도 기존 주문을 환불할 수 있습니다. 기존 주문은 결제 메모와 거래 ID를 그대로 보존합니다.

Moyasar는 각 소유자의 상표입니다. 이 모듈은 Moyasar와 제휴하거나 Moyasar의 승인을 받은 것이 아닙니다.