Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Dev-Log] 박진현 2021-12-14 #441

Open
developerjhp opened this issue Dec 15, 2021 · 0 comments
Open

[Dev-Log] 박진현 2021-12-14 #441

developerjhp opened this issue Dec 15, 2021 · 0 comments
Assignees
Labels
dev-log dev 로그 작성시 사용하는 라벨

Comments

@developerjhp
Copy link
Collaborator

오늘은 어떻게 프로젝트에 기여했나요?

  • [Feat] 결제보안기능 구현
  • [Fix]소셜로그인 로그인시 이전페이지로
  • [Fix] kakao oauth 안되는 에러 해결
  • [Fix] 필터링시 페이지오류 수정
  • [Feat]카카오 상담기능 추가
  • [Fix] 어드민유저 페이지 수정
  • [Fix] 어드민작품등록 수정
  • [Fix] 로그인시 이전페이지로 가기, 로그아웃시 새로고침
  • [Feat]작품상세 품절버튼 추가 및 몇가지 수정
  • [Feat]헤더에 마이페이지 추가
  • [Feat] 결제완료 페이지 구현

오늘의 프로젝트에서 힘든 점은 무엇인가요?

  • 결제보안기능 구현
    클라이언트에서 주문금액을 아임포트에 전송하고 결제한 후 결과값을 서버에 보낸 후 서버에서 아임포트와 통신후 결과값을 검증하여 유효여부를 클라> 이언트에 반환 후 결과값을 저장하는 로직에서, 클라이언트에서 주문금액을 1원으로 수정해도 결제가되는 보안문제가 있어 이를 보안하였다.
    아임포트에 결제한 값을 보내주기전 클라이언트에서 총 주문금액을 주문하고, 서버에 총 주문금액을 요청한후 값을 비교하여 다를경우 에러페이지로
    가고, 같을경우 아임포트 결제를 진행하도록 구현하였다.
         if (success) {
         // 주문에 성공했으니 서버에 주문 정보 전달
         if (
           priceState.totalPrice + priceState.shippingPrice ===
           response.paid_amount
         ) {
           instance
             .patch(`/orders/pay`, {
               imp_uid: response.imp_uid,
             })
             .then((res) => {
             console.log(res);
            const localInfo = localStorage.getItem('cartItems');
               const newArr = JSON.parse(localInfo || '[]').filter(
                 (el: string) => {
                  return !orderProduct.includes(el);
               },
               );
               localStorage.setItem('cartItems', JSON.stringify(newArr));
               history('/paymentfinished');
             })
            .catch((err) => {
               // 아임포트는 결제 완료되었지만 DB저장 혹시 서버에서 문제 발생할 경우
               // 이떄 아임포트 결제 환불 시켜줘야함
               window.location.assign('/error');
               console.log(err.response);
             });
         } else {
           alert('결제금액이 다릅니다.');
           window.location.assign('/error');
         }
         // 주문 실패한 경우
       } else {
         alert('주문을 취소 하셨습니다');
       }
     };

오늘의 회고

오늘도 에러를 정신없이 고쳤다. 해야할 것이 너무 많은데 시간은 없고.. 힘들다 ㅠㅠ 이제 내일부터 마이페이지를 구현하면 거의 끝나갈 것 같다.

@developerjhp developerjhp added the dev-log dev 로그 작성시 사용하는 라벨 label Dec 15, 2021
@developerjhp developerjhp self-assigned this Dec 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dev-log dev 로그 작성시 사용하는 라벨
Projects
None yet
Development

No branches or pull requests

1 participant