python对接php接口_Python中的API调用身份验证(使用PHP示例)

我错过了解释文档吗?也许是一个错误的URL结构?

文档链接—> here

每个Trade API请求都应通过身份验证.

通过发送以下HTTP标题来完成身份验证:

密钥 – API密钥,例如:FAF816D16FFDFBD1D46EEF5D5B10D8A2

符号 – 通过HMAC-SHA512通过密钥签名的数字签名,POST参数(?param0 = val0& …& nonce = 1)

后续请求中的参数nonce(最小值为1至2147483646)应超过前一个请求.

要使nonce无效,必须生成新密钥.

我的剧本

class yobit(object):

def __init__(self,key,secret):

self.key = key

self.secret = secret

self.public = ['info','ticker','depth','trades']

self.trade = ['activeorders']

def query(self,method,values={}):

if method in self.public:

url = 'https://yobit.net/api/3/'

elif method in self.trade:

url = 'https://yobit.net/tapi/'

else:

return 'You're doing it wrong'

urlString = ''

for i,k in values.iteritems():

urlString += k+'/'

url += method + '/' + urlString

print url

if method not in self.public:

url += '&apikey=' + self.key

url += '&nonce=' + str(int(time.time()))

signature = hmac.new(self.secret,url,hashlib.sha512).hexdigest()

headers = {'apisign': signature}

else:

headers = {}

print url

req = requests.get(url,headers=headers)

response = json.loads(req.text)

return response

####### PUBLIC API

def getinfo(self):

return self.query('info')

def getticker(self,currency):

return self.query('ticker',{'currency': currency})

def getdepth(self,currency):

return self.query('depth',{'currency': currency})

def gettrades(self,currency):

return self.query('trades',{'currency': currency})

##### TRADE API

def getactiveorders(self,pair):

return self.query('activeorders',{'pair': pair})

PHP中的一个工作示例

我相信这是PHP的一个工作示例,遗憾的是我无法阅读这种语言.

function yobit_api_query2($method,$req = array())

{

$api_key = '';

$api_secret = '';

$req['method'] = $method;

$req['nonce'] = time();

$post_data = http_build_query($req,'','&');

$sign = hash_hmac("sha512",$post_data,$api_secret);

$headers = array(

'Sign: '.$sign,'Key: '.$api_key,);

$ch = null;

$ch = curl_init();

curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);

curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/4.0 (compatible; SMART_API PHP client; '.php_uname('s').'; PHP/'.phpversion().')');

curl_setopt($ch,CURLOPT_URL,'https://yobit.net/tapi/');

curl_setopt($ch,CURLOPT_POSTFIELDS,$post_data);

curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);

curl_setopt($ch,CURLOPT_ENCODING,'gzip');

$res = curl_exec($ch);

if($res === false)

{

$e = curl_error($ch);

debuglog($e);

curl_close($ch);

return null;

}

curl_close($ch);

$result = json_decode($res,true);

if(!$result) debuglog($res);

return $result;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值