create a test version

This commit is contained in:
ms lev
2021-12-01 14:51:19 +05:00
commit a1196a83ea
5 changed files with 132 additions and 0 deletions

1
python_qiwi/__init__.py Normal file
View File

@@ -0,0 +1 @@
import python_qiwi

View File

@@ -0,0 +1,76 @@
import requests
import time
import random
import string
class QiwiWwаllet():
def __init__(self, phone, api_token):
self.s = requests.Session()
self.s.headers['authorization'] = 'Bearer ' + api_token
self.phone = phone
def pay(self, to_qw, sum_p2p, comment=''):
sum_p2p = str(int(sum_p2p)) + '.00'
self.s.headers = {
'content-type': 'application/json',
'User-Agent': 'Android v3.2.0 MKT',
'Accept': 'application/json',
}
postjson = {"id": str(int(time.time() * 1000)), "sum": {
"amount": '2.00', "currency": "643"
}, "paymentMethod": {
"type": "Account", "accountId": "643"
}, "comment": str(comment), "fields": {"account": to_qw}}
res = self.s.post(
'https://edge.qiwi.com/sinap/api/v2/terms/99/payments',
json=postjson)
return res.json()
def payment_history(self, rows_num=5):
parameters = {'rows': str(rows_num), 'nextTxnId': '', 'nextTxnDate': ''}
h = self.s.get('https://edge.qiwi.com/payment-history/v2/persons/' +
self.phone + '/payments', params=parameters)
return h.json()
def bill(self):
letters = string.ascii_lowercase
return ''.join(random.choice(letters) for i in range(7))
def check(self, comment):
lastPayments = self.payment_history(20)
for payment in lastPayments:
qcomment = payment['comment']
if comment in qcomment:
return True
return False
def full_balance(self):
self.s.headers['Accept'] = 'application/json'
b = self.s.get(
'https://edge.qiwi.com/funding-sources/v2/persons/' + self.phone +
'/accounts')
return b.json()
def balance(self):
self.s.headers['Accept'] = 'application/json'
b = self.s.get(
'https://edge.qiwi.com/funding-sources/v2/persons/' + self.phone + '/accounts')
b = b.json()
b = b['accounts'][0]['balance']['amount']
return b
def get_profile(self):
self.s.headers['Accept'] = 'application/json'
p = self.s.get(
'https://edge.qiwi.com/person-profile/v1/profile/current?authInfoEnabled=true&contractInfoEnabled=true&userInfoEnabled=true')
return p.json()