고팍스 API를 이용하여 거래소에 주문을 내고 싶다는 생각에 시작한 프로젝트 지난 글 보기 [[개발이야기] 고팍스 API 사용기[1] : 거래내역 가져오기 성공](https://steemit.com/kr/@tradingideas/api-1) -------------- 지난 번 글에서 예제에 나오는 주문을 실행하였더니 signature 오류가 뜨는 것 까지 언급하였다. 오늘 퇴근 후 다시 작업 시작한다. signature 오류의 원인을 찬찬히 살펴보았다. 문제는 signature를 만드는 시점의 데이터와 거래소로 보내는 데이터의 형태가 틀리기 때문에 signature오류가 발생하는 것 같다. 결국 아래 두 문장에서 request_body의 내용이 틀리다는 것으로 보인다. ~~~~ #필수 정보를 연결하여 prehash 문자열을 생성함 what = nonce + method + request_path + json.dumps(request_body, sort_keys=True) req = requests.post(url = 'https://api.gopax.co.kr' + request_path, headers = custom_headers,json=request_body) ~~~~ 디버깅을 해 본다. what에는 아래 문장이 들어가 있다. > '1526391980.336POST/orders{"amount": 2.0, "price": 30000.0, "side": "sell", "tradingPairName": "EOS-KRW", "type": "limit"}' # 그리고 requests.post에 들어가는 request_body에는 아래 문장이 들어가 있다. > {'amount': 2.0, 'price': 30000.0, 'side': 'sell', 'tradingPairName': 'EOS-KRW', 'type': 'limit'} # 굳이 차이를 보자면 '와 "의 차이로 보인다. what에 있는 문자열에 " 대신에 '로 넣을려고 하니, 방법을 모르겠다. 아마도 json.dumps라는 함수에서 입력으로 '를 넣어도 "로 바꾸는 부분이 있는 것 같다. 입력이 똑같은 것 같은데 왜 signature오류라고 뜨는지 모르겠다. ......... ......... ......... 이렇게 막힐 때는 뭔가 추가한 것을 빼고 하나씩 테스트해 보아야 한다. 무엇을 없애야 하나. 한 문장 한 문장 훓어보다보니 what을 구하는 문장에 있는 json.dumps라는 함수에 있는 sort_keys=True 라는 옵션이 보였다. 입력 변수에 있는 key에 대하여 sorting을 하라는 이야기인데, 이미 입력 변수에 있는 key는 sorting이 되어 있어서 큰 의미가 없어 보인다. 그래서 빼 본다. 그랬더니 what 값이 아래와 같이 바뀐다. sort_key가 있을 때와 orders에 들어가는 인자들의 위치가 변경되었다. > '1526392350.264POST/orders{"price": 30000.0, "type": "limit", "side": "sell", "tradingPairName": "EOS-KRW", "amount": 2.0}' # 혹시 이것 때문에???? 마지막까지 돌려본다. 빙고!! 오 감동.. 주문이 들어갔다. 이번 주문 API 문제를 푼 기념으로 3만원에 EOS 2주 매도 주문은 취소하지 않고 계속 둘 거다..  이 문제와 관련하여 gopax의 예제를 올려 놓은 github에 질문을 남겨 놓았다. 역시나 아직까지 답신이 없다. 미래에 이 문제로 고생할 또 다른 개발자의 시간을 절약시켜주기 위하여 자답을 하였다. 이 글을 gopax에서 보면 예제를 수정해주기를 바란다.  --------------- 자 정리해보자. gopax에서 제공해주는 주문하기 파이썬 예제는 invalid signature 오류가 뜬다. 이 문제를 해결하는 방법은 signaure를 만드는 문장을 생성하는 코드를 아래와 같이 수정해야 한다. > what = nonce + method + request_path + json.dumps(request_body) # --------------------- 주문까지 성공을 했는데, 이제는 뭘 하나?
author | tradingideas |
---|---|
permlink | api-2-invalid-signature |
category | kr |
json_metadata | {"tags":["kr","kr-dev","gopax"],"image":["https://steemitimages.com/DQmczmngBXyoYzJbWL3tX74STL883BBNEaX88Z1S2F4xi6K/image.png","https://steemitimages.com/DQmdUZ8Q3o53eaY4tUQk4QRgwfF4taiNQiESAcFJLCZrkLg/image.png"],"links":["https://steemit.com/kr/@tradingideas/api-1"],"app":"steemit/0.1","format":"markdown"} |
created | 2018-05-15 14:07:45 |
last_update | 2018-05-15 14:07:45 |
depth | 0 |
children | 6 |
last_payout | 2018-05-22 14:07:45 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 8.601 HBD |
curator_payout_value | 2.023 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 2,263 |
author_reputation | 473,979,989,726,345 |
root_title | "[개발이야기] 고팍스 API 사용기[2] : 주문하기 성공 (invalid signature 오류 해결책)" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 55,830,999 |
net_rshares | 2,143,403,757,194 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
neojew | 0 | 104,592,828,451 | 21% | ||
donghyunkim | 0 | 5,501,195,581 | 100% | ||
rizasukma | 0 | 18,069,314,179 | 100% | ||
d7795 | 0 | 13,022,535,053 | 100% | ||
ilovemylife | 0 | 39,674,090,353 | 14% | ||
jsquare | 0 | 76,286,756,510 | 35% | ||
tradingideas | 0 | 56,221,415,523 | 100% | ||
urobotics | 0 | 631,382,511 | 100% | ||
autorent | 0 | 26,662,015,327 | 100% | ||
isi3 | 0 | 24,585,867,494 | 20% | ||
jewel-lover | 0 | 34,850,581,843 | 100% | ||
sweetpapa | 0 | 16,650,900,907 | 16% | ||
lazyrodi | 0 | 16,351,062,191 | 60% | ||
brandonlee88 | 0 | 4,131,054,024 | 100% | ||
kungdel | 0 | 4,718,487,122 | 13% | ||
bumblebee2018 | 0 | 53,581,184,817 | 50% | ||
teoit | 0 | 19,087,216,672 | 100% | ||
binterest | 0 | 55,083,225 | 10% | ||
whwaniw | 0 | 6,377,403,443 | 100% | ||
pairplay | 0 | 1,622,353,381,968 | 86.06% |
전 엄두도 못 내고 있습니다만 API 거래의 꽃은 재정거래일 것 같은데요. :)?
author | lazyrodi |
---|---|
permlink | re-tradingideas-api-2-invalid-signature-20180515t141135478z |
category | kr |
json_metadata | {"tags":["kr"],"app":"steemit/0.1"} |
created | 2018-05-15 14:11:33 |
last_update | 2018-05-15 14:11:33 |
depth | 1 |
children | 1 |
last_payout | 2018-05-22 14:11:33 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 45 |
author_reputation | 1,414,385,365,952 |
root_title | "[개발이야기] 고팍스 API 사용기[2] : 주문하기 성공 (invalid signature 오류 해결책)" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 55,831,560 |
net_rshares | 0 |
재정거래가 꽃이기는 하지요. 그런데 돈을 주고 받을 수 있는 방법이 없어요. 항상 한국이 프리미엄이 높다보니..
author | tradingideas |
---|---|
permlink | re-lazyrodi-re-tradingideas-api-2-invalid-signature-20180515t155138351z |
category | kr |
json_metadata | {"tags":["kr"],"app":"steemit/0.1"} |
created | 2018-05-15 15:51:39 |
last_update | 2018-05-15 15:51:39 |
depth | 2 |
children | 0 |
last_payout | 2018-05-22 15:51:39 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 62 |
author_reputation | 473,979,989,726,345 |
root_title | "[개발이야기] 고팍스 API 사용기[2] : 주문하기 성공 (invalid signature 오류 해결책)" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 55,848,119 |
net_rshares | 0 |
성공하셨군요. 축하드립니다. 3만원에 매도되길 빕니다^^
author | neojew |
---|---|
permlink | re-tradingideas-api-2-invalid-signature-20180516t105202630z |
category | kr |
json_metadata | {"tags":["kr"],"app":"steemit/0.1"} |
created | 2018-05-16 10:52:03 |
last_update | 2018-05-16 10:52:03 |
depth | 1 |
children | 0 |
last_payout | 2018-05-23 10:52:03 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 31 |
author_reputation | 68,986,056,862,785 |
root_title | "[개발이야기] 고팍스 API 사용기[2] : 주문하기 성공 (invalid signature 오류 해결책)" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 55,988,760 |
net_rshares | 0 |
You received 86.06 % upvote as a reward From round 3 on 2018.05.15! Congrats!
author | pairplay |
---|---|
permlink | re-tradingideas-api-2-invalid-signature-20180515t162034068z |
category | kr |
json_metadata | "" |
created | 2018-05-15 16:20:36 |
last_update | 2018-05-15 16:20:36 |
depth | 1 |
children | 0 |
last_payout | 2018-05-22 16:20:36 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 77 |
author_reputation | 49,450,702,071,116 |
root_title | "[개발이야기] 고팍스 API 사용기[2] : 주문하기 성공 (invalid signature 오류 해결책)" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 55,852,794 |
net_rshares | 0 |
저같은 문맹은 그냥 음.. 발자국만 남기고 갑니다 ㅋㅋ 고팍스님이 언능 오셔야 할터인데요 ㅎㅎ
author | sweetpapa |
---|---|
permlink | re-tradingideas-api-2-invalid-signature-20180516t045155974z |
category | kr |
json_metadata | {"tags":["kr"],"app":"steemit/0.1"} |
created | 2018-05-16 04:52:00 |
last_update | 2018-05-16 04:52:00 |
depth | 1 |
children | 1 |
last_payout | 2018-05-23 04:52:00 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 53 |
author_reputation | 56,729,575,898,107 |
root_title | "[개발이야기] 고팍스 API 사용기[2] : 주문하기 성공 (invalid signature 오류 해결책)" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 55,944,066 |
net_rshares | 0 |
그러게요. 관심이 절실하게 필요한 시점인데요.
author | tradingideas |
---|---|
permlink | re-sweetpapa-re-tradingideas-api-2-invalid-signature-20180516t095342497z |
category | kr |
json_metadata | {"tags":["kr"],"app":"steemit/0.1"} |
created | 2018-05-16 09:53:30 |
last_update | 2018-05-16 09:53:30 |
depth | 2 |
children | 0 |
last_payout | 2018-05-23 09:53:30 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 25 |
author_reputation | 473,979,989,726,345 |
root_title | "[개발이야기] 고팍스 API 사용기[2] : 주문하기 성공 (invalid signature 오류 해결책)" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 55,981,189 |
net_rshares | 0 |