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
|
raise e
|
||||||
notify_url = env.entire_url(f'notify/{provider}')
|
notify_url = env.entire_url(f'notify/{provider}')
|
||||||
pl = PaymentLog(request._run_ns)
|
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)
|
channel = get_provider_channel(provider)
|
||||||
userid = await env.get_user()
|
userid = await env.get_user()
|
||||||
orgid = await env.get_userorgid()
|
orgid = await env.get_userorgid()
|
||||||
@ -116,7 +117,7 @@ async def create_payment(request, params_kw=None):
|
|||||||
currency = data.currency
|
currency = data.currency
|
||||||
plog = await pl.new_log(userid, orgid, provider,
|
plog = await pl.new_log(userid, orgid, provider,
|
||||||
amount,
|
amount,
|
||||||
fee, client_ip, currency=currency)
|
feerate, client_ip, currency=currency)
|
||||||
if plog:
|
if plog:
|
||||||
data.out_trade_no = plog.id
|
data.out_trade_no = plog.id
|
||||||
data.customerid = orgid
|
data.customerid = orgid
|
||||||
|
|||||||
@ -81,5 +81,5 @@ async def sor_get_pay_fee(sor, providerid, amount):
|
|||||||
exception(f'Exception:{e}')
|
exception(f'Exception:{e}')
|
||||||
rec.fee_rate = 0.00
|
rec.fee_rate = 0.00
|
||||||
debug(f'{rec=}, {rec.fee_rate=}, {amount=}')
|
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