Files
ly-enterprise-wechat-paymen…/lyapp.py
2025-07-31 15:44:11 +08:00

163 lines
5.2 KiB
Python

from flask import Flask, request, redirect, abort, session
from utils import *
import os, _thread, urllib
import logging
from logging.handlers import TimedRotatingFileHandler
app = Flask(__name__)
app.config['SECRET_KEY'] = os.urandom(24)
def setup_logging():
"""配置日志系统,按天分割日志文件"""
# 创建日志目录
log_dir = "logs"
os.makedirs(log_dir, exist_ok=True)
# 设置日志格式
log_format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
formatter = logging.Formatter(log_format)
# 创建按天轮转的文件处理器
file_handler = TimedRotatingFileHandler(
filename=os.path.join(log_dir, 'lyapp.log'),
when='midnight', # 每天午夜轮转
interval=1, # 每天一个文件
backupCount=30, # 保留30天的日志
encoding='utf-8'
)
file_handler.setFormatter(formatter)
file_handler.setLevel(logging.INFO)
# 创建控制台处理器
console_handler = logging.StreamHandler()
console_handler.setFormatter(formatter)
console_handler.setLevel(logging.DEBUG)
# 获取根logger并配置
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
logger.addHandler(file_handler)
logger.addHandler(console_handler)
# 初始化日志配置
setup_logging()
# 获取当前模块的 logger
logger = logging.getLogger(__name__)
logger.info(f"LYPayApp started") # 会输出到文件和控制台
@app.route('/queryUserId', methods=['GET'])
def queryUserId():
# 获取支付明细
try:
code = request.args.get('code')
data = query_wx_userid(code)
if len(data) <= 11:
res = query_wx_fj_info(data)
data = res
print(f'http://web.jiyuankeshang.com/?user={data}')
return redirect(f'http://web.jiyuankeshang.com/?user={data}')
except Exception as e:
return {}
@app.route('/queryUser', methods=['GET'])
def queryUserApi():
# 获取支付明细
try:
id = request.args.get('user')
data = queryUser(id)
return data
except Exception as e:
return {}
@app.route('/getPaymentDetails', methods=['GET'])
def getPaymentDetails():
try:
id = request.args.get('user','')
id = id.replace(" ", "")
if not id:
return {}
data = query_pay_details(id)
return data
except Exception as e:
logger.error(f"getPaymentDetails",e)
return {}
@app.route('/test', methods=['POST'])
def test():
# 新增未收付明细 {"pay_amount": 20000, "id": "18515367096"}
try:
data = request.data.decode("utf-8")
print(data)
return {}
except Exception as e:
logger.error(f"addUnPayment",e)
return {}
@app.route('/addUnPayment', methods=['POST'])
def addUnPayment():
# 新增未收付明细 {"pay_amount": 20000, "id": "18515367096"}
try:
data = request.data.decode("utf-8")
data = data.replace("null", "None")
data = eval(data)
data = data['data']
if data['mode_type'] == "联合运营" and data['lydunjiao'] != "趸交":
logger.info(f"开始========", data)
data1 = {"pay_amount": 0, "id": "未收付","jg": data['jg'], "name": data['name'],
"form_code": data['form_code']}
print(data1)
_thread.start_new_thread(add_payment, ({"pay_amount": 0, "id": "未收付",
"jg": data['sijisuozaigongsi'], "name": data['company_jc'],
"form_code": data['yewubiaodanbianma']}, 1))
return {data}
else:
return {}
except Exception as e:
logger.error(f"addUnPayment",e)
return {}
@app.route('/addPayment', methods=['POST'])
def addPayment():
# 新增充值明细 {"pay_amount": 20000, "id": "18515367096"}
try:
data = request.data.decode("utf-8")
print(data)
data = data.replace("null", "None")
data = eval(data)
data = data['data']
if data['mode_type'] != "联合运营" or data['type'] != "转入" or data['zhtype'] != "预收款":
return {}
if not data['charge_amount']:
data['charge_amount'] = 0
if data['zxform_code'] == "":
_thread.start_new_thread(add_payment, ({"pay_amount": data['charge_amount'], "id": data['id_card'],
"jg": data['jg'], "name": data['name'],
"form_code": data['form_code'], "is_zx": 0}, 1))
else:
form_code = []
form_code = data['zxform_code'].split(',')
_thread.start_new_thread(add_payment, ({"pay_amount": data['charge_amount'], "id": data['id_card'],
"jg": data['jg'], "name": data['name'],
"form_code": form_code, "is_zx": 1}, 1))
return {}
except Exception as e:
logger.error(f"addPayment",e, data)
return {}
if __name__ == '__main__':
app.run(host="0.0.0.0", port=3009, processes=True)