본문 바로가기
회사

라자다 SDK -> REST API 변환하면서 생긴 문제 정리

by 개발고구마 2024. 9. 21.

이번에 회사 프레임워크를 변경하면서 라자다 연동을 바꿨다
기존에는 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를 해줘야한다는 얘기가 없었는데 이렇게 공식 문서에 없는 것들을 해결하는데 시간을 많이 쏟았다...)

스택 오버플로우 : https://stackoverflow.com/questions/72737929/incomplete-signature-the-request-signature-does-not-conform-to-platform-stand

 

위 두개를 제외하고는 rest api로 변환하는데 큰 문제는 없었다
결론은 sdk를 사용할 수 있으면 sdk 사용하는게 편하긴 하다...