페이조아 결제 특이사항
PC 결제는 팝업, 모바일 결제는 리디렉션 모드로 제공
페이조아 결제창은 PC 환경에서는 팝업 형태로 제공되고, 모바일 웹/앱 환경에서는 리디렉션(화면 전체가 페이조아 결제창으로 이동) 방식으로 제공됩니다.
PC 환경 참고 이미지
모바일 환경 참고 이미지
PC 결제는 success, 모바일 결제는 imp_success 전달
위에 안내드린 바와 같이 PC와 모바일에서 결제창이 각기 다른 방식으로 호출되기 때문에, 결제 후속 프로세스에도 차이가 있습니다. PC 결제의 경우 페이조아 결제창이 iframe 방식으로 호출되기 때문에 결제 프로세스 완료 후 콜백 함수(IMP.request_pay 함수 호출시 전달한 두번째 파라미터)가 호출되지만, 모바일 결제의 경우 페이조아 결제창이 페이조아 URL로 리디렉션되기 때문에 결제 프로세스 완료 후 지정 된 URL(m_redirect_url)로 302 리디렉션 됩니다. 이때 결제 실패/성공 여부를 의미하는 파라미터가 전달되는데, PC 결제시에는 success, 모바일 결제시에는 imp_success로 서로 다른 이름의 파라미터가 전달되어 주의가 요구됩니다. 정리해보면 아래와 같습니다.
•
[PC결제] iframe → 콜백 함수 호출 → 콜백 함수로 전달되는 response 객체에 success키 값으로 전달
예시 코드
•
[모바일 결제] 리디렉션 → m_redirect_url로 302 리디렉션 → imp_success 쿼리 파라미터 전달
예시 코드
imp_success와 success는 deprecated
하지만 애초에 imp_success 파라미터든 success 파라미터는 deprecated 되었기 때문에 해당 파라미터를 기반으로 결제 실패/성공 여부를 판단하시면 안됩니다. 해당 파라미터는 단순히 아임포트 → 가맹점 클라이언트로 응답되는 시기의 결제 실패/성공 여부를 내려주는데, 이 값은 페이조아 → 아임포트로 결제 결과 통지 → 아임포트 DB 업데이트가 완료 된 시점이어야지만 정확하다고 볼 수 있습니다.
그런데 페이조아 → 아임포트로의 결제 결과가 전달 → 아임포트 DB 업데이트와 아임포트 → 가맹점 클라이언트로의 응답이 비동기로 동작하기 때문에 실제로는 결제가 정상적으로 완료 됐어도 아직 아임포트 DB에 업데이트가 안 된 시점이라 가맹점 클라이언트로 응답되는 imp_success 또는 success 파라미터가 false일 수 있습니다.
따라서 아임포트 → 가맹점 클라이언트로 응답되는 결과 데이터 중 신뢰할 수 있는 값은 오로지 아임포트 주문 번호(imp_uid)와 가맹점 주문 번호(merchant_uid)이며, 이 값을 가맹점 서버로 전달해 아임포트 결제내역 조회 API(GET /payments/{imp_uid})를 호출한 결과(status)를 보고 결제 실패(failed)/성공(paid) 여부를 판단하시길 바랍니다.

[04/20 ~] 클라이언트로 응답 되는 데이터 제한 

이와 같은 혼란을 방지하기 위해 애초에 결제 프로세스 종료 후 콜백 함수 호출 또는 m_redirect_url로 리디렉션 될 때 전달되는 응답 데이터를 imp_success/success, imp_uid 그리고 merchant_uid로 제한 할 예정입니다. 해당 조치는 4월 20일(수요일)부터 적용되므로 이용에 참고 부탁드립니다.
4월 20일 이전 응답 데이터
4월 20일 이후 응답 데이터
사파리 브라우저 - 하나카드 / NH앱캐시 결제시 세션 관련 이슈 존재
사파리 브라우저에서 하나카드 / NH앱캐시(계좌이체) 결제시 아래와 같이 세션 유효기간이 초과되어 카드사와 연결이 종료되었습니다와 같은 메시지가 렌더링되며 더이상 결제가 불가능한 이슈가 있습니다.
참고 이미지
이러한 현상을 겪으시는 경우, 사파리 환경설정에서 아래와 같이 크로스 사이트 추적 방지 해제 및 모든 쿠키 차단이 모두 해제되어있는지 확인해보시고, 모두 해제 후 다시 시도해보시길 바랍니다.
참고 이미지
사파리/파이어폭스 브라우저 - BC카드 결제시 이슈 존재
신용카드 결제창에서 BC카드 선택 후 다음 버튼 클릭시 "지불에 실패하였습니다"라는 얼럿트 창이 뜨면서 더이상 진행되지 않는 이슈가 있습니다. 다른 브라우저(크롬, 오페라, 엣지 등)나 다른 카드사에서는 이상 없이 BC카드 결제를 위한 페이북 QR코드가 렌더링되지만, 사파리와 파이어폭스에서는 아래와 같이 "지불에 실패하였습니다"라는 메시지를 담고 있는 얼럿트창이 뜨면서 더이상 결제가 진행되지 않습니다.
참고 이미지
이러한 현상을 겪으시는 경우, 사파리 환경설정에서 아래와 같이 *.payjoa.co.kr 도메인에 대해 팝업 허용 설정 되어있으신지 확인해보시고, 허용 후 다시 시도해보시길 바랍니다.
참고 이미지
실시간 계좌이체 결제 플로우 상이
이니시스의 경우 실시간 계좌이체 시 뱅크페이 앱을 통해 비밀번호 인증만으로 결제가 가능합니다. 하지만 페이조아의 경우 내부적으로 토스페이먼츠 - 계좌이체를 사용하고 있어 토스 간편결제, NH앱캐시 그리고 계좌 정보 직접 입력을 통해서만 계좌이체가 가능합니다. 여기서 계좌 정보 직접 입력시, 보안카드 / OTP 인증 → 공인인증서 인증까지 해야합니다.
단, 모바일 결제의 경우엔 토스 간편결제와 NH앱캐시를 통해서만 결제가 가능합니다.
참고 이미지
가상계좌 입금 완료시, 송금자 이름만 알 수 있음
페이조아는 (발급된) 가상계좌에 입금 완료시, 송금자의 정보(은행명, 계좌번호, 송금인) 중 송금자 이름만 알려줍니다. 따라서 아임포트 결제내역 조회(GET /payments/{imp_uid})시 송금자의 은행코드(bank_code)과 은행명(bank_name)은 모두 NULL로 내려가며, 송금자 이름을 확인하기 위해서는 아래 예시와 같이 별도의 쿼리 파라미터(extension)를 true로 설정해주셔야 합니다.
예시 코드
가상계좌 결제 취소시, PG사와 특약 필요
가상계좌 입금 완료 건에 대한 결제 취소(환불)은 가상계좌 발급시 부과되는 수수료 이슈로 인해 페이조아와 특약을 맺어야지만 가능합니다. 이 특약 없이는 기본적으로 가상계좌 결제 건의 환불은 불가능합니다.
가상계좌 결제 취소시, 실제 환불 금액 입금까지 7 영업일 이상 소요
페이조아 가상계좌 결제 취소(환불)는 가맹점 → 아임포트 → 페이조아로 환불 요청 접수시, 페이조아 담당자가 수기로 확인 후 환불 처리를 해주는 프로세스로 진행되기 때문에 환불 금액이 실제로 입금 될때까지 7 영업일 이상 소요됩니다.
과세/면세/복합과세용 CPID는 모두 건별구분으로 1개만 발급하여 사용
과거에는 과세/면세/복합과세용 CPID를 각각 1개씩 총 3개를 발급 받아야 했습니다. 하지만 4월 9일 이후부터는 과세든 면세든 복합과세든 CPID는 1개만 발급 받으시면 됩니다. 대신 페이조아 측으로 해당 CPID 설정을 건별구분으로 발급 해달라고 요청해주셔야 합니다. 그래야 하나의 CPID로 과세/면세/복합과세 거래건을 모두 처리할 수 있습니다.
면세금액은 카드 결제만 설정 가능
결제창(IMP.request_pay 함수) 호출시 총 결제 금액(amount)중 면세 금액(tax_free)을 설정할 수 있습니다. 단, 페이조아 시스템 상 면세 금액은 카드 결제(pay_method: card) 시에만 가능하고 계좌이체 / 가상계좌 결제 시에는 설정할 수 없어 전액 과세 처리 됩니다.
페이조아 자체 버그
에스크로 결제시 구매자 전화번호가 결제창에 자동 완성되지 않음
참고 이미지
IMP.request_pay 호출시 전달한 구매자의 전화번호(buyer_tel)가 다른 결제창과는 달리 에스크로 결제창에서는 자동 완성되지 않습니다. 이는 페이조아가 해당 기능을 제공하지 않는 것으로 이용에 참고 부탁드립니다.