54 lines
1.3 KiB
Python
54 lines
1.3 KiB
Python
from sqlor.dbpools import DBPools
|
|
|
|
class PaymentLog:
|
|
def __init__(self, env):
|
|
self.db = DBPools()
|
|
self.env = env
|
|
|
|
async def new_log(self,
|
|
userid, customerid, channel,
|
|
payment_name, amount, fee,
|
|
client_ip, currency='CNY'):
|
|
dbname = await self.env.get_module_dbname('unipay')
|
|
async with self.db.sqlorContext(dbname) as sor:
|
|
ns = {
|
|
"id": self.env.uuid(),
|
|
"customerid": customerid,
|
|
"payment_channel": channel,
|
|
"payment_name": payment_name,
|
|
"payer_client_ip": client_ip,
|
|
"amount_total": amount,
|
|
"pay_fee": fee,
|
|
"currency": currency,
|
|
"payment_status": '0',
|
|
"init_timestamp": timestampstr(),
|
|
"userid": userid
|
|
}
|
|
await sor.C('payment_log', ns)
|
|
return True
|
|
return False
|
|
|
|
async def cancel_log(self, logid):
|
|
dbname = await self.env.get_module_dbname('unipay')
|
|
async with self.db.sqlorContext(dbname) as sor:
|
|
ns = {
|
|
"id": logid,
|
|
"cancel_timestamp": timestampstr()
|
|
}
|
|
await sor.U('payment_log', ns)
|
|
return True
|
|
return False
|
|
|
|
async def payed_log(self, logid):
|
|
dbname = await self.env.get_module_dbname('unipay')
|
|
async with self.db.sqlorContext(dbname) as sor:
|
|
ns = {
|
|
"id": logid,
|
|
"payed_timestamp": timestampstr()
|
|
}
|
|
await sor.U('payment_log', ns)
|
|
return True
|
|
return False
|
|
|
|
|