php api 中的身份认证,Python中的API调用身份验证(工作PHP示例)

我正试图编写一个脚本来与在线交换进行通信。

“Public”请求发送到:https://yobit.net/api/3/

“Trade”请求发送到:https://yobit.net/tapi/

我没有把文件解释清楚吗?可能是一个错误的URL结构?

文档链接--->here

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

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

键-API键,例如:FAF816D16FFDFBD1D46EEF5D5B10D8A2

签名-数字签名,POST参数(?)?param0=val0&..&nonce=1)通过HMAC-SHA512由密钥签名

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

要使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

#######公共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})

#####贸易原料药

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、付费专栏及课程。

余额充值