티스토리 뷰

반응형

안녕하세요 종백이 입니다😎

 

네이버커머스api

지난번에 python으로 네이버 커머스 api를 이용했었는데요!

오늘은 flutter로 구현해 보기로 하겠습니다 ㅎㅎ 지난번 python 내용이 궁금하신 분은 아래 링크 클릭 부탁드려요!

>>python 네이버 커머스 api 글 바로가기!<<

 

[파이썬] 네이버 커머스 API requests post로 서버에 이미지 보내기

안녕하세요 종백이 입니다😎 최근에 네이버 커머스 API 가 오픈하면서 스마트 스토어에 필요한 기능들을 사용해 볼 수 있게 되었습니다! 네이버 커머스 API 바로가기 네이버 커머스API센터 커머

jcstory94.tistory.com

네이버 커머스 API 는 인증 토큰을 발급받아 헤더에 넣음으로써 사용자확인을 진행하므로 토큰 받는 방법에 대해 작성해 보겠습니다!

인증토큰 파라미터

인증 토큰을 발급받기 위해서는 위 파라미터들이 필요한데요! client_id 는 네이버 커머스 api에서 애플리케이션을 등록하시면 인증키를 받을 수 있습니다.

 

여기서 주의깊게 보실 부분은 client_secret_sign입니다!

 

client_secret 또한 네이버 커머스 api에 애플리케이션 등록하면 발급을 받는데 그것을 전자서명 생성 방법을 통해 변환을 해주셔야 합니다.

 

전자서명 생성 방법 예제는 아래와 같습니다!

import bcrypt
import pybase64

clientId = "aaaabbbbcccc"
clientSecret = "$2a$10$abcdefghijklmnopqrstuv"
timestamp = 1643961623299
# 밑줄로 연결하여 password 생성
password = clientId + "_" + str(timestamp)
# bcrypt 해싱
hashed = bcrypt.hashpw(password.encode('utf-8'), clientSecret.encode('utf-8'))
# base64 인코딩
client_secret_sign = pybase64.standard_b64encode(hashed).decode('utf-8')

예시는 자바, 파이썬, Node.js 3개가 나와있는데 그중 파이썬 예시를 갖고 왔습니다. 이거를 dart 방식으로 바꿔서 client_secret_sign에 넣으면 토큰을 발급받을 수 있습니다 ㅎㅎ

 

위 파이썬 예제를 dart로 바꾼다면 bcrypt 모듈과 pybase64 모듈만 교체해 주면 되겠죠?! dart에서는 bcrypt 모듈 대신 BCrypt 패키지를 이용하고 pybase64 대신에는 convert 모듈에 base64를 통해 인코딩을 해줄 수 있습니다.

 

dart 코드는 아래와 같습니다.

import 'package:bcrypt/bcrypt.dart';
import 'dart:convert' as convert;

int timestamp = (DateTime.now().millisecondsSinceEpoch) - 1000;
String password = "${applicationID}_${timestamp}";
String hased = BCrypt.hashpw(password, applicationSecret);
String auth = convert.base64.encode(convert.utf8.encode(hased));

 

위 python 코드는 bcrypt 부분에 utf-8로 인코딩하여 값을 넣었는데 dart에서는 인코딩할 필요 없이 문자열 상태 그대로 넣어줘서 아주 편했습니다 ㅎㅎ dart에는 바이트 타입이 없었어서 어떻게 넣어줘야 하나 한참 고민하다 그냥 문자열 넣으니깐 문제없이 돌아가서 매우 당황했네요 ㅎㅎ

 

위 auth 값을 토큰 파라미터에 차근차근 넣으면 인증토큰을 얻을 수 있고 아래와 같이 헤더를 구성해서 다른 api 항목을 모두 이용할 수 있습니다!!

Map<String, String> headers = {
	'Authorization': "Bearer ${token}",
	'content-type': "application/json"
};

flutter에서 네이버 커머스 API 이용하는 내용을 작성해 보았습니다 ㅎㅎ 내용이 도움이 되셨다면 좋아요 부탁드려요^^

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함