16
รายงานโครงการ ระบบสั่งซื้อสินค้าออนไลน์ (Online Purchase System) จัดทาโดย B5304516 นายภูริเดช สุดสี เสนอ อาจารย์วิชัย ศรีสุรักษ์ รายงานประกอบรายวิชา 423423 โครงการวิศวกรรมคอมพิวเตอร์ 3 ภาคการศึกษาที1/2556 มหาวิทยาลัยเทคโนโลยีสุรนารี จ.นครราชสีมา

ระบบสั่งซื้อสินค้าออนไลน์ (Online Purchase System)

Embed Size (px)

Citation preview

รายงานโครงการ

ระบบสงซอสนคาออนไลน (Online Purchase System)

จดท าโดย

B5304516 นายภรเดช สดส

เสนอ

อาจารยวชย ศรสรกษ

รายงานประกอบรายวชา 423423 โครงการวศวกรรมคอมพวเตอร 3 ภาคการศกษาท 1/2556

มหาวทยาลยเทคโนโลยสรนาร จ.นครราชสมา

สารบญ

เรอง หนา

บทท 1 : บทน า

1.1 ทมาและความส าคญของโครงการ 4

1.2 หลกการและเหตผล 4

1.3 วตถประสงค 5

1.4 เครองมอทใช 5

1.5 ระยะเวลาก าเนนการ 6

1.6 งบประมาณ 6

บทท 2 : หลกการท างาน

2.1 การเรมตนใชงาน WebSocket API 7

2.2 การด าเนนการของฝง Client 8

2.3 การด าเนนการของฝง Server 12

บทท 3 : สรปและขอเสนอแนะ

3.1 ขอบกพรอง หรอขอจ ากดของโปรแกรม 15

3.2 ขอเสนอแนะ 15

3.3 สรป 15

บทท 4 : บรรณานกรม

4.1 บรรณานกรม 16

แผนผงการท างานของระบบ

1

>>command

>>doing….

>>Save DB

เลอกท ารายการ เชอมตอผานระบบ Internet

หรอโทรศพท

ประมวลผลค าสง บนทกลงฐานขอมล

สงค าสง USSD

4

บทท 1 : บทน า

1.1 ทมาและความส าคญของโครงการ

ปจจบนการซอขายสนคาสามารถท าไดหลายชองทาง และมความสะดวกมากขนจากการใช

เทคโนโลยเขามาชวยในการท ารายการซอขายซงนอกจากจะชวยผใชบรการมความสะดวกรวดเรวแลว

ยงชวยใหผใหบรการสามารถน าขอมลทไดจากรายการสงซอไปใชประโยชนในดานตางๆ เชนวเคราะห

ความตองการของผใชบรการ ประมวลผลค าสงซอไดอยางรวดเรว มฐานขอมลลกคา ตรวจสอบการ

ช าระเงนไดทนท และสามารถใหบรการไดตลอดเวลาเปนตน ซงจากขอดเหลานท าใหมการประยกต

เทคโนโลยเขามาชวยในการช าระคาสนคาหรอบรการหลายประเภทเชน In-App Purchase ซงเปน

ระบบช าระเงนทตดมากบโปรแกรมประยกตในโทรศพทมอถอเพอช าระเงนแกผผลตโปรแกรมประยกต

นน หรอ Mobile Payment ซงเปนการช าระคาสนคาหรอบรการโดยใชโทรศพทมอถอเปนตวควบคม

การจายเงนโดยจะท าการสงไปทผใหบรการและผใหบรการจะหกเงนและคาบรการจากบญชผใชแลว

ด าเนนการจายเงนตามทผใชบรการสง

เนองจากการใชบรการดงกลาวมความจ าเปนตองเตมเงนเขาไปในบญชผใชซงจะกลายเปนเงน

เสมอนหรอเครดตในฐานขอมลของผใหบรการ ซงมความยงยากในการทตองสมครบญชผใชและการ

ยนยนบญชผใชหลายขนตอนท าใหไมสะดวก ดงนนจงมความตองการทจะซอสนคาผานระบบออนไลน

โดยใชเงนสดมากขนทกขณะ เพราะไมจ าเปนตองมบญชผใชและมความเปนสวนตวในการท าธรกรรม

เหมอนการท าธรกรรมผานธนาคารออนไลน (E-banking) ทวๆไป ดงนนผจดท าโครงงานจงไดจดท า

ระบบการซอขายสนคาผานระบบออนไลนโดยใชเงนสดขน เพอชวยอ านวยความสะดวกแกผใชบรการ

ดงกลาวขางตน

1.2 หลกการและเหตผล

เนองจากปกตการซอขายสนคาออนไลนมขอจ ากดในการท ารายการสงซอเนองจากตองใชคนคอย

ตดตามค าสงซอและสถานะการช าระคาสนคาอยตลอดเวลา รวมทงมความนาเชอถอต าเนองจากไมรวา

ผขายมสนคาจรงหรอไม ดงนนระบบเตมเงนออนไลนนจงจดท าขนเพอตอบสนองความตองการมนใจใน

การซอขายและใหบรการไดอยางรวดเรว โดยตวเครองรบช าระเงนจะด าเนนการรบรายการและโตตอบ

5

กบผใชงานผานหนาจอ Tablet ทรนระบบปฏบตการ Android เปนสวนของ User Interface ของ

ระบบ และใชการปอนขอมลดวยปมแยกจากเครองTablet ผานตวปรบอปกรณรบสงคา IOIO ใหรบคา

จากปมกดมาทระบบ และเมอท ารายการและยนยนความถกตองของรายการแลวระบบจงจะแจงราคา

คาใชจาย และใหปอนเงนเขาสระบบโดย IOIO จะสลบไปใชโมดลรบเงนจากผใช และเมอระบบ

ตรวจสอบการท ารายการถกตองแลวจะด าเนนการเชอมตอกบระบบอนทจ าเปนเชนระบบ API เตมเงน

โทรศพท แลวจงจะสงงานให IOIO จะสลบไปใชเครองพมพใบเสรจหรอเครองพมพบตรในกรณทการ

จายเงนตองการการยนยนดวยใบเสรจ นอกจานยงจะมฟงกชนทชวยในการออมเงนเพอซอสนคา หรอ

ออมเงนเกบส าหรบสงเสรมการออมไดอกดวย

1.3 วตถประสงค

1. ศกษาคนควาความรพนฐานในการเชอมตอระบบช าระเงนกบระบบช าระคาสนคาหรอบรการ

2. ศกษารบสงขอมลโดยใชตวสลบอปกรณรบสงขอมล IOIO

3. เพอสรางตนแบบอปกรณรบช าระเงนในการซอขายสนคาออนไลน

4. เพอสรางฐานขอมลออนไลนในการวเคราะหและวจยความตองการซอของผใชบรการในแตละ

สถานท

5. น าความรดานไมโครคอนโทรเลอรและในรายวชาอนๆ มาใชประยกตท าชนงานจรง

1.4 เครองมอทใช

1. MySQL

2. Android Developer Tool (ADT) with SDK API Level 16

3. Tablet support 3G with Android OS 4.1.2 (Jelly Bean)

4. IOIO activity board (PIC24FJ256DA)

5. ปมกด Navigator และ Numpad

6

1.5 ระยะเวลาด าเนนการ

กจกรรม มถนายน กรกฎาคม สงหาคม

1. ศกษาคนควาขอมล

2. เขยนเคาโครงของโครงการและด าเนนการ

ดานเอกสารโครงการ

3. ท าการเชอมตอระบบ API

4. ท าการเชอมตอ Tablet กบระบบ

5. สรางระบบช าระเงน

6. เชอมตอระบบรบสงขอมลกบ IOIO

7. ทดสอบระบบในภาพรวม

8. สรปผลและรายงานโครงการ

1.6. งบประมาณ 1. เครอง Tablet หรออปกรณเทยบเทา 3,500 บาท 2. อปกรณโมดลรบเงนชนดธนบตร 2,500 บาท 3. ปมกด 500 บาท 4. อปกรณสลบสญญาณ Input Output (IOIO) 2,500 บาท 5. เครองพมพใบเสรจ 5,000 บาท

รวม 14,000 บาท

7

บทท 2 : หลกการท างาน

2.1 การเรมตนใชงานของ WebSocket API

WebSocket คอ การเชอมตอการสงขอมลแบบ Full-Duplex โดยใช TCP protocol เพยง

Connection เดยวและไดมการรองขอ RFC 6455 ในป ค.ศ. 2011 โดยอาศยการท างานของ HTTP

protocol ในการยกระดบการใชงานการเชอมตอใหเปน WebSocket ท าใหการรองขอการใชงานคลาย

กบการรองขอ (Request) หรอตอบสนอง (Response) ของ HTTP header แตการใช WebSocket ม

ความสมพนธกบ HTTP protocol เพยงแคใชในการยกระดบการเชอมตอเปน WebSocket เทานน

และใชรปแบบขอก าหนดการยนยนตวตนแบบ CHAP (Challenge-Handshake Authentication

Protocol) โดยมการก าหนดรปแบบของการ Handshaking ดงน

GET /mychat HTTP/1.1 Host: server.example.com Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ== Sec-WebSocket-Protocol: chat Sec-WebSocket-Version: 13 Origin: http://example.com

HTTP/1.1 101 Switching Protocols

Upgrade: websocket

Connection: Upgrade

Sec-WebSocket-Accept:

s3pPLMBiTxaQ9kYGzzhZRbK+xOo=

Sec-WebSocket-Protocol: chat

ฝง Client รองขอการยนยนตวตน

ฝง Server ตอบสนองค ารองขอ

รป 1.แสดงตวอยางของ Handshake ของ ws protocol

8

รป 3.อปกรณ IOIO

โดย Sec-WebSocket-Accept เกดจาก

2.2 การด าเนนการของฝง Client

- IOIO และ Library

IOIO หรอเรยกวา “โยโย” เปนอปกรณใช

งาน Multi-Input/Output โดยเมอเราเสยบสายเชน

USB หรอตอผานระบบไรสายเชน Bluetooth กบ

อปกรณสงงาน IOIO กจะท าหนาทรบ Input หรอ

Output ตามทเราก าหนดไวได โดยอปกรณ

IOIO ทใชในการท าโครงการนเปนรน

PIC24FJ256DA ปฏบตงานทแรงดนไฟฟา 5-15V และกระแสไฟฟาท 1A โดยสามารถรบ

Input/Output สงสดไดถง 48 port และการใชงานอปกรณ IOIO นนมการเปดเผย Source code

และเปดให Download Library โดยสามารถเขาไป Download ไดทเวบไซต

https://github.com/ytai/ioio/

เอา dGhlIHNhbXBsZSBub25jZQ== จาก Client ตอทายดวย GUID ของเครอง Server

= dGhlIHNhbXBsZSBub25jZQ==258EAFA5-E914-47DA-95CA-C5AB0DC85B11

ท าการเขารหสแบบ SHA-1 สตรงทไดจากการตอทายดวย GUID

b37a4f2cc0624f1690f64606cf385945b2bec4ea เปน Hex

แปลง Hex หนงครง แลวเขารหสแบบ Base64

s3pPLMBiTxaQ9kYGzzhZRbK+xOo=

รป 2.แสดงการหา Accept key

9

รป 4. IOIO Library

รป 5.IOIO JAR Library

- Library

การเรยกใช Library ของ IOIO ใน Android Developer Tool (ADT) นนตองท าการตดตง

Library ใน Project -> Properties ดงตอไปน

ซงเปน API ทออกแบบมาเพอชวยใหการรบ Input/Output จาก IOIO มความสะดวกมากขน และ

เรยกใช Library จากภายนอกเพอใชในการเชอมตอ WebSocket ดงน

10

- เชอมตออปกรณ และเครอขาย

ขนตอนนเปนการเชอมตอวงจรทใชในการ

รบสงขอมลเชน Numpad, ปมกด, อปกรณรบเหรยญ

และอปกรณรบธนบตร เขากบ IOIO activity board

เพอใชในการรบสงขอมล และท าการเชอมตอ IOIO กบ

Android Tablet

การเชอมตอระหวาง Client กบ Server

สามารถเชอมตอโดยใช Internet ผานวธการใดกได เชน

GPRS, EDGE, 3G หรอ Wireless กสามารถเชอมตอได

เชนกน แตตองค านงถง IP Address ของฝง Server วาสามารถเขาถงไดจากภายนอกหรอไมเนองจาก

การใชงานตองใชการตดตอระหวาง Client กบ Server ในการแลกเปลยนขอมล และในกรณทตองการ

ความปลอดภยในการเชอมตอควรใชงานผานระบบ 3G เนองจากพนฐานของสถาปตยกรรมเครอขายม

ความปลอดภยมากกวาระบบอน

- การตดตงและใชงานระบบ

ตดตงอปกรณทงหมดเขาดวยกน ซง

รายละเอยดของแตละอปกรณมดงนปม

1) Navigator จะมสายทงหมด 5 สายโดยสายท 3

(สายกลาง) ของแตละขางท าหนาทเปน Common

เมอกดปมใดๆ แลวจะไดวงจรปดทสาย Common

ออกมาทสายเสนทปมถกกด

2) Numpad มสายทงหมด 5 สาย โดยทจะท าการวนลปเพอหาวากด

ปมใดซงแบงเปนแนวตงและแนวนอนซงแตละแนวมควบคมดวย 4 บท

Tablet

IOIO

Common

เมอกดปมน = 1000|0100

11

รป 6.เชอมตออปกรณเขาดวยกน

3) อปกรณรบธนบตรและเหรยญ ใช

Output ทออกมาจากตวอปกรณแต

ละตวจะถก Pull-up 5V ดวยตว

ตานทาน 10 KΩ เพอใหม Output

เสถยร โดยอปกรณนจะถกจายไฟฟา

แรงดน 12 V ให และจะให Oputput

ออกมาในรปแบบ Pulse โดยท

อปกรณรบเหรยญจะได 1 บาทตอ 1 Pulse แตอปกรณรบธนบตรจะให 10 บาทตอ 1 ลกคลน

และเมอเชอมตอ IOIO กบ Android tablet ทไดท าการโหลดโปรแกรมเรยบรอยและจายไฟให

ระบบแลวจะไดระบบดงภาพ แสดงใหเหนถงการพรอมใชงานของระบบ และระบบยงมการสง

hashcheck เพออางองตวตนมาจากทางฝงของ Client โดย Hash นเกดจากการน ารหสประจ าเครอง

UUID ทไมซ ากนในแตละเครองมาท าการหา hash ดวย MD5 หนงครงและน า MD5 ทถก hash แลว

Salt แบบตอทาย Cipher text แลวน าสตรงทไดหลงจากการ Salt นนไปเชา hash แบบ SHA-1 อก

หนงครง เสรจแลวจงสงไปท Server เพอยนยนตวตน

+12V

GND Output

12

รป 7.แผนภาพการท างานของ Server

2.3 การด าเนนการของฝง Server

การด าเนนการของฝง Server นนเมอมการรบขอมลมาจาก Client จะท าการตรวจสอบ

ขอมลเบอรโทรศพท หากมการค าสงทเกยวกบรายการบญชผใชจงจะบนทก Log ลงใน Server

ซงสามารถอธบายไดตามแผนภาพดงน

1

Server รบขอมลจาก Client เขามาแลวท าการบนทกใช

งาน Log หรอประวตการท ารายการ หากค าสงทรบผาน

WebScoket มานนเกยวของกบบญชเงนคงเหลอในระบบ

ของผใช

บนทก Log ลงฐานขอมล หรอดงขอมลออกมาแสดงผลตาม

กรณท Client รองขอ

>>command

>>doing….

>> Save to DB

USSD

โปรแกรมด าเนนการตามค ารอง เชนสง USSD โดยใช

AT Command ออก Serial port เพอบอกให

โทรศพทกดปมเตมเงน

Module โทรศพทมอถอจดการท า

ค าสงตามทถกรองขอ เชน USSD เตม

เงน / ซอบตรเกม

13

รป 8. เรยกใชการท างานของโปรแกรม

รป 9.รปแบบของฐานขอมล

โดยปกตแลวกอนทผใชจะเขาใชงานระบบเตมเงนไดนนจะตองไดรบการสรางบญชผใชงานซงใน

ฐานขอมลของโครงการนมโครงสรางของฐานขอมลเพอเกบ Log และบญชผใช ไวในระบบเพมท าการ

เชคยอดเงนในบญชวามเทาใด และตองเตมเพมเทาใด

14

รป 10.ดงงนมาแสดง และเตมงน

จากรป 9 จะเหนวาเมอมการตองการจะเตมเงนเขา

เบอร 0888888888 ระบบจะเรยกใชฐานขอมลเพอ

สอบถามขอมลคงคางบญชวามเหลออยเทาใด ซงหาก

เปนบญชทไมมในระบบจะท าการสรางบญชนนขนมา

ใหมโดยอตโนมต และหากมการใชงานจนวงเงน

เปลยนไป ระบบกจะปรบ Column ชอ balance ใน

บญชของเบอรทท ารายการใหเปนคาใหมทถก

ปรบปรงแลว

15

บทท 3 : สรปและขอเสนอแนะ

3.1 ขอบกพรอง หรอขอจ ากดของระบบ

ระบบทจดท าขนมขอจ ากดการใชงานคอความสามารถชนดอนนอกจากการเตมเงนโทรศพทมอถอ

ระบบ AIS ยงไมสามารถท าส าเรจ รวมถงการใชงานการยนยนตวตนในฝง Client โดยใชคาของฟงกชน

hash นนกรณนไมสามารถสรางความมนใจใหแกผรบไดเลยวาถกสงมาจากเครองของผสงจรงหรอไม

ฟงกชน hash เพยงรบรองวาไมมการแกไขขอมลระหวางทางเทานน

นอกจากนระบบยงมความไมเสถยรเนองจากบอยครงทพบวาปมทกดไดใน Numpad มความคลาด

เคลอนจากความเปนจรงทกด บางครงเกดอาการหนวงเวลา หากกดปมใดๆ คางไวหรอกดปมถๆ กน

และหากการเชอมตอ Android tablet กบ IOIO ตอคางไวกอนเรยนโปรแกรมอาจเกดปญหา Android

tablet ไมตรวจจบอปกรณ IOIO

3.2 ขอเสนอแนะ

เนองจากการใชงานในเชงพาณชยหากตองการความปลอดภยทสงกวาควรใชการงาน SSL (Secure

Socket Layer) โดยผาน WebSocket Secure (wss protocol) ทไดรบการรบรอง Digital signature

จาก CA แลวเพอท าใหการสงขอมลรบสงไดอยางปลอดภยมากยงขน และควรจะใช ROM ของ

Android ทถกดดแปลงมาโดยเฉพาะและเพอปองกนการไมตรวจจบ IOIO ของ Android tablet

3.3 สรป

การประยกตใชงานอปกรณ Tablet รวมกบการท างานอยางอนพบไดมากในปจจบนเนองจาก

อปกรณมราคาทลดลง ในขณะทประสทธภาพสงขนเรอยๆ และยงสามารถเพมคณสมบตใหมๆไดงาย

กวาเดมตางจากทใชการควบคมโดย Microcontroller ทตองท าการสงเขาศนยบรการหรอใชมนษยใน

การตดตง จงสามารถทจะแสดงผลการซอขายสนคาในรปแบบ GUI (Graphic User Interface) ท

นอกจากจะท าใหการใชงานสะดวกมากขนแลว ยงท าใหการท าธรกรรมตางๆงายขนไดโดยไมตองมบญช

ธนาคาร และสามารถใชบรการไดตลอด 24 ชวโมงอกดวย

16

บทท 4 : บรรณานกรม

4.1 บรรณานกรม

- (http://en.wikipedia.org/wiki/WebSocket. 2013)

- ytai. (31 Oct 2010). IOIO Documentation. https://github.com/ytai/ioio/wiki.

- (http://www.robotfreak.de/blog/en/android-en/ioio-robotics-tutorial-1-ultrasonic-

sensor/732.2013)

- (http://developer.android.com/guide/components/index.html.2013)

- Autobahn project. (2013). AutobahnAndroid is an open-source for android library.

http://autobahn.ws/android

- Jiramot Numnam(30 Nov 2008). Send SMS via AT Command by using Java.

http://www.jiramot.info/send-sms-via-at-command-by-using-java