27 lines
1.5 KiB
Plaintext
27 lines
1.5 KiB
Plaintext
async def payhuidiao(ns):
|
|
"""支付宝回调"""
|
|
db = DBPools()
|
|
async with db.sqlorContext('kboss') as sor:
|
|
date = await get_business_date(sor=None)
|
|
if ns:
|
|
recharge_logdatas = await sor.R('recharge_log', {'id': ns['out_trade_no'],'recharge_sno':ns['trade_no']})
|
|
if len(recharge_logdatas) < 1:
|
|
recharge_logdict = {}
|
|
recharge_logdict['id'] = ns['out_trade_no']
|
|
recharge_logdict['recharge_timestamp'] = datetime.datetime.now()
|
|
recharge_logdict['recharge_date'] = date
|
|
recharge_logdict['recharge_sno'] = ns['trade_no']
|
|
recharge_logdict['recharge_amt'] = ns['total_amount']
|
|
await sor.U('recharge_log',recharge_logdict)
|
|
recharge_logdata = await sor.R('recharge_log', {'id': ns['out_trade_no']})
|
|
recharge_amt = recharge_logdata[0]['recharge_amt']
|
|
fee_amts = float(recharge_amt) * 0.006
|
|
fee_amte = float(format(fee_amts, '.2f'))
|
|
recharge_log = {'customerid': recharge_logdata[0]['customerid'], 'recharge_amt': float(ns['total_amount']),
|
|
'action': 'RECHARGE_ALIPAY', 'recharge_path': '0', 'recharge_date': date,'fee_amt':fee_amte}
|
|
ra = AlipayRechargeAccounting(recharge_log)
|
|
await ra.accounting(sor)
|
|
await redirect('https://www.opencomputing.cn/#/paySuccess')
|
|
|
|
ret = await payhuidiao(params_kw)
|
|
return ret |