2 คะแนน โดย arcoding 4 시간 전 | 6 ความคิดเห็น | แชร์ทาง WhatsApp

ผมได้สร้างและเผยแพร่ระบบประมวลผลการชำระเงินแบบโอเพนซอร์สชื่อ LOSLES ในฐานะโปรเจกต์ส่วนตัว

แนวคิดหลักของโปรเจกต์นี้คือ "ตรวจจับการโอนเงินเข้าบัญชี + ใช้จำนวนเงินนั้นเองเหมือนเป็นรหัสคำสั่งซื้อ"
โดยทั่วไป การชำระเงินผ่านการโอนเข้าบัญชีมักต้องผ่านกระบวนการดังต่อไปนี้

  • สมัครผู้ให้บริการ PG
  • จดทะเบียนธุรกิจ
  • ผ่านการตรวจพิจารณา
  • เชื่อมต่อ API
  • มีค่าธรรมเนียมการชำระเงิน
  • รอการโอนยอดชำระ

สำหรับนักพัฒนาเดี่ยวหรือโปรเจกต์ขนาดเล็ก สิ่งเหล่านี้มักเป็นภาระไม่น้อย
จึงเกิดแนวคิดว่า "เราจะระบุคำสั่งซื้อได้จากจำนวนเงินเพียงอย่างเดียวหรือไม่?" และได้สร้างระบบนี้ขึ้นมา

ตัวอย่างเช่น หากราคาสินค้าอยู่ที่ 10,000 วอน

คำสั่งซื้อแรก:
10,000 วอน

คำสั่งซื้อที่สองของสินค้าชิ้นเดียวกันภายใน 30 นาที:
9,999 วอน

คำสั่งซื้อที่สาม:
9,998 วอน

คำสั่งซื้อที่สี่:
9,997 วอน
...

ระบบจะกำหนดจำนวนเงินเฉพาะให้กับแต่ละคำสั่งซื้อในลักษณะนี้
(ในการใช้งานจริง จะเริ่มจากส่วนลด 99 วอน แล้วหักเป็น 98 วอน, 97 วอน, 96 วอน... ตามลำดับ)
ดังนั้นฝั่งเซิร์ฟเวอร์จึงสามารถระบุได้ว่าเป็นคำสั่งซื้อใดจากจำนวนเงินเพียงอย่างเดียว โดยไม่ต้องให้กรอกเลขคำสั่งซื้อแยกต่างหาก

แอป LOSLES Android มีหน้าที่ตรวจจับการแจ้งเตือนการเติมเงินของ KakaoPay และส่งข้อมูลไปยังเซิร์ฟเวอร์ภายนอกโดยอัตโนมัติ
แอปใช้สิทธิ์เข้าถึงการแจ้งเตือนของ Android (Notification Listener) เพื่อตรวจสอบการแจ้งเตือนจากแอป KakaoTalk และ KakaoPay แบบเรียลไทม์
เมื่อได้รับการแจ้งเตือนที่มีจำนวนเงินเติมเข้า ระบบจะดึงจำนวนเงินนั้นออกมาและส่งคำขอ POST ไปยัง URL ของเซิร์ฟเวอร์ที่ตั้งค่าไว้
เมื่อนำไปใช้ร่วมกับ LOSLES WEB Server ก็จะสามารถทำให้กระบวนการตั้งแต่ผู้ใช้โอนเงินไปจนถึงการประมวลผลว่าชำระเงินเสร็จสมบูรณ์เป็นแบบอัตโนมัติได้

โฟลว์ทั้งหมด

  1. ผู้ใช้สร้างคำสั่งซื้อ
  2. เซิร์ฟเวอร์กำหนดจำนวนเงินเฉพาะ
  3. ผู้ใช้โอนเงินเข้าบัญชีตามจำนวนดังกล่าว (ปัจจุบันรองรับเฉพาะ KakaoPay)
  4. แอป Android ตรวจจับการแจ้งเตือนการเติมเงิน
  5. ส่งจำนวนเงินไปยังเซิร์ฟเวอร์
  6. เซิร์ฟเวอร์จับคู่จำนวนเงินกับคำสั่งซื้อ
  7. ประมวลผลการชำระเงินเสร็จสิ้นโดยอัตโนมัติ

กล่าวคือ

ไม่ใช่ยึดตาม "ใครเป็นคนส่ง"
แต่ยึดตาม "ส่งมาเป็นจำนวนเท่าไร" เพื่อใช้ระบุการชำระเงิน

ข้อควรระวัง

ประเด็นสำคัญคือ LOSLES ไม่ใช่โปรเจกต์ที่ต้องการมาแทนที่ผู้ให้บริการ PG อย่างเป็นทางการ
สำหรับบริการขนาดใหญ่ ความสามารถด้านการคืนเงิน การโอนยอดชำระ ใบเสร็จ การจัดการข้อพิพาท และฟังก์ชันด้านความปลอดภัยที่ผู้ให้บริการ PG มอบให้นั้นยังคงมีความสำคัญ
อย่างไรก็ตาม สำหรับโปรเจกต์ส่วนตัวหรือการขายคอนเทนต์ดิจิทัลขนาดเล็ก
สถานการณ์ที่ว่า "แค่จะรับชำระเงินก็ต้องเริ่มตั้งแต่จดทะเบียนธุรกิจแล้วไปจนถึงผ่านการตรวจของ PG"
ทำให้รู้สึกว่าหนักเกินไป

จึงเป็นโปรเจกต์ที่ทดลองวิธีทำระบบชำระเงินอัตโนมัติโดยไม่ต้องผ่านกระบวนการดังกล่าว
ขณะนี้ยังอยู่ในเวอร์ชันเบต้าและกำลังเปิดรับฟีดแบ็ก
โดยเฉพาะอยากขอความเห็นในประเด็นด้านล่างนี้

  • ปัญหาของวิธีระบุตัวตนด้วยจำนวนเงิน
  • วิธีจัดการคำสั่งซื้อซ้ำ
  • ไอเดียในการปรับปรุงความปลอดภัย
  • ความเห็นจากผู้ที่มีประสบการณ์ใช้งานจริง

ขอบคุณครับ

6 ความคิดเห็น

 
cichol 44 분 전

ตัวอย่างเช่น ถ้าในร้านอาหารที่ซุปกิมจิก็ 10,000 วอน และซุปเต้าเจี้ยวก็ 10,000 วอน มีออเดอร์ 10,000 วอนเข้ามา แบบนี้ก็จะแยกไม่ออกใช่ไหมครับว่าสั่งเมนูไหน?

 
arcoding 38 분 전

แม้จะเป็นสินค้าคนละชิ้นแต่ราคาเท่ากัน ก็จำเป็นต้องตั้งส่วนลดให้ต่างกันทีละ 1 วอนด้วย เวลาใช้งานจริง ระบบจะไม่ได้ลงทะเบียนสินค้าไว้บนเซิร์ฟเวอร์ LosLes แต่จะดูราคาปกติของสินค้าแล้วปรับส่วนลดให้แตกต่างกันเอง

 
regentag 59 분 전

งั้นก็ต้องขายสินค้าเดียวกันซ้ำ ๆ ในราคาที่ต่างกันเหรอ?

 
arcoding 36 분 전

ถูกครึ่งหนึ่งผิดครึ่งหนึ่ง คือราคาปกติ 10,000 วอนนั้นเหมือนกัน
แต่คำขอชำระเงินครั้งแรกภายใน 30 นาทีจะลด 99 วอน
คำขอชำระเงินครั้งที่สองภายใน 30 นาทีจะลด 98 วอน เป็นลักษณะนี้ครับ ดูเหมือนว่าในบทความจะสื่อสารได้ไม่ชัดเจนนัก

 
zihado 2 시간 전

ถ้าลูกค้าส่งเงินผิดพลาด การจับคู่ก็คงพังเลยนะครับ

 
arcoding 1 시간 전

นั่นเป็นข้อเสียที่ใหญ่ที่สุดจริง ๆ
โครงการขนาดเล็กที่สามารถติดต่อสอบถามทาง DM ด้วยตนเองได้ก็อาจจะโอเค
แต่สำหรับบริษัทใหญ่ ๆ ดูเหมือนว่าทำสัญญากับผู้ให้บริการ PG แล้วใช้งานจะดีกว่า