CI 코드

제목 pg object 프로젝트 [inicis 웹표준, kakao pay]
글쓴이 kaido 작성시각 2016/07/12 12:35:09
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 5407   RSS

안녕하세요.

최근 진행하는 pg PSR 기준으로 재 정리 작업을 하고있습니다.

이번 작업 대상은 크롬에서도 결제가 가능한 이니시스 웹 표준 모듈과 카카오페이 입니다.

 

100% 완성 단계는 아니고, 중간 점검도 할겸, 잠시 정리좀 할겸, [솔직히 머리 아프고 힘들음 ㅜㅜ] 머리도 식힐겸 정리해서 올려봅니다.

 

이번 작업의 목표는 

 

1. 최대한 샘플 코드와 같아야 한다. 

2. 추가 관리가 편리 하기 위해서 객체 별로 나눠서 관리하기 편해야 한다.

[이른바 버전 올라가면 해당 객체만 Ctr +C, Ctr +V 로 패치 가능해야함]

3. 자유롭게 사용이 가능해야 한다.

 

이정도 규칙을 가지고 작업했습니다.

 

 

사전 환경

php 5.4 이상 권장

ci 3.0.6 버전이 사용됨

composer 사전 지식

HMVC 대한 사전 지식

git  사용법

이정도 필요합니다.

 

/inicis 폴더와 

/kakaopay 폴더에

원본 샘플 코드도 넣었으니, 비교해 보시는 것도 좋습니다.

 

실제 사용하기 위해서는 상점키 값을 변경 하셔야 합니다.

상점키와 설정값은 pg_helper 파일에서 일괄 관리를 합니다.

kakao pay의 경우 실제 결제를 하여도 30분마다 자동으로 결제 취소가 됩니다. [테스트 계정일 경우]

 

inicis의 경우 조금 독특한구조를 타게 만들었습니다.

가장 골치 아픈 이유가 있는데, PG 요청할때 가격을 포함해서 암호를 걸고 요청 해야 합니다.

그런데 이게 가격이 도중에 변동이 되면 당연하게도 미스가 나옵니다. [쿠폰 가격이라 든지, 포인트 할인 이라든지]

어찌되었든 가격이 변동되면 다시 한번 변경된 가격으로 암호를 걸어야 하는 기괴한 시스템인지라

ajax로 다시 한번 요청하고 필수 폼 값들을 셋팅해 놓고 불러서 submit 을 합니다.

ajax 루틴에서 검증을 좀 태워서 temp db 값을 넣고, 요청이 완료되면 해당 값을 비교해서 저장 하는 루틴을 추천해 드립니다.

[이건 제가 제시 하는 개발 가이드 방안이지, 꼭 이렇게 해야 하는 것은 아닙니다!]

 

버전으로 치면 v0.6 정도 이군요.

 

그럼 git 주소입니다.

https://github.com/kaleidocoderabo/kaleido

[이거 때매 새로 따끈따끈하게 팝]

 

ps1 첨부파일에 넣을까 했는데, 용량 문제도 있고, 제가 ci를 composer로 설치해서 혼란을 줄수도 있을거 같아서 ( ..)

ps2 database 설정 부터 잡고 들어가세요.

ps3. http://timemake.vps.phps.kr:1988/kaleido/page/inicis_order_list     테스트 페이지

 다음글 rest api 만들때 폼검증부분 관련.. (4)
 이전글 폼메일이나 데이타입출력시스템을 쉽게 만드는 폼빌더 (3)

댓글

kaido / 2016/07/12 12:49:29 / 추천 0
추가 정리

객체 사용법

inicis

$pg = new Kaleido\Pg(); //공통 pg 호출
$inicis = $pg->getInicisHeandler($data); //inicis 오브젝트 

사용법은 기존 inicis 기본 코드와 동일

$httpUtil = new HttpClient(); 기존과 동일. pg 호출시 자동으로 http 핸들러를 호출하고 있음.


lgcns [kakaopay]

$pg = new Kaleido\Pg();
$lgcns = $pg->getLgcnsHeandler([$data]);// lg cng 핸들러 호출
기존의 lgcns_CNSpay 를 핸들러화 한것.

lgcns_KMpay 는 Lgcngtrait 파일에 trait 로 들어가 있음.

$connector = new CnsPayWebConnector($LogDir);		//기존 호출
$connector = $pg->getLgcnsHeandler([$data]); //신규호출

차이점으로는 $LogDir 의 경우 해당 값을 넣지 않으면 
기존 생성자 처리에서 log 폴더 체크하는 호출값이 일어나지 않는점 정도.

데이터를 넘겨주고 싶으면 $data 배열값으로 해서 넘겨줄수 있다.



 

한대승(불의회상) / 2016/07/12 12:51:15 / 추천 0
시간 날때 뜯어 봐야 겠네요. ^^
변종원(웅파) / 2016/07/12 16:31:39 / 추천 0
수고하셨습니다. ^^
amkorjavas / 2016/07/21 12:39:12 / 추천 0

자료감사합니다. 

그런데 https://github.com/kaleidocoderabo/kaleido

이 주소 통해 다운 받고 소스 확인 해볼려고 하니깐 

컨트롤러,모델,뷰 작성된 소스를 확인이 어렵네요.

경로가 어떻게 되나요??

kaido / 2016/07/26 12:15:37 / 추천 0

@amkorjavas

쪽지 드렸습니다.