PLATFORM / PAYMENT CYTECHTEAM DEV

Payment loop ที่ออกแบบมาเพื่อความถูกต้อง.

Payment CytechTeam Dev เป็นระบบเล็กที่แยกหน้าที่ชัดเจน: สร้างบิล รับแจ้งเตือนธนาคาร ตรวจหลักฐาน และยืนยันพร้อมแจ้ง webhook — โดยไม่ใช้สลิปเป็นแหล่งความจริง

domain.py
Pure money rulesPromptPay EMV, satang, proof matching — no DB/HTTP imports
engine.py
Checkout state machineOne proof, one eligible checkout, atomic PAID + outbox
http.py
Small HTTP adapterExplicit routes, bearer auth, no framework
webhook.py
Durable deliverySigned at-least-once outbox with bounded retries
ARCHITECTURE

แยกส่วนที่ควรแยก.

ทุก boundary มีเหตุผลด้านความปลอดภัยหรือความถูกต้อง ไม่ใช่เพื่อทำให้ diagram ดูใหญ่

Checkout

สร้าง QR พร้อมเพย์แบบ dynamic ต่อบิล เก็บ requested/actual satang และหมดอายุใน 15 นาที

Bank notification

รับข้อความ LINE ที่ลงนามแล้ว ตรวจ sender trust, direction, receiver และเวลาก่อนสร้าง bank event

Confirmation

ถ้ามีหลักฐานตรงหนึ่งบิล เปลี่ยน PAID และเขียน outbox ใน transaction เดียว; ศูนย์หรือหลายบิลไม่ถูกเดา

Webhook

HMAC-SHA256 signature, event ID, retry schedule และ dead-letter state ที่ตรวจได้

Tenant isolation

ทุก route ของร้านกรองด้วย merchant ที่ได้จาก key/session และไม่คืน secret กลับไปที่ browser

Observability

Overview, finance, usage และ public status อ่านจากข้อมูลจริง ไม่มี dashboard ที่แต่งตัวเลข

SECURITY POSTURE

เชื่อถือได้เพราะตรวจได้.

ไม่เพิ่ม sender จากชื่อที่ดูคล้ายธนาคาร และไม่ใช้ข้อความที่ไม่ได้ผ่าน signature envelope

senders
Exact MID หรือ badge + display nameค่า OA ที่ประกาศไว้ใน security.py เท่านั้น; ไม่มี generic bot flag
hmac
Internal LINE bridge signature±90 วินาที, X-Cytech-Time/X-Cytech-Signature, loopback bridge
keys
SHA-256 hashes onlyMerchant key และ console session เก็บเป็น hash; plaintext แสดงครั้งเดียว
money
Integer satangไม่ใช้ float ในการคำนวณหรือเปรียบเทียบจำนวนเงิน
ขอบเขตของ Payment CytechTeam Dev: ระบบ Live นี้รับข้อมูลจาก LINE Bank Notification ที่ผ่านการตรวจผู้ส่งและกฎจับคู่รายการ ไม่ใช่ Bank API Settlement โดยตรง โปรดตรวจบัญชีผู้รับ ยอดเงิน และความพร้อมของช่องทางธนาคารก่อนเปิดใช้งานกับลูกค้าจริง
NEXT STEP

ดู API หรือเปิด Console.

เอกสารมี endpoint จริงและตัวอย่างที่คัดลอกได้