聚币 现货 API [Python2版]

一、utils.py,基础类,包括HTTP 请求、签名等

# -*- coding: utf-8 -*-
import hashlib
import hmac
import time
import urllib
import urllib2
import json
from datetime import datetime
from uuid import UUID
from objutil import dict_obj
# import requestsdef http_get(url, data_wrap, encode=False):if encode is True:data_wrap = urllib.urlencode(data_wrap)req = urllib2.Request(url, data=data_wrap)resp = urllib2.urlopen(req).read()dic = json.loads(resp)return dict_obj(dic)def get_signature(private_key, data):data_en = urllib.urlencode(data)md5_hash = getHash(private_key)msg = bytes(data_en).encode('utf-8')key = bytes(md5_hash).encode('utf-8')signature = hmac.new(key, msg, digestmod=hashlib.sha256).digest()last_warp = "%s&signature=%s" % (data_en, toHex(signature))return last_warpdef get_nonce_time():curr_stamp = time.time() * 100return str(long(curr_stamp))def getHash(s):m = hashlib.md5()m.update(s)return m.hexdigest()def toHex(str):lst = []for ch in str:hv = hex(ord(ch)).replace('0x', '')if len(hv) == 1:hv = '0' + hvlst.append(hv)return reduce(lambda x, y: x + y, lst)def getUserData(cfg_file):f = open(cfg_file, 'r')account = {}for i in f.readlines():ctype, passwd = i.split('=')account[ctype.strip()] = passwd.strip()return accountclass CJsonEncoder(json.JSONEncoder):def default(self, obj):if isinstance(obj, datetime):return obj.strftime('%Y-%m-%d %H:%M:%S')elif isinstance(obj, UUID):return str(obj)else:return json.JSONEncoder.default(self, obj)def json_dumps(result):return json.dumps(result, cls=CJsonEncoder)

二、jubi.py,聚币网API

# -*- coding: utf-8 -*-
# @Author: wujiyu
# @Date:   2017-07-09 10:44:41
# @Last Modified by:   far
# @Last Modified time: 2017-07-25 09:28:12from utils import *BASE_API = "https://www.jubi.com/api/v1"TICKER_API = "%s/ticker" % BASE_API
DEPTH_API = "%s/depth" % BASE_API
ORDERS_API = "%s/orders" % BASE_API
BALANCE_API = "%s/balance" % BASE_API
TRADLIST_API = "%s/trade_list" % BASE_API
TRADEVIEW_API = "%s/trade_view" % BASE_API
TRADECANCEL_API = "%s/trade_cancel" % BASE_API
TRADEADD_API = "%s/trade_add" % BASE_APIclass JuBi(object):"""docstring for JuBi"""def __init__(self):super(JuBi, self).__init__()cfg = getUserData('data.cfg')self.public_key = cfg['public_key']self.private_key = cfg['private_key']def get_ticker(self, coin):data_wrap = {'coin': coin}return http_get(TICKER_API, data_wrap, True)def get_depth(self, coin):data_wrap = {'coin': coin}return http_get(DEPTH_API, data_wrap, True)def get_orders(self, coin):data_wrap = {'coin': coin}return http_get(ORDERS_API, data_wrap, True)def get_balance(self):nonce = get_nonce_time()data_wrap = {'nonce': nonce,'key': self.public_key}all_data = get_signature(self.private_key, data_wrap)return http_get(BALANCE_API, all_data)def get_trade_list(self, coin):#  open:正在挂单, all:所有挂单trade_type = "open"since = "0"nonce = get_nonce_time()data_wrap = {'nonce': nonce, 'type': trade_type, 'coin': coin, 'since': since,'key': self.public_key}all_data = get_signature(self.private_key, data_wrap)return http_get(TRADLIST_API, all_data)def get_trade_view_list(self, coin, id):nonce = get_nonce_time()data_wrap = {'nonce': nonce, 'coin': coin,'key': self.public_key, 'id': id}all_data = get_signature(self.private_key, data_wrap)return http_get(TRADEVIEW_API, all_data)def cancel(self, coin, id):nonce = get_nonce_time()data_wrap = {'nonce': nonce, 'coin': coin,'key': self.public_key, 'id': id}all_data = get_signature(self.private_key, data_wrap)return http_get(TRADECANCEL_API, all_data)def trade_add(self, coin, amount, price, sell_type):nonce = get_nonce_time()data_wrap = {'nonce': nonce, 'coin': coin,'key': self.public_key, 'amount': amount, "price": price, "type": sell_type}all_data = get_signature(self.private_key, data_wrap)return http_get(TRADEADD_API, all_data)def sell(self, coin, amount, price):return self.trade_add(coin, amount, price, "sell")def buy(self, coin, amount, price):return self.trade_add(coin, amount, price, "buy")def cancel_all(self, coin, sell_type="all"):lst = self.get_trade_list(coin)print("当前挂单!!!!!!!!!!:%s" % (lst))for item in lst:if sell_type == "all" or sell_type == item["type"]:self.cancel(coin, item["id"])print("取消挂单成功!!!!!!!!!")print("当前挂单!!!!!!!!!!:%s" % (self.get_trade_list(coin)))return Truedef cancel_all_sell(self, coin):return self.cancel_all(coin, "sell")def cancel_all_buy(self, coin):return self.cancel_all(coin, "buy")

三、调用方法

coin = "btc"
jubi = JuBi()
print(jubi.get_ticker(coin))
# print(jubi.get_depth(coin))
# print(jubi.get_orders(coin))
# print(jubi.get_balance())
# print(jubi.get_trade_list(coin))
# print(jubi.get_trade_view_list(coin, "1"))
# print(jubi.get_trade_cancel_list(coin, "1"))
# print(jubi.sell(coin, 10000, 0.001))
# print(jubi.buy(coin, 100, 0.2))
# print(jubi.get_trade_cancel_list(coin, "1"))
# print(jubi.cancel(coin, 940591))

四、下载地址

http://www.cnblogs.com/fangbei/p/jubi-api-python.html

http://files.cnblogs.com/files/fangbei/jubi-api-python2.zip

转载于:https://www.cnblogs.com/fangbei/p/jubi-api-python.html

聚币网API[Python2版]相关推荐

  1. 监控聚币网行情 并实时发送到微信

    最近由于好友推荐我入坑了国内的山寨币,所以顺便研究了下聚币网的API. 不过网页版的聚币网和手机版的做的不好,而且因为是7x24 小时交易,自己没有那么多的精力盯盘,所以写了python代码进行监控. ...

  2. 网易云API Golang版开发历程

    网易云API Golang版开发历程 原项目(node.js) 网易云音乐 API 本项目 (golang) 网易云音乐 API api文档 请不要用于商业用途 想法的开始 事情的开始还是一开始在B站 ...

  3. 运用百度地图API离线版(在线版)实现网管系统中终端定位和终端信息获取的功能...

    一.了解百度地图API 1.百度地图JavaScript API简介 百度地图JavaScript API是一套由JavaScript语言编写的应用程序接口,可在网站中构建功能丰富.交互性强的地图应用 ...

  4. Python 技术篇-20行代码实现微信机器人斗图功能实例演示!斗图啦官网API调用方法

    话不多说,看效果图: 先说下原理: 微信接收到你说的话,发给机器人来回复,用回复的话传参给斗图网,然后获得斗图网返回的图片,保存后把图片再发给跟你斗图的人. 斗图啦官网API调用文档 斗图啦官网 菜单 ...

  5. API v3版微信支付平台证书获取与自动更新

    API v3版微信支付平台证书获取与自动更新 关于微信证书 获取平台证书 证书自动更新 首次下载证书 关于微信证书 微信支付开发有两份证书. ♥ 商户证书:商户平台证书私钥可以对请求进行签名,微信服务 ...

  6. 互联网晚报 | 12月30日 星期四 | 百度网盘青春版正式上线;汽车之家回应“年底大裁员”;A股年内成交额创历史新高...

    ‍ 今日看点 ✦ 腾讯微信支付支持全量商家小程序场景开通银联云闪付功能 ✦ 百度网盘青春版正式上线:免费空间10GB,支持无差别速率下载 ✦ 汽车之家:不存在大规模裁员,整体人员优化幅度不及5% ✦ ...

  7. 最新网狐荣耀版整理、编译和搭建教程

    一.安装visual studio 2015,在百度就能搜索到下载地址,在教程最后,会给大家包括所有工具在内的集成包.因为visual studio 2015体积比较大,而且安装过程很漫长,在这里不做 ...

  8. TCP流量控制和拥塞控制 最新网狐荣耀版源码下载

    搭建准备 1.网狐荣耀版源码下载: 下载 2.visual studio 2015 下载 3.下载jdk1.8 安装步骤: 一.安装visual studio 2015,在百度就能搜索到下载地址,在教 ...

  9. 聚生网管2008试用功能去除

    文章标题]: 聚生网管2008试用功能去除 [文章作者]: CSSHRB2004 [作者邮箱]: csshrb2004@163.com [作者QQ号]: 23380605 [软件名称]: 聚生网管20 ...

  10. “聚生网管”应用常见问题汇总

    1.软件应该安装在什么主机上比较好,对于网络环境有什么要求? 聚生网管软件可以安装在子网内的任意主机上,如果您网络是采用ADSL宽带路由器或者路由器接入公网,那么把软件安装在接在交换机上的任意一台主机 ...

最新文章

  1. (剑指Offer)面试题61:按之字形顺序打印二叉树
  2. 做好十足准备面字节跳动,五面都过了,HR告诉我这个原因我被刷了...
  3. 【特征工程】17种将离散特征转化为数字特征的方法
  4. JVM 调优实战--常用命令参数及PS收集器的GC日志格式
  5. delete if only one note header
  6. 于金刚消息引擎服务器,基于MQTT的安全通信服务器的研究与实现
  7. Vue+Vue Router+Vuex页面演示
  8. Web页面引入思源黑体
  9. 瑞萨RH850F1x单片机开发板完整开发环境搭建介绍
  10. NRF24L01 2.4G无线模块浅析(学习笔记)
  11. GMap.NET控件使用
  12. 计算机系的的毕业感言,计算机班同学的毕业感言
  13. APS系统哪家好(下)
  14. 使用ECShop搭建外贸站多国货币切换功能
  15. 在JDBC中实现SQL语句的模糊查询
  16. html怎么做一个心形边框,使用CSS获取心形边框?
  17. 二手iPhone手机选购指南,花小钱办大事
  18. SVN本地电脑存储配置
  19. 笔记本电脑锁屏密码能输入,但解锁后键盘不好用
  20. 「面试必背」Java集合面试题(收藏)

热门文章

  1. 九大背包问题专题--完全背包问题(详解,最优解)
  2. 赵小楼《天道》《遥远的救世主》深度解析(120)信息储备是必要的强势文化之一
  3. k8s 1.18.20 kubevirt v0.47.1 创建 windows10 虚拟机
  4. freenas 蜗牛星际_蜗牛星际 B款 配置、安装OpenMediaVault
  5. WebOffice安装教程Hello World!(win10 IE打开控件问题)
  6. 用html制作课程表
  7. 网络下载的图始终与北京坐标有偏移,坐标对不准,用arcgis自带的WGS84与beijing54坐标转换2解决
  8. MySQL-Utilities:mysqldbcompare及跳过复制错误
  9. Windows7下安装Ubuntu 16.04双系统
  10. 酷派D530刷机指引