fix: get_pay_fee 返回 fee_rate 而非 fee_rate*amount,修复双重乘法
get_pay_fee() 返回 fee_rate*amount,但 create_payment() 又把返回值当 feerate 传给 new_log(),new_log() 内部又乘 一次 amount,导致 pay_fee = fee_rate * amount²。 修复: - get_pay_fee() 改为只返回 fee_rate - create_payment() 自己计算 fee = feerate * amount - new_log() 传 feerate 而非 fee
This commit is contained in:
parent
a9c99305fc
commit
7a0e87e735
@ -105,7 +105,8 @@ async def create_payment(request, params_kw=None):
|
||||
raise e
|
||||
notify_url = env.entire_url(f'notify/{provider}')
|
||||
pl = PaymentLog(request._run_ns)
|
||||
fee = await get_pay_fee(provider, data.amount)
|
||||
feerate = await get_pay_fee(provider, data.amount)
|
||||
fee = feerate * data.amount
|
||||
channel = get_provider_channel(provider)
|
||||
userid = await env.get_user()
|
||||
orgid = await env.get_userorgid()
|
||||
@ -116,7 +117,7 @@ async def create_payment(request, params_kw=None):
|
||||
currency = data.currency
|
||||
plog = await pl.new_log(userid, orgid, provider,
|
||||
amount,
|
||||
fee, client_ip, currency=currency)
|
||||
feerate, client_ip, currency=currency)
|
||||
if plog:
|
||||
data.out_trade_no = plog.id
|
||||
data.customerid = orgid
|
||||
|
||||
@ -81,5 +81,5 @@ async def sor_get_pay_fee(sor, providerid, amount):
|
||||
exception(f'Exception:{e}')
|
||||
rec.fee_rate = 0.00
|
||||
debug(f'{rec=}, {rec.fee_rate=}, {amount=}')
|
||||
return rec.fee_rate * amount
|
||||
return rec.fee_rate
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user