Files
Gnuboard5/docs/sirk-kakaopay-retirement.md
whitedot e784186b0f feat: SIRK 전용 카카오페이 연동 종료와 기존 주문 지원 절차 추가
전용 신규 결제와 자동 취소를 차단하고 기존 주문 조회 및 실제 PG 취소 확인 후 수동 정리를 지원한다. 기존 DB와 일반 PG 경로를 보존하고 5.6.37 전환 및 사후지원 절차를 문서화한다.

검증: 변경 PHP 문법, SIRK 요청 차단, 설치 스키마 및 쇼핑몰 후설치 검사 통과. 실제 PG 결제·취소 검증은 별도 진행한다.
2026-09-09 07:58:05 +00:00

45 lines
6.2 KiB
Markdown

# SIRK 전용 카카오페이 연동 종료와 기존 고객 지원
## 적용 범위
적용 예정 버전은 **5.6.37**이다. `SIRK`로 시작하는 KG이니시스 카카오페이 전용 MID와 주문의 `od_pg = 'KAKAOPAY'` 경로를 정리한다. 일반 KG이니시스/INIpay PRO, NHN KCP, NICEPAY 등 PG에 포함된 카카오페이는 계속 사용할 수 있다.
기존 이용 고객 사후지원 담당은 **김민섭(minsup@sir.kr)**이다. 실제 고객 안내·거래 확인·지원 완료 여부는 배포 담당자가 별도로 기록한다. 이 문서 작성이나 코드 변경만으로 고객 안내가 완료된 것은 아니다.
## 변경 내용
- 쇼핑몰설정의 전용 MID·웹결제 사인키·키패스워드·사용 여부·숨겨진 HashKey 입력과 저장을 제거한다. 기존 전용 설정이 남아 있는 사이트에는 종료와 지원 연락처를 안내한다.
- PC·모바일 주문서에서 전용 결제 선택지를 제거하고, 이전 주문서의 POST와 임시 주문 저장도 서버에서 차단한다.
- 전용 서명·승인 요청 코드를 제거한다. 이전 결제창의 서명·승인·반환·통보 URL은 HTTP 410과 종료 안내를 반환하며, PG 요청이나 DB 변경, 통보 성공 응답을 수행하지 않는다. 서명 URL은 오류 JSON을 반환한다.
- 기존 주문 조회·매출 표시·영수증 표시는 유지한다. 구매자 자동 취소와 관리자 자동 전체·부분취소는 지원 안내로 차단한다. 다른 PG의 기본 분기로 넘기지 않는다.
- 운영자가 실제 PG 취소를 확인한 경우에만 주문관리의 확인 항목을 체크하고 상품 상태를 취소·반품·품절로 정리할 수 있다. 이 동작은 PG 취소나 환불금액의 자동 반영을 수행하지 않는다.
- 신규 설치 SQL에서 전용 설정 컬럼 5개를 제외한다. 기존 DB의 컬럼·설정값·주문·임시 주문·결제 로그는 삭제하지 않는다. `de_kakaopay_iniapi_key`를 추가하거나 다른 인증키로 치환하지 않는다.
- `shop/settle_kakaopay.inc.php`는 이전 테마의 초기화 include 호환을 위해 비활성화 상태만 반환한다. 자동 취소 경로의 이전 파일도 실패 안내용으로 유지한다. 결제용 내부 폼·결과 파일은 제거하므로 커스텀 테마의 직접 참조는 배포 전에 정리한다.
## 배포 전 진행 중 거래 정리
1. 담당자가 기존 이용 고객에게 적용 버전과 실제 배포 시각, 지원 연락처를 안내하고 현재 사용 여부와 취소 처리 방식을 확인한다.
2. 전용 결제를 사용 중인 사이트는 배포 전 점검 시간을 잡고, 주문 접수 점검으로 새 주문서 진입과 신규 결제 시작을 막는다. 기존 승인·반환 URL은 점검 차단 대상에서 제외한다. 기존 코드에서는 사용 설정을 끄면 진행 중 승인도 차단되므로, 거래 정리 전에 전용 사용 설정부터 해제하지 않는다. 이미 열린 결제창은 별도로 확인한다.
3. 이 단계에서는 기존 승인·반환 경로를 유지한다. 진행 중 결제의 종료를 기다리고 이니시스 거래내역과 쇼핑몰 주문·임시 주문·결제 로그를 대조한다. 고정된 대기 시간만으로 완료됐다고 판단하지 않는다.
4. PG 승인만 있고 주문이 없는 거래, 처리 중 취소, 미확인 반환 요청이 있으면 담당자가 먼저 해결한다. 미완료 주문의 자동 복구는 종료 버전에서 차단하므로 배포 전에 정리하거나 담당자 지원 대상으로 명시한다.
5. 진행 중 거래가 정리된 것을 확인하고 DB·설정·소스를 백업한 뒤 종료 버전을 배포한다. 고객별 배포·안내·미해결 거래 여부를 기록한다.
6. 배포 후에도 이전 URL 요청이 도착하면 성공 처리하지 않는다. 재결제를 유도하지 않고 담당자가 PG 승인 여부를 확인해 주문 누락·중복 결제를 처리한다.
고객의 운영 상황을 확인하지 않은 상태에서 종료 코드를 먼저 배포하면 진행 중 거래의 주문 반영이 중단될 수 있다. 배포 전 확인이 끝나지 않은 고객은 일정을 조정한다.
## 기존 거래 취소·부분취소 지원
1. 운영자가 거래 당시의 SIRK MID로 이니시스 상점관리자에 접속하고 주문번호·거래번호·승인금액·기존 취소금액을 대조한다. 이미 취소된 건을 다시 취소하지 않는다.
2. 해당 거래의 전체 또는 부분취소 가능 여부를 확인해 처리한다. 상점관리자에서 처리할 수 없는 건은 사후지원 담당자가 KG이니시스와 확인한다.
3. 이니시스의 실제 완료 상태·취소금액·잔액을 확인한다. 쇼핑몰 로그의 `cancel`이나 주문 상태만으로 PG 취소 완료를 판단하지 않는다.
4. 쇼핑몰 주문관리에서 실제 취소 확인 항목을 체크한 뒤 해당 상품의 상태를 정리한다. 상태 변경만으로 PG 취소가 실행되거나 환불금액이 입력되지는 않는다.
5. 주문관리의 결제취소/환불 금액에 PG에서 확인한 **누적 환불금액**을 반영하고 미수금·잔액을 대조한다. 상점메모에 처리 시각·금액·담당자·PG 확인 결과를 기록한다.
6. 부분취소는 선택 상품과 세금·배송비·쿠폰 처리 범위를 함께 확인한다. 주문 상태 변경에 따른 재고 복원·포인트 환급과 실제 지급 내역도 대조하여 중복 처리하지 않는다.
7. 구매자에게 완료 결과를 안내한다. 주문·임시 주문·로그는 확인 자료로 보존하며, 인증키·개인정보·거래 식별정보를 공개 이슈나 변경 기록에 게시하지 않는다.
## 검증과 지원 기록
`php bin/check-sirk-retirement.php`로 이전 결제·취소 요청의 차단, PG 성공 오인 방지, 잔여 참조와 설정 제거를 검사한다. 신규 설치 SQL 변경 후에는 마이그레이션 스키마 검사와 쇼핑몰 설치 검사를 함께 수행한다.
배포 담당자는 고객별로 안내 일시, 적용 버전/시각, 진행 중 거래 확인 결과, 실제 취소 경로, 지원 상태와 후속 담당자를 비공개로 관리한다. 테스트 결제·실거래 확인과 고객 안내는 코드 검사와 구분해서 기록한다.