이번에 회사 프레임워크를 변경하면서 라자다 연동을 바꿨다
기존에는 SDK를 쓰다가 신규 프레임워크가 SDK로 불러오는 절차가 불편해져,
rest api 로 할 수 있는 방법을 찾아보고 구현 가능해 해당 방식으로 변경하게 됐다
옮겨본 결과 나처럼 정말 불가피안 상황이 아니면 꼭 SDK를 쓰는 걸 택하자..!
(rest api로 옮기면서 너무 힘들었다...)
인증 API
일단 인증은 문서와 동일하게 작성했지만 계속 오류를 반환해 많이 찾아봤다.
그래도 나처럼 비슷하게 한 사람이 있었는데 내가 구현한 방식과 동일했다...
참고 : https://jhlee-developer.tistory.com/entry/API-Lazada-%ED%98%B8%EC%B6%9C-%EC%98%88%EC%8B%9C
그럼 문제가 뭔지 확인해보기 위해,
기존 SDK에서 요청을 어떻게하는지 확인 할 수 있도록 프록시를 설정한 후 sdk로 요청을 해봤다.
내가 예상한 것과 동일하게 쏘는데, 문제는 아래와 같았다.
나는 리다이렉트 url로 받은 코드를 내가 직접 쏘고 받기 귀찮아서 sdk로 쏜 코드를 다시 사용했다.
문제는 code는 일회용이었던 것이다....문서를 확인했을 때는 따로 그런말이 없었는데..(내가 못찾았을 수도 있다)
카페24같은 경우에는 code의 만료시간이 1분정도 됐던 것 같은데 라자다는 일회용이었다.
결국 한번도 쓰지 않은 code로 진행했을때는 잘 된 것으로 확인했다.
주문 API
인증은 rest api 로 확인 완료했고 그 다음에는 주문내역을 불러오는 api 변경이 필요했다
인증 후 그 뒤는 크게 어려움은 없었다.
귀찮아진 것 중 하나가 sdk는 파라미터를 넣으면 알아서 정렬 후 sign값을 만들어주는데,
rest api로 호출 시 내가 직접 정렬 후 그 값을 sign의 메세지 값에 넣도록 만들어야 했다.
(api를 찾으면서 왜 굳이 sdk안쓰고 rest api를 쓰냐는 글도 봤다...)
https://laracasts.com/discuss/channels/code-review/incomplete-signature-the-request-signature-does-not-conform-to-platform-standards-in-lazada-api
그래도 sdk 내부 구현 소스를 확인하고 동일하게 만들면 문제가 없었다.
근데 계속 응답이 Incomplete Signature "The request signature does not conform to platform standards 에러가 나왔다.
스택 오버플로우 와 SDK 확인 결과 upper를 안해줘서 문제가 되는 것이였고 수정했더니 정상적으로 응답을 받았다
(공식문서에는 upper를 해줘야한다는 얘기가 없었는데 이렇게 공식 문서에 없는 것들을 해결하는데 시간을 많이 쏟았다...)
위 두개를 제외하고는 rest api로 변환하는데 큰 문제는 없었다
결론은 sdk를 사용할 수 있으면 sdk 사용하는게 편하긴 하다...
'회사' 카테고리의 다른 글
회사 성능개선 회고 (6) | 2024.09.22 |
---|---|
성능개선 동등비교 정리 (0) | 2024.07.29 |
회사에서 인덱스의 중요성 경험한 사례 (0) | 2024.07.03 |
네이버 커머스 API 요청량 제한에 따른 카프카 조정 (0) | 2024.04.22 |
테스트 프로그램 구현 제안 회고 (0) | 2024.03.06 |