• 0
Sign in to follow this  
felipeferri

Api - MercadoBitcoin em PHP

Question

Bom dia Pessoal,

 

Estou entrando no mundo do Bitcoin, e utilizo a exchange Mercado Bitcoin. Eles disponibilizam uma API só que está em Python, consegui desenvolver em Python e está funcionando perfeitamente, agora estou tentando criar essa API mas em PHP só que tem alguma coisa que não está batendo. Vocês podem me ajudar?

 

Segue o código em Python que está funcionando e o código em PHP em andamento porém não está funcionando.

 

Código em Python como seria o equivalente em PHP.

 

# -*- 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()

Share this post


Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this