Boa noite Pessoal,
Estou entrando na era do bitcoin, e estou utilizando a exchange Mercado Bitcoin, eles disponibilizam uma API mas só que está em Python. Consegui fazer script em python está funcionando perfeitamente, porém queria converter para a linguagem PHP. Alguém pode me ajudar?
----------------------------------------
Código em Python - API Mercado Bitcoin
----------------------------------------
# -*- coding: utf-8 -*-
import hashlib
import hmac
import httplib
import json
import urllib
import time
import sys
import decimal
from collections import OrderedDict
# Constantes
MB_TAPI_ID = '******************************'
MB_TAPI_SECRET = '*********************************************************'
REQUEST_HOST = 'www.mercadobitcoin.com.br'
REQUEST_PATH = '/tapi/v3/'
# Nonce
# Para obter variação de forma simples
# timestamp pode ser utilizado:
# import time
# tapi_nonce = str(int(time.time()))
tapi_nonce = 1
# Ordem de compra
params = {
'tapi_method': 'place_buy_order',
'tapi_nonce': '',
'coin_pair': 'BRLLTC',
'quantity': '0.01',
'limit_price': '100'
}
params = urllib.urlencode(params)
# Gerar MAC
params_string = REQUEST_PATH + '?' + params
H = hmac.new(MB_TAPI_SECRET, digestmod=hashlib.sha512)
H.update(params_string)
tapi_mac = H.hexdigest()
# Gerar cabeçalho da requisição
headers = {
'Content-type': 'application/x-www-form-urlencoded',
'TAPI-ID': MB_TAPI_ID,
'TAPI-MAC': tapi_mac
}
# Realizar requisição POST
try:
conn = httplib.HTTPSConnection(REQUEST_HOST)
conn.request("POST", REQUEST_PATH, params, headers)
# Print response data to console
response = conn.getresponse()
response = response.read()
# É fundamental utilizar a classe OrderedDict para preservar a ordem dos elementos
response_json = json.loads(response, object_pairs_hook=OrderedDict)
print ("status: %s" % response_json['status_code'])
print(json.dumps(response_json, indent=4))
finally:
if conn:
conn.close()
--------------------------------------------------------------------
Código em PHP
--------------------------------------------------------------------
<?php
//===============Enviando informações para a URL de destino via POST==================//
// Constantes
$MB_TAPI_ID = '***************************';
$MB_TAPI_SECRET = '************************************************'; // TAPI_ID
$REQUEST_HOST = 'www.mercadobitcoin.com.br';
$REQUEST_PATH = '/tapi/v3/';
$tapi_nonce = 1;
//distribuindo a informação a ser enviada
$params = array(
'tapi_method' => 'place_buy_order',
'tapi_nonce' => '',
'coin_pair' => 'BRLLTC',
'quantity' => '0.01',
'limit_price' => '104'
);
// Gerar MAC - PHP
$params_string = $REQUEST_PATH . '?' . http_build_query($params);
$tapi_mac = hash_hmac('sha512', $params_string, $MB_TAPI_SECRET);
// Gerar cabeçalho da requisição
$headers =array(
'Content-type' => 'application/x-www-form-urlencoded',
'TAPI-ID' => $MB_TAPI_ID,
'TAPI-MAC' => $tapi_mac
);
echo http_build_query($headers);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $REQUEST_HOST);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_exec($ch);
curl_close ($ch);
//==================================================================//
?>
Aonde estou errando?