update shop
This commit is contained in:
62
UI_V2/flask_server.py
Normal file
62
UI_V2/flask_server.py
Normal file
@@ -0,0 +1,62 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
import logging
|
||||
from logging.handlers import RotatingFileHandler
|
||||
from flask import Flask, request, jsonify
|
||||
from flask_cors import CORS
|
||||
|
||||
try:
|
||||
from dotenv import load_dotenv
|
||||
load_dotenv()
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
from UI_V2.helpers.netopia import verify_ipn, get_status
|
||||
|
||||
app = Flask(__name__)
|
||||
CORS(app, resources={r"/api/*": {"origins": "*"}})
|
||||
|
||||
# ---------- Logging ----------
|
||||
app.logger.setLevel(logging.INFO)
|
||||
_log_dir = os.getenv("LOG_DIR", "logs")
|
||||
os.makedirs(_log_dir, exist_ok=True)
|
||||
_handler = RotatingFileHandler(os.path.join(_log_dir, "netopia_api.log"), maxBytes=1_000_000, backupCount=3)
|
||||
_handler.setLevel(logging.INFO)
|
||||
_handler.setFormatter(logging.Formatter("%(asctime)s [%(levelname)s] %(message)s"))
|
||||
app.logger.addHandler(_handler)
|
||||
|
||||
|
||||
@app.get("/healthz")
|
||||
def healthz():
|
||||
return {"ok": True}, 200
|
||||
|
||||
@app.post("/api/payments/ipn")
|
||||
def ipn():
|
||||
try:
|
||||
raw = request.data
|
||||
data = verify_ipn(raw)
|
||||
app.logger.info("IPN OK: %s", data)
|
||||
return jsonify({"ok": True, "data": data}), 200
|
||||
except Exception as e:
|
||||
app.logger.exception("IPN verification failed: %s", e)
|
||||
return jsonify({"ok": False, "error": str(e)}), 400
|
||||
|
||||
|
||||
@app.get("/api/payments/status")
|
||||
def status():
|
||||
ntp_id = request.args.get("ntpID")
|
||||
order_id = request.args.get("orderID")
|
||||
try:
|
||||
resp = get_status(ntp_id=ntp_id, order_id=order_id)
|
||||
return jsonify({"ok": True, "data": resp}), 200
|
||||
except Exception as e:
|
||||
app.logger.exception("Status query failed: %s", e)
|
||||
return jsonify({"ok": False, "error": str(e)}), 400
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
host = os.getenv("API_HOST", "0.0.0.0")
|
||||
port = int(os.getenv("API_PORT", "9000"))
|
||||
app.logger.info("Starting NETOPIA Flask sidecar on %s:%s", host, port)
|
||||
app.run(host=host, port=port)
|
||||
Reference in New Issue
Block a user