Upload
bhuridech-sudsee
View
403
Download
2
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