Compare commits
No commits in common. "f07ff87209356f53aba28b0516192b313cb64746" and "8fc42ff82b3ee904acddd527f2985c7db4ac63c2" have entirely different histories.
f07ff87209
...
8fc42ff82b
@ -4,12 +4,11 @@
|
|||||||
"params": {
|
"params": {
|
||||||
"sortby": "id",
|
"sortby": "id",
|
||||||
"browserfields": {
|
"browserfields": {
|
||||||
"exclouded": ["id"],
|
"exclouded": [],
|
||||||
"alters": {
|
"alters": {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"editexclouded": [
|
"editexclouded": [
|
||||||
"id"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,7 +4,7 @@ from appPublic.log import debug,exception
|
|||||||
from ahserver.serverenv import ServerEnv
|
from ahserver.serverenv import ServerEnv
|
||||||
from .notify import get_provider, get_provider_channel
|
from .notify import get_provider, get_provider_channel
|
||||||
from .paylog import PaymentLog
|
from .paylog import PaymentLog
|
||||||
from .payfee import get_pay_fee, sor_get_pay_fee, get_paychannels, get_pay_feerate
|
from .payfee import get_pay_fee, sor_get_pay_fee
|
||||||
|
|
||||||
# 从 env 或配置载入 provider conf(这里只示例)
|
# 从 env 或配置载入 provider conf(这里只示例)
|
||||||
CONF = {
|
CONF = {
|
||||||
@ -137,8 +137,6 @@ def load_unipay():
|
|||||||
PROVIDERS["alipay"] = get_provider("alipay", CONF["alipay"]),
|
PROVIDERS["alipay"] = get_provider("alipay", CONF["alipay"]),
|
||||||
PROVIDERS["stripe"] = get_provider("stripe", CONF["stripe"])
|
PROVIDERS["stripe"] = get_provider("stripe", CONF["stripe"])
|
||||||
env = ServerEnv()
|
env = ServerEnv()
|
||||||
env.get_paychannels = get_paychannels
|
|
||||||
env.get_pay_feerate = get_pay_feerate
|
|
||||||
env.payment_notify = payment_notify
|
env.payment_notify = payment_notify
|
||||||
env.create_payment = create_payment
|
env.create_payment = create_payment
|
||||||
env.query_payment = query_payment
|
env.query_payment = query_payment
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
# payfee
|
# payfee
|
||||||
from ahserver.serverenv import ServerEnv
|
from ahserver.serverenv import ServerEnv
|
||||||
from sqlor.dbpools import DBPools
|
from sqlor.dbpools import DBPools
|
||||||
|
|
||||||
async def get_pay_fee(providerid, amount):
|
async def get_pay_fee(providerid, amount):
|
||||||
db = DBPools()
|
db = DBPools()
|
||||||
env = ServerEnv()
|
env = ServerEnv()
|
||||||
@ -10,70 +9,10 @@ async def get_pay_fee(providerid, amount):
|
|||||||
return await sor_get_pay_fee(sor, providerid, amount)
|
return await sor_get_pay_fee(sor, providerid, amount)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
async def get_paychannels():
|
|
||||||
env = ServerEnv()
|
|
||||||
db = DBPools()
|
|
||||||
dbname = env.get_module_dbname('unipay')
|
|
||||||
async with db.sqlorContext(dbname) as sor:
|
|
||||||
return await sor_get_paychannels(sor)
|
|
||||||
return None
|
|
||||||
|
|
||||||
async def sor_get_paychannels(sor):
|
|
||||||
env = ServerEnv()
|
|
||||||
dbname = env.get_module_dbname('unipay')
|
|
||||||
biz_date = env.get_business_date(sor)
|
|
||||||
sql = """select
|
|
||||||
a.id, a.name, b.fee_rate
|
|
||||||
from paychannel a left join payfee b
|
|
||||||
on a.id = b.channelid
|
|
||||||
where
|
|
||||||
a.enabled_date <= ${biz_date}$
|
|
||||||
and a.expired_date >= ${biz_date}$
|
|
||||||
and b.enabled_date <= ${biz_date}$
|
|
||||||
and b.expired_date >= ${biz_date}$
|
|
||||||
"""
|
|
||||||
recs = await sor.sqlExe(sql, {'channelid': channelid,
|
|
||||||
'biz_date': biz_date})
|
|
||||||
return recs
|
|
||||||
|
|
||||||
async def get_pay_feerate(sor, channelid):
|
|
||||||
env = ServerEnv()
|
|
||||||
db = DBPools()
|
|
||||||
dbname = env.get_module_dbname('unipay')
|
|
||||||
async with db.sqlorContext(dbname) as sor:
|
|
||||||
return await sor_get_pay_feerate(sor, channelid)
|
|
||||||
return None
|
|
||||||
async def sor_get_pay_feerate(sor, channelid):
|
|
||||||
env = ServerEnv()
|
|
||||||
dbname = env.get_module_dbname('unipay')
|
|
||||||
biz_date = env.get_business_date(sor)
|
|
||||||
sql = """select
|
|
||||||
a.id, a.name, b.fee_rate
|
|
||||||
from paychannel a left join payfee b
|
|
||||||
on a.id = b.channelid
|
|
||||||
where
|
|
||||||
a.enabled_date <= ${biz_date}$
|
|
||||||
and a.expired_date >= ${biz_date}$
|
|
||||||
and b.enabled_date <= ${biz_date}$
|
|
||||||
and b.expired_date >= ${biz_date}$
|
|
||||||
and a.id = ${channelid}$
|
|
||||||
"""
|
|
||||||
recs = await sor.sqlExe(sql, {'channelid': channelid,
|
|
||||||
'biz_date': biz_date})
|
|
||||||
if len(recs) > 0:
|
|
||||||
return recs[0]
|
|
||||||
return None
|
|
||||||
|
|
||||||
async def sor_get_pay_fee(sor, providerid, amount):
|
async def sor_get_pay_fee(sor, providerid, amount):
|
||||||
rec = await sor_get_pay_feerate(sor, providerid)
|
sql = """select * from payfee where id=${providerid}$"""
|
||||||
if rec is None:
|
recs = await sor.sqlExe(sql, {'id': providerid})
|
||||||
e = Exception(f'{providerid} pay channel not found')
|
if len(recs) < 1:
|
||||||
exception(f'Exception:{e}')
|
return None
|
||||||
raise e
|
return amount * recs[0].fee_rate * amount
|
||||||
if rec.fee_rate is None:
|
|
||||||
e = Exception(f'{providerid} channel has not defined fee rate')
|
|
||||||
exception(f'Exception:{e}')
|
|
||||||
raise e
|
|
||||||
|
|
||||||
return rec.fee_rate * amount
|
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user