μ€μκ° μ μ° κ΄λ¦¬ μμ€ν - λ¬Έμμλμ λ¬μ± μ°λμΌλ‘ μλνλ κ±°λ μΆμ λ° μ μ°
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β λ¬Έμμλμ λ¬μ± ββββββ Payμμ€ν
API ββββββ κ΄λ¦¬μ/μ
체 β
β (SMS μμ ) β β (FastAPI) β β (React SPA) β
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β β β
β ββββββββββΌβββββββββ β
β β SQLite DB β β
β β (κ±°λ/μ
체μ 보) β β
β βββββββββββββββββββ β
β β
βββββββββββββ WebSocket μ€μκ° μλ¦Ό βββββββββββββ
pay-system/
βββ backend/ # FastAPI λ°±μλ
β βββ main.py # ν΅ν© μλ² (639μ€)
β βββ requirements.txt # Python μμ‘΄μ±
β βββ Procfile # Railway λ°°ν¬
β βββ railway.toml # Railway μ€μ
β
βββ frontend/ # React νλ‘ νΈμλ
β βββ src/
β β βββ pages/
β β β βββ LoginPage.js # λ‘κ·ΈμΈ
β β β βββ AdminDashboard.js # κ΄λ¦¬μ λμ보λ
β β β βββ CompanyDashboard.js # μ
체 λμ보λ
β β β βββ CompanyCreate.js # μ
체 μμ±
β β βββ utils/
β β β βββ AuthContext.js # JWT μΈμ¦
β β β βββ SocketContext.js # WebSocket
β β βββ App.js # λ©μΈ μ±
β β βββ index.css # TailwindCSS
β βββ package.json
β βββ tailwind.config.js
β βββ vercel.json # Vercel λ°°ν¬
β
βββ README.md # μ΄ νμΌ
# κ°μνκ²½ μμ± λ° νμ±ν
cd pay-system/backend
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# μμ‘΄μ± μ€μΉ
pip install -r requirements.txt
# μλ² μ€ν
uvicorn main:app --reload --host 0.0.0.0 --port 8000
# μμ‘΄μ± μ€μΉ
cd pay-system/frontend
npm install
# κ°λ° μλ² μ€ν
npm start
# Vercel CLI μ€μΉ
npm i -g vercel
# νλ‘ νΈμλ ν΄λμμ λ°°ν¬
cd frontend
vercel --prod
Vercel (νλ‘ νΈμλ):
REACT_APP_API_URL=https://your-backend.railway.app
Railway (λ°±μλ):
PORT=8000
DATABASE_URL=sqlite:///./settlement.db
https://your-backend.railway.app/api/webhook/{API_KEY}
λν, μ ν, κ΅λ―Ό, μ°λ¦¬, νλ, κΈ°μ , SCμ μΌ, μ¨ν°, λꡬ, λΆμ°, κ΄μ£Ό, μ λΆ, κ²½λ¨, μλ§μ, μ ν, μ°μ²΄κ΅, μΉ΄μΉ΄μ€λ± ν¬, ν μ€λ± ν¬
# λ‘κ·ΈμΈ ν
μ€νΈ
curl -X POST "http://localhost:8000/api/auth/login" \
-H "Content-Type: application/json" \
-d '{"username": "fjrzl7979", "password": "79797979"}'
# μ
체 μμ± ν
μ€νΈ
curl -X POST "http://localhost:8000/api/admin/companies" \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"company_name": "ν
μ€νΈμ
체",
"login_id": "test123",
"password": "test123",
"bank_name": "λν",
"account_number": "123-456-789012",
"account_holder": "νκΈΈλ",
"fee_rate": 0.03
}'
μ΄ νλ‘μ νΈλ κΈ°μ‘΄ ꡬ쑰μμ μ 체μμ± λ²νΌμ΄ μλνμ§ μλ λ¬Έμ λ₯Ό μμ ν ν΄κ²°νμ΅λλ€:
/admin/companies/create
κ²½λ‘ μ μ λμπ μΆνν©λλ€! Payμμ€ν v4.0μ΄ μ±κ³΅μ μΌλ‘ ꡬμΆλμμ΅λλ€!
λͺ¨λ κΈ°λ₯μ΄ μλ²½νκ² μλνλ©°, ν΄λΌμ°λ λ°°ν¬κΉμ§ μ€λΉκ° μλ£λμμ΅λλ€. μ 체μμ± λ²νΌ λ¬Έμ λ μμ ν ν΄κ²°λμκ³ , μ€μκ° μ μ° μμ€ν μ΄ μμ μ μΌλ‘ μ΄μλ μ μμ΅λλ€.