미니는 밍기적
[REACT] 아임포트 일반결제 성공 본문
아직 결제 검증 통신은 구현하지 못했지만
결제는 성공했다 !
결제 화면을 구현하는 데에는 아래의 파일을 활용했다
1. 아임포트 payment.html -> 각종 변수 설정 및 로직 참고
2. index.html -> 아임포트 script 추가
3. PaymentPage.js -> 해당 결제 페이지 구현 창
4. VerifyPage.js -> 결제 검증 페이지 구현 창
5. user_actions.js -> 결제할 상품 통신 코드 & 결제 검증 통신 코드
----
6. PaymentPage.css -> 디자인
어떤 것을 중심으로 고려하면서 코드를 짰는 지에 대해서는 바로 이전 게시물을 참고하면 되고,
백엔드와의 소통은 결제 직전 정보 확인 통신과 결제 검증 통신이 있다만 그 외에는
최대한 PaymentPage.js 파일 내에서 코드를 구현했다
user_actions.js에서 결제할 상품 통신 함수 코드인 getProductDetail 함수를 들고와 컨솔을 찍으니
데이터는 잘 담겨져왔었다
[user_actions.js]의 getProductDetail 함수 코드 혹시 모르니 같이 첨부해두겠다
이에 추가적으로 아래와 같이 requestPay 코드를 구현해서 아임포트에서 참고한 각 변수들을 차곡차곡 담아주었고,
하단의 결제하기버튼과 쓰윽 연결해주었다
요렇게 설정해두면 결제하기 버튼을 눌렀을 때 포트 창과 연동이 된다
:>
구현하면서 가장 골칫거리는 바로 현재 창에서는 포트 연결이 되지만
결제 직후 또는 서버 재접속 시, script 에러가 나서 아예 페이지 자체도 접속하지못하는,,
이도저도 못하는 상황이 연속되었다
정말 꽝꽝 막막했지만 이때는
챗삐삐삐 보다눈 구글링이 답이었던 것
해결했던 방법 중 하나는 script를 index.html 내로 집어넣는 것이었다
사실 script를 어디에 설정할 지 몰라서 Payment.js 파일에 함께 담아두었는데 내가 봐도 문법이 영 이상하다싶었더니
역시나 오류는 여기엥서 났었던 것
이렇게 쏘옥 넣어주니 요번엔 다른 에러가 났다
'판매자 코드가 없다' 라는 에러였는데 이건 코드와 변수 설정의 문제인 것 같아
Payment.js 파일로 돌아와 merchant_uid: uniqueId, 변수 설정을 다시 해주었다
어떻게 했냐아 아주 작은 단위로 세세하게 쪼개서 중복되는 아이디가 없도록 설정을 해주었다
이 코드에서 밀리세컨드 단위까지 고려한 변수로 추가한 것
그리고 마지막으로 해준 건
init 코드를 const IMP 내로 정의되게 해주었다
이렇게 코드 하나하나 잡아 뜯으니 오류가 안뜨더라
ㅠㅅㅠ 훕
곧 바 로 화면창이 슥슥 넘어가게 됐고 결국은 결제 성공했다
오늘 깨달은 건 오류가 날 때 오류가 나는 부분 쪽에
console창 세세하게 찍으며 오류가 무엇인지 확인해보고 직접 수정하는 것이 가장 효율적이라는 것이다
ㅎㅎ 요것들은
결제 구현하구 그리고 결제 검증까지 넘어가는 과정에서 에러를 잡으려고 수동적으로 결제했던 내역들
고생해쑤다아🖤
'Frontend > GAN:ERATE' 카테고리의 다른 글
[REACT] 상품 데이터 서버에서 불러오기 (0) | 2023.08.25 |
---|---|
[REACT] PG사 일반결제 포트 연동시키기 _ 아임포트 (0) | 2023.08.19 |
[REACT] 회원가입 파트에서 백앤드와 통신했던 코드 (1) | 2023.08.19 |
[REACT] 상품 등록 페이지 & 상품 상세 검색 페이지 구현 (0) | 2023.08.05 |
GITHUB & vscode 터미널 창에서 자주 쓰는 코드 (0) | 2023.07.14 |