Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@june20516
Copy link
Contributor

결제 모듈 확장 및 안정화

목적 및 요약

  • VN에서 사용하기 위한 Momo pay, Vn pay 결제 서비스를 연동하였습니다.
  • 차후 결제 모듈을 추가하기 용이하도록 확장성 있는 구조로 재설계 했습니다.
  • 주문 및 결제 프로세스를 보다 직관적이게 정리했습니다.
  • 결제 관련 컨텐츠를 직접 저장하여, 결제 서비스에 대한 의존도를 줄이고 안정성을 도모했습니다.

기타

  • vn pay는 결제가 일정부분 진행 됐을 때 (vn pay 내부적으로 트랜잭션 처리 된 이후) 에는 특정 url이 아니면 결제에 접근할 수 없습니다.
    • 따라서 vn pay는 재결제를 지원하지 않습니다.
  • vn pay와 momo pay는 이번 배포 이후, 사이트 인증 과정을 거칩니다.
    • 인증 과정 이후 key등의 변경사항이 있을 수 있습니다.
  • 한국 결제 기능은 이번 작업에 포함되지 않습니다. 추후 비즈니스 요구사항이 발생할 때 작업할 예정입니다.
  • gomi-store : https://github.com/gomicorp/gomi-store/pull/775

june20516 and others added 14 commits June 10, 2021 15:41
기존에는 PG의 결제 정보를, key를 통해 필요시마다 api로 얻어왔었습니다.
그러나 다른 PG 연동을 확장함에 따라, api를 상시 제공 하지 않고, event 발생 전후에만 데이터를 보내주는 PG들도 대응할 필요가 있었습니다. 따라서, 필요시에 접근할 수 있도록 모델을 만들어 해당 리소스를 저장해야 합니다.

이를 위해,
1. payment를 country구분하였습니다. [STORE-1379]
2. payment의 속성인 pay method의 card 항목을 pg로 세분화 했습니다. [STORE-1378]
3. payment 하위에 charge 모델을 만들었습니다.[STORE-1431]
3-1. charge 모델은, 여러 pg의 response에 유연하게 대응하기 위하여, charge를 식별할 수 있는 필수 정보만을 컬럼으로 갖고, 디테일한 내용은 supplement 컬럼에 json 형태로 저장합니다.
[feat][STORE-1431] Payment 하위에 Charge 모델 추가
1. Charge에 status 추가
2. payment모델안의 상수명 복수형 반영
기존의 supplement를 하나를 두고 운영하는 방안은 결제 process의 흐름 안에서 charge의 다양한 정보 변화를 다 덮어써야 한다는 문제가 있었습니다. 따라서 payment가 charge 자체를 process의 흐름에 따라 복수개를 가지도록, 그리고 그 charge가 가지는 정보의 의미가 명확해 지도록 컬럼명을 수정했습니다.
그에 따라 알맞는 히스토리의 charge가 생성되도록 data migration도 수정하였습니다.
paid가 nil인 주문이 있어서 마이그레이션이 불가한 것을 고치기 위한 코드입니다.
프로덕션 환경에서 해당하는 레코드는 1건입니다. id: 4379
스토어측에서 변경된 charge의 schema에 따라 charge생성 로직을 보완했습니다.
charge id를 통해 omise의 api에서 charge를 가져오고 데이터를 상황에 맞게 생성합니다.
기존 charge_id가 비정상적이라서 charge를 가져오지 못한다면 가지고있는 데이터를 조합해 생성합니다.

credential파일에 omise와 관련된 key를 입력해 저장했습니다.
staging 서버용 RDS의 엔드포인트 변경사항을 반영했습니다.
[feat]결제 모듈 확장 및 안정화
@june20516 june20516 requested review from PLUX-KR and aiody July 21, 2021 03:33
@june20516 june20516 merged commit 6688e7e into master Jul 21, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants