def get_user_info(self, tokens: str) -> dict: """ 返回一个包含当前用户信息的字典 """ api = self.host['vip'] + '/general/info' logger.info('获取当前用户信息'.center(30, '*')) self.header['Token'] = tokens response = requests.post(url=api, headers=self.header, verify=False) logger.info(str(response.json())) return response.json()
def create_wallet(self, coin_id, token) -> dict: """ 创建钱包 币种ID是指BTC、ETH等币种""" logger.info('创建钱包'.center(30, '*')) api = self.host["vip"] + '/general/wallet/create' data = {'CoinID': coin_id} self.header['Token'] = token response = requests.post(url=api, json=data, headers=self.header, verify=False) logger.info(str(response.json())) return response.json()
def login_token(self, login_source=1, ip: str = '', machin_id: str = '', token=None) -> dict: """ 使用token登陆 """ logger.info("使用token进行登录".center(30, '*')) api = self.host['vip'] + '/general/tokenlogin' data = {'LoginSource': login_source, 'IP': ip, 'MachinID': machin_id} self.header['Token'] = token response = requests.post(url=api, json=data, headers=self.header, verify=False) logger.info(str(response.json())) return response.json()
def bind_bank_info(self, user_id: int, token) -> dict: """ 获取绑定银行信息 """ api = self.host + '/general/bank/search' data = {'UserID': user_id} self.header['Token'] = token logger.info(str(self.header)) response = requests.post(url=api, data=data, headers=self.header) logger.info(str(response.json())) return response.json()
def get_coin_info(self, token) -> list: # 返回一个列表,包含所有币种名称 coin_list = [] api = self.host['mis'] + '/messy/dictionary/coin' self.header['Token'] = token logger.info(str(self.header)) response = requests.post(url=api, headers=self.header, verify=False) logger.info(str(response.json())) data = response.json()['Data'] for i in data: coin_list.append(i['ID']) return coin_list
def set_price_password(self, phone_vericode='123456', password='******', token=None) -> dict: """ 设定资金密码 """ logger.info('设定资金密码'.center(30, '*')) api = self.host['vip'] + '/general/fundpw/set' self.header['Token'] = token data = {'PhoneVeriCode': phone_vericode, 'Password': password} logger.info(str(self.header)) logger.info(str(data)) response = requests.post(url=api, json=data, headers=self.header, verify=False) logger.info(str(response.json())) return response.json()
def modify_price_password(self, new_password, old_password='******', phone_veri_code='123456', tokens=None) -> dict: """ 修改资金密码 """ logger.info('修改资金密码'.center(30, '*')) api = self.host['vip'] + '/general/fundpw/modify' data = {'PhoneVeriCode': phone_veri_code, 'NewPassword': new_password, 'OldPassword': old_password} self.header['Token'] = tokens logger.info(str(self.header)) logger.info(str(data)) response = requests.post(url=api, json=data, headers=self.header, verify=False) logger.info(str(response.json())) return response.json()
def modify_head_img(self, img_address: str, token: str) -> dict: """ 修改头像 img_address为服务器返回的图片地址""" logger.info('修改头像'.center(30, '*')) api = self.host['vip'] + '/general/headimage/modify' # 需要传入一个文件地址 self.header['Token'] = token data = {'Image': img_address} logger.info(str(self.header)) logger.info(str(data)) response = requests.post(url=api, json=data, headers=self.header, verify=False) logger.info(str(response.json())) return response.json()
def quotation( self, type_: int = 3, coin_id: str = 'BTC', ) -> dict: """ 获取一次行情数据 """ data = { 'Type': type_, 'Action': 1, 'PriceCoin': 'USDT', 'TradeCoin': coin_id, 'Source': 2 } logger.info(str(data)) self.ws.send(json.dumps(data)) info = self.ws.recv() logger.info(info) # 以字典形式返回 return json.loads(info)
def order(self, trade_coin_id: str, direction: int = 66) -> dict: """ 委托下单 """ coin_data = None # 价格与价格小数位 price, price_decimal = 123400, 4 # 数量与数量小数位 volume, volume_decimal = 10000000, 6 if direction == 66: # 66 为买单 logger.info('进行买单操作'.center(30, '*')) elif direction == 83: # 83 为卖单 logger.info('进行卖单操作'.center(30, '*')) if trade_coin_id == 'ETH': coin_data = {'BrokerID': 10, 'PriceCoinID': 'USDT', 'TradeCoinID': trade_coin_id, 'Direction': direction, 'Price': price, 'PriceDecimal': price_decimal, 'Volume': volume, 'VolumeDecimal': volume_decimal, 'OrderSouce': 85, 'OrderType': 1, 'CustomInfo': 'test'} elif trade_coin_id == 'BTC': # 除 ETH币种交易外,其他币种暂未实现 pass elif trade_coin_id == 'LTC': pass send = {'Type': 1, 'UserID': self.user_id, 'Token': self.token, 'Data': coin_data} logger.info(str(send)) # 以json格式发送数据 self.ws.send(json.dumps(send)) ws_info = self.ws.recv() logger.info(ws_info) try: # 如果出现交易失败 停止交易 assert json.loads(ws_info)['Result']['Msg'] == '成功', '下单失败, 交易停止' logger.info('有内鬼,终止交易...') except AssertionError: self.__del__() return json.loads(ws_info)
def add_sell(self, u_id, biz_id=0, buy_type=1, decimal=2, amount=100, price=22200, payment_method=2, token=None, price_token=None): """ 用户新增卖单 """ # 除了接口地址外,其他参数完全与买单易之 logger.info('用户新增卖单'.center(30, '*')) api = self.host + '/v1/user/order/addsell' self.header['Token'] = token data = { "UserId": u_id, "BizId": biz_id, "Amount": amount, "Decimal": decimal, "Price": price, "PaymentMethod": payment_method, "BuyType": buy_type, "CoinID": "USDT", "WalletToken": price_token } logger.info(data) response = requests.post(url=api, json=data, headers=self.header, verify=False) logger.info(response.json()) return response.json()
def real_name_auth(self, name='lopo', country='中国', complexs="", address='深圳', card_type=1, card_code=None, id_card_front="", id_card_back="", token=None) -> dict: """ 实名认证 :param name: 真实姓名 :param country: 国家 :param complexs: 手持证件照片地址(暂不使用) :param address: 户籍地址 :param card_type: 证件类型 :param card_code: 证件编号 :param id_card_front: 证件正面照片地址 :param id_card_back: 证件反面照片地址 :param token """ if card_code is None: before = random.randint(1000000, 9999999) last = random.randint(1000000, 9999999) card_code = str(before) + str(last) logger.info('实名认证操作'.center(30, '*')) api = self.host['vip'] + '/general/real/check' data = {'Name': name, 'Country': country, 'Complex': complexs, 'Address': address, 'CardType': card_type, 'CardCode': card_code, 'IDCardFront': id_card_front, 'IDCardBack': id_card_back} self.header['Token'] = token logger.info(str(data)) response = requests.post(url=api, json=data, headers=self.header, verify=False) logger.info(str(response.json())) return response.json()
def login_account(self, phone_number="13100010001", password='******', login_source=1, verification_code='123456', ip='', machin_id='', need_verification_code=1, only_token=False) -> dict or str: # 密码方式进行登录账户need_verification_code: 是否需要验证码1 需要, 2 不需要 # only_token为True时只返回token api = self.host['vip'] + '/general/login' logger.info(str('进行登录操作').center(30, "*")) data = {'PhoneNumber': phone_number, 'Password': password, 'LoginSource': login_source, 'PhoneVerificationCode': "", 'IP': ip, 'MachinID': machin_id, 'NeedCode': need_verification_code} # 如果为 1 则必须传入验证码 if need_verification_code == 1: data['PhoneVerificationCode'] = verification_code logger.info(str(self.header)) response = requests.post(url=api, json=data, headers=self.header, verify=False) if response.status_code != 200: logger.error('服务器未启动'.center(30, '=')) raise ConnectionError logger.info(str(response.json())) if only_token: # 只返回Token值 return response.json()['Token'] else: return response.json()
def __init__(self, user_id, token): self.user_id = user_id self.token = token data = {'Type': 0, 'UserId': self.user_id, 'Token': self.token, 'Data': {"Source": 1, "Action": 1}} logger.info('进行登记用户'.center(30, '*')) logger.info(str(data)) self.ws.send(json.dumps(data)) logger.info(self.ws.recv())
def real_name_cancel(self, token) -> dict: """ 取消实名 """ logger.info('取消实名'.center(30, "*")) api = self.host['vip'] + '/general/real/cancel' self.header['Token'] = token logger.info(str(self.header)) response = requests.post(url=api, headers=self.header, verify=False) logger.info(str(response.json())) return response.json()
def check_veri(self, phone_number: str, verification_code: str, types: str) -> dict: """ 校验手机验证码 """ logger.info('验证手机验证码'.center(30, '*')) api = self.host + '/api/user/phone/vericheck' data = {'PhoneNumber': phone_number, 'VerificationCode': verification_code, 'Type': types} logger.info(str(data)) response = requests.post(url=api, data=data, headers=self.header, verify=False) logger.info(str(response.json())) return response.json()
def real_name_info(self, token) -> dict: """ 查找自己的实名认证信息 """ logger.info('实名认证信息'.center(30, '*')) api = self.host + '/user/general/real/search' self.header['Token'] = token logger.info(str(self.header)) response = requests.post(url=api, headers=self.header, verify=False) logger.info(str(response.json())) return response.json()
def get_all_wallet(self, token) -> dict: """ 获取用户所有钱包 """ logger.info('获取用户所有钱包'.center(30, '*')) api = self.host['vip'] + '/general/wallet/searchall' self.header['Token'] = token logger.info(str(self.header)) response = requests.post(url=api, headers=self.header, verify=False) logger.info(str(response.json())) return response.json()
def relieve_bank(self, u_id: int, password: str, token) -> dict: """ 解绑银行卡 """ logger.info('解除银行卡绑定'.center(30, '*')) api = self.host['vip'] + '/general/bank/delete' data = {'ID': u_id, 'Password': password} self.header['Token'] = token logger.info(str(data)) response = requests.post(url=api, json=data, headers=self.header, verify=False) logger.info(str(response.json())) return response.json()
def modify_password(self, token='zxc123..', new_password='******', phone_veri_code='123456') -> dict: """ 修改账户密码 """ logger.info('修改密码'.center(30, '*')) api = self.host['vip'] + '/general/pw/modify' self.header['Token'] = token data = {'NewPassword': new_password, 'PhoneVeriCode': phone_veri_code} logger.info(str(data)) response = requests.post(url=api, data=data, headers=self.header, verify=False) logger.info(str(response.json())) return response.json()
def extract_coin(self, coin_id, amount, decimal, password, address, phone_veri_code) -> dict: """ 提币 Api""" logger.info('提币操作'.center(30, '*')) api = self.host + '/api/user/wallet/withdraw' data = {'CoinID': coin_id, 'Amount': amount, 'Decimal': decimal, 'Password': password, 'Address': address, 'PhoneVeriCode': phone_veri_code} logger.info(str(data)) response = requests.post(url=api, data=data, headers=self.header, verify=False) logger.info(str(response.json())) return response.json()
def recharge_coin_record(self, record_type, page_index, page_count, token) -> dict: """ 获取充币提币记录 record_type: 1:所有 2:充币 3:提币""" logger.info('获取充提币记录'.center(30, '*')) api = self.host["vip"] + '/api/user/wallet/iorecord/search' data = {'RecordType': record_type, 'PageIndex': page_index, 'PageCount': page_count} self.header['Token'] = token logger.info(str(data)) response = requests.post(url=api, json=data, headers=self.header, verify=False) logger.info(str(response.json())) return response.json()
def get_coin_wallet(self, coin_id, token) -> dict: """ 获取指定币种钱包 """ logger.info('获取指定钱包'.center(30, '*')) api = self.host['vip'] + '/general/wallet/search' data = {'CoinID': str(coin_id)} logger.info(str(data)) self.header['Token'] = token response = requests.post(url=api, json=data, headers=self.header, verify=False) logger.info(str(response.json())) return response.json()
def get_all_info(self, user_id, token) -> dict: """获取银行卡及收款二维码信息""" logger.info('获取银行卡及收款二维码信息'.center(30, '*')) api = self.host['vip'] + '/api/user/bankpayqr/search' self.header['Token'] = token data = {'UserID': user_id} logger.info(str(data)) response = requests.post(url=api, json=data, headers=self.header, verify=False) logger.info(str(response.json())) return response.json()
def relieve_qr_img(self, u_id, password, token) -> dict: """ 解绑收款二维码 """ logger.info('取消绑定收款二维码'.center(30, '*')) api = self.host['vip'] + '/api/user/payqr/delete' data = {'ID': u_id, 'Password': password} self.header['Token'] = token logger.info(str(data)) response = requests.post(url=api, json=data, headers=self.header, verify=False) logger.info(str(response.json())) return response.json()
def bind_qr_img(self, img_address, pay_type: int, account, password, token, mark="asd",) -> dict: """ 绑定收款二维码 """ logger.info('绑定收款二维码'.center(30, '*')) api = self.host['vip'] + '/api/user/payqr/bind' data = {'Account': account, 'Mark': mark, 'Password': password, 'PayQRImage': img_address, 'PayType': pay_type} self.header['Token'] = token logger.info(str(data)) response = requests.post(url=api, json=data, headers=self.header, verify=False) logger.info(str(response.json())) return response.json()
def reset_password(self, phone_number: str = '13100010001', new_password: str = '123456', phone_veri_code: str = '123456', token: str = None) -> dict: """ 重置账户密码 """ logger.info('重置密码'.center(30, '*')) api = self.host['vip'] + '/general/pw/reset' data = {'PhoneNumber': phone_number, 'PhoneVeriCode': phone_veri_code, 'NewPassword': new_password} self.header['Token'] = token logger.info(str(data)) response = requests.post(url=api, json=data, headers=self.header, verify=False) logger.info(str(response.json())) return response.json()
def detailed_commission(self, coin_id, start_time, page_index, page_count, end_time, token) -> dict: """ 获取返佣明细 time格式为:20190701000000""" logger.info('获取币种信息'.center(30, '*')) api = self.host['vip'] + '/general/wallet/rebate/search' data = {'CoinID': coin_id, 'StartTime': start_time, 'PageIndex': page_index, 'PageCount': page_count, 'EndTime': end_time} self.header['Token'] = token logger.info(str(data)) response = requests.post(url=api, json=data, headers=self.header, verify=False) logger.info(str(response.json())) return response.json()
def check_price_token(self, token, price_password, only_price_token=True) -> dict or str: """ 检验资金密码 """ logger.info('校验资金密码'.center(30, '*')) api = self.host['vip'] + '/general/fundpw/check' self.header['Token'] = token logger.info(str(self.header)) data = {"Password": price_password, "RetToken": 1} response = requests.post(url=api, json=data, headers=self.header, verify=False) logger.info(str(response.json())) if only_price_token: return response.json()['Token'] return response.json()
def bind_bank_card(self, bank_id: int, card_number: str, card_owner: str, bank_addr: str, price_password: str, token) -> dict: """ 绑定银行卡 """ logger.info('绑定银行卡'.center(30, '*')) api = self.host['vip'] + '/general/bank/bind' data = {'BankID': bank_id, 'CardNumber': card_number, 'CardOwner': card_owner, 'BankAddr': bank_addr, 'Password': price_password} self.header['Token'] = token logger.info(str(data)) response = requests.post(url=api, json=data, headers=self.header, verify=False) # print(response.status_code) logger.info(str(response.json())) return response.json()