POST 쪽 orders 명령 내리는 부분에서 계속 막히네요.
거래소에 물어봐도 2주째 답변이 없어서 거의 포기상태입니다.
https://www.gopax.co.kr/API 에 재공하는 API 들에서 HMAC 관련 문제를 해결하고
나머지 GET/DELETE 명령문들은 자체 구현해봤지만, POST 의 orders 에서
포기상태입니다. 예제 코드의 버그까지 잡아가면서 시도는 하지만 이건 정말 어렵네요.
막힌 부분이 뭔가하면, 예를 들어 아래 문장을 HMAC 으로 서명하고
1518108604.176POST/orders{"type":"limit","price":"100.0","amount":"1.0","side":"buy","tradingPairName":"ETH-KRW"}
POST 값에
'"{\'type\': \'limit\', \'price\': \'100\', \'amount\': \'10\', \'side\': \'buy\', \'tradingPairName\': \'ETH-KRW\'}"'
해서 Server 에 넣으면 아래의 오류 메시지가 나옵니다.
{"errormsg":"Error: Invalid order type"}
보통 Signature 가 문제가 있으면
{"errormsg":"Error: Invalid signature"}
가 나오는데, 제가 연습하고 있는 코드에서는 규칙데로 해서 인식은 되는거 같습니다.
혹시 비슷한 문제 해결하신분 계시나요?
Node JS 나 Python 모두 헛탕입니다
body = {'type': 'limit', 'side': 'buy', 'price': 100.0, 'amount': 1.0, 'tradingPairName': 'ETH-KRW'}
...
curl_handle.setopt(curl_handle.POSTFIELDS , base64.b64encode(str(body).encode('utf-8')))
...
이런식으로 넣어서 전달하면 서버가 JSON 문장을 제대로 인식하지 못해서 504 Gateway Time-out 오류가 뜨네요
고팍스는 API 는 있는데, 온전한 예제코드가 없어서 쓰기가 어렵네요ㅠ
큰따옴표로 바꾸니깐 Signature 오류가 나덨걸러 기억나는데, 파라미터 조금씩 변경해서 다시 해보겠습니다.
정말 알다가도 모르는 세상이네요ㅠ
실행하면 시그니쳐오류가 뜨는데 뭐가 잘못된걸까요?
"로 바꾸어 봤는데 안되네여..
var body = {
type: "limit",
side: "buy",
price: 100.0 ,
amount: 1.0 ,
tradingPairName: "ETH-KRW"
};
// 필수 정보를 연결하여 prehash 문자열을 생성함
var what = nonce + method + requestPath + body;
POST방식으로 넘길때 이방법이 맞는지요....
var body = JSON.stringify({
type : "limit",
side: "buy",
price: "10000",
amount: "1",
tradingPairName : "ETH-KRW"
});
var what = nonce + method + requestPath+body;
이렇게 했는데 시그네쳐오류가 나오네여..
hmac.update(what)에서 what 변수 디버그찍어보니
"1521787638969000POST/orders{"type":"limit","side":"buy","price":"10000","amount":"1","tradingPairName":"ETH-KRW"}"
이렇게 나오는데 가겔님하고 차이가없는거같은데 잘안되네여..
Node.JS 기준으로
var what = nonce + method + requestPath + body;var key = Buffer(secret, 'base64');var hmac = crypto.createHmac('sha512', key);var return_str = hmac.update(what).digest('base64');request({ url : 'https://api.gopax.co.kr' + requestPath, headers : { 'API-KEY' : api_key, 'SIGNATURE' : return_str, 'NONCE' : nonce, }, method : "POST", body : body});으로 해보세요.