优化API扣费函数
This commit is contained in:
parent
459392cf96
commit
031a0eb967
@ -1540,20 +1540,7 @@ def update_profile_email(email):
|
|||||||
|
|
||||||
@jingrow.whitelist()
|
@jingrow.whitelist()
|
||||||
def verify_api_credentials_and_balance(api_key: str, api_secret: str, api_name: str):
|
def verify_api_credentials_and_balance(api_key: str, api_secret: str, api_name: str):
|
||||||
"""
|
|
||||||
验证API密钥和团队余额
|
|
||||||
|
|
||||||
参数:
|
|
||||||
api_key: API密钥
|
|
||||||
api_secret: API密钥
|
|
||||||
api_name: API名称
|
|
||||||
|
|
||||||
返回:
|
|
||||||
{
|
|
||||||
"success": bool,
|
|
||||||
"message": str
|
|
||||||
}
|
|
||||||
"""
|
|
||||||
try:
|
try:
|
||||||
# 获取当前用户(管理员)的API信息
|
# 获取当前用户(管理员)的API信息
|
||||||
admin_user = jingrow.session.user
|
admin_user = jingrow.session.user
|
||||||
@ -1645,21 +1632,7 @@ def verify_api_credentials_and_balance(api_key: str, api_secret: str, api_name:
|
|||||||
|
|
||||||
@jingrow.whitelist()
|
@jingrow.whitelist()
|
||||||
def deduct_api_usage_fee(api_key: str, api_secret: str, api_name: str, usage_count: int = 1):
|
def deduct_api_usage_fee(api_key: str, api_secret: str, api_name: str, usage_count: int = 1):
|
||||||
"""
|
|
||||||
从API用户的团队扣除API调用费用
|
|
||||||
|
|
||||||
参数:
|
|
||||||
api_key: API密钥
|
|
||||||
api_secret: API密钥
|
|
||||||
api_name: API名称
|
|
||||||
usage_count: API使用次数,默认为1
|
|
||||||
|
|
||||||
返回:
|
|
||||||
{
|
|
||||||
"success": bool,
|
|
||||||
"message": str
|
|
||||||
}
|
|
||||||
"""
|
|
||||||
try:
|
try:
|
||||||
# 获取当前用户(管理员)
|
# 获取当前用户(管理员)
|
||||||
admin_user = jingrow.session.user
|
admin_user = jingrow.session.user
|
||||||
@ -1719,14 +1692,9 @@ def deduct_api_usage_fee(api_key: str, api_secret: str, api_name: str, usage_cou
|
|||||||
"message": "团队账户已禁用"
|
"message": "团队账户已禁用"
|
||||||
}
|
}
|
||||||
|
|
||||||
# 获取团队对象
|
# 获取API价格及描述
|
||||||
team_pg = jingrow.get_pg("Team", team[0])
|
|
||||||
|
|
||||||
# 获取团队余额
|
|
||||||
current_balance = team_pg.get_balance()
|
|
||||||
|
|
||||||
# 获取API价格
|
|
||||||
price = jingrow.db.get_value("Api Pricing", {"api_name": api_name}, "price") or 0
|
price = jingrow.db.get_value("Api Pricing", {"api_name": api_name}, "price") or 0
|
||||||
|
api_description = jingrow.db.get_value("Api Pricing", {"api_name": api_name}, "description") or api_name
|
||||||
|
|
||||||
if price <= 0:
|
if price <= 0:
|
||||||
return {
|
return {
|
||||||
@ -1744,7 +1712,7 @@ def deduct_api_usage_fee(api_key: str, api_secret: str, api_name: str, usage_cou
|
|||||||
"type": "Adjustment",
|
"type": "Adjustment",
|
||||||
"source": "Prepaid Credits",
|
"source": "Prepaid Credits",
|
||||||
"amount": -1 * float(total_price), # 使用负数表示扣减
|
"amount": -1 * float(total_price), # 使用负数表示扣减
|
||||||
"description": f"API使用费: {api_name} x {usage_count}次",
|
"description": f"API使用费: {api_description} x {usage_count}次",
|
||||||
})
|
})
|
||||||
|
|
||||||
# 保存交易记录
|
# 保存交易记录
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user