앗 이런 개발자용 게시판이 있는줄 오늘 처음 알았네요. 오래 전부터 있었는데 제가 못 봤어요. 글들 읽어 보니까 재미있네요.
저도 아주 초보적인 거 하나 올리려구요. 다들 blockchain은 알고 있고 blockchain.info도 알고 계시겠지만 이들의 api는 잘 모를 수도 있을 것 같습니다. blockchain은 그야말로 chain of blocks이죠. 그니까 그냥 블록들이 주욱 물고 물리면서 연결되어 있는 것이죠. 그게 다입니다.
blockchain.info는 이 말에서 따온 것 같습니다. 왜 com이 아니라 info인지는 저도 항상 궁금합니다. 하여간 blockchain.info는 빗코인의 가장 기본이 된다고 할 수 있는 blockchain에 대한 아주 기초적인 서비스를 제공합니다.
물론 여기서 지갑도 만들 수 있고 각종 조회도 할 수 있지만 개발자로서 중요한 것은 api입니다.
blockchain엔 중요한 api들이 많습니다. 그 중 오늘은 하나만 소개하죠. 바로 payment api입니다.
https://blockchain.info/api/api_receive
여기에 자세한 내용이 있습니다. 여기 설명에 나온 것처럼 이 api는 회원 가입도 필요 없고 수수료도 없으며 그냥 단순하게 수금할 때 마다 주소를 만들어서 라우팅해 주는 서비스입니다.
이 api를 쓰며면 일단 먼저 돈 받을 주소가 필요합니다. 이 주소는 알아서 먼저 만들어야 하죠. 주소가 확보되었으면 아래와 같이 부르면 됩니다.
https://blockchain.info/api/receive?method=create&address=$receiving_address&callback=$callback_url
$receiving_address는 돈 받을 주소입니다. 새로 만들어지는 주소로 돈이 들어 오면 일로 자동으로 토스합니다.
$callback_url은 돈이 들어 왔을 때 알림을 받을 URL입니다.
그러니까 위와 같이 준비해서 위의 URL을 부르면 그 리턴 값으로 아래와 같은 것이 넘어 옵니다.
{ "fee_percent":0, "destination":"1A8JiWcwvpY7tAopUkSnGuEYHmzGYfZPiq", "input_address":"1KZoUuPWFAeyVySHAGqvTUDoX6P3ntuLNF", "callback_url":"http://yoururl.com" }
이 값을 파싱해서 input_address를 잡아 오면 됩니다. 이제 이 주소로 돈이 들어 오면 자동으로 이 돈은 destination으로 넘어 가고 callback_url이 불려 집니다. 이 때 돈이 넘어갈 때 수수료가 필요한데 이 수수료는 blockchain.info가 대신 내줍니다.
이 callback 주소가 불려지면 우린 돈이 들어 온 것을 확인하고 이 때 해당하는 일을 하면 됩니다. 일을 하고 반드시 해 줘야 하는 일이 *ok*를 return하는 것입니다. 이건 일종의 매너로서 이걸 안 하면 blockchain.info는 혹시 이 사실을 못 받았나 해서 자꾸 알림을 줍니다. blockchain.info도 힘들고 우리도 힘들어 지는 것이죠. 약 2주 정도 꾸준히 보낸다고 하네요. 일을 다 처리하고도 매너 없이 *ok* 안 보내는 일을 많이 하면 이 사용자는 막는다고 합니다.
merchant service 구축할 때 유용한 api입니다.