İSTANBUL TEKNİK ÜNİVERSİTESİ BİLGİSAYAR VE BİLİŞİM FAKÜLTESİ MOBİL UYGULAMA İLE FATURA ÖDEME Bitirme Ödevi Burcu Güler 040090583 Cengizhan Paşaoğlu 040090548 Bölüm : Bilgisayar Mühendisliği Anabilim Dalı: Bilgisayar Bilimleri Danışman : Doç. Dr. Feza Buzluca Haziran 2014
İSTANBUL TEKNİK ÜNİVERSİTESİ BİLGİSAYAR VE BİLİŞİM FAKÜLTESİ MOBİL UYGULAMA İLE FATURA ÖDEME Bitirme Ödevi Burcu Güler 040090583 Cengizhan Paşaoğlu 040090548 Bölüm : Bilgisayar Mühendisliği Anabilim Dalı : Bilgisayar Bilimleri Danışman : Doç. Dr. Feza Buzluca Haziran 2014
ii Özgünlük Bildirisi 1. Bu çalışmada, başka kaynaklardan yapılan tüm alıntıların, ilgili kaynaklar referans gösterilerek açıkça belirtildiğini, 2. Alıntılar dışındaki bölümlerin, özellikle projenin ana konusunu oluşturan teorik çalışmaların ve yazılım/donanımın bizim tarafımızdan yapıldığını bildiririz. İstanbul, 2014 Cengizhan Paşaoğlu Burcu Güler
iii MOBİL UYGULAMA İLE FATURA ÖDEME ( ÖZET ) Mobil teknoloji kullanımı günümüzde hız kesmeden artmaktadır. Hemen hemen tüm firmalar artık web sitelerinin yanı sıra mobil uygulamalar ile de hizmet vermektedir. Bununla birlikte pek çok firma mobil platformları kullanarak hem potansiyel müşterileri etkilemeyi hem de hâli hazırda olan müşterilerine daha hızlı hizmet vermeyi amaçlamaktadırlar. Kullanılan mobil uygulamalar sayesinde bu işlemler daha az maliyetle ve müşteri memnuniyeti sağlanarak gerçekleştirilir. Mobil uygulamalar şirketlerin yanı sıra kullanıcılar tarafından da gün geçtikçe daha çok tercih edilmektedir. Bunun nedenleri arasında mobil uygulamaların hayatımızı kolaylaştırması, zaman ve paradan tasarruf ederek günlük ihtiyaçlarımızı karşılaması örnek olarak verilebilir. Aynı zamanda mobil uygulamalar kategorilere ayrılarak kullanıcıların ihtiyacı olan uygulamayı rahatça bulmasına olanak sağlar. Haberler, oyunlar, müzik, eğitim, iş, sağlık ve sosyal ağlar bu kategoriler arasında gösterilebilir. Fatura ödemelerinin mobil olarak gerçekleştirilmesi de mobil uygulamaların insan hayatına getirdiği en önemli kolaylıklardan biridir. İş hayatının getirdiği yoğun tempo ile beraber fatura ödemek için sırada beklemek ya da zaman sıkıntısı sebebiyle ödeme tarihini geçirmek kullanıcıların karşılaşabileceği en büyük problemlerdendir. Bu projede tüm bu problemler göz önüne alınarak hızlı ve güvenli bir şekilde ödeme işlemini gerçekleştiren bir uygulama hayata geçirilecektir. Uygulamanın çalışma platformu olarak Android seçilmiştir. Bu platformun seçilmesindeki nedenlerin başında Android işletim sistemi üzerinde uygulama geliştirmek için gerekli kaynakların çok olması ve bu kaynaklara kolaylıkla erişebilmesi gösterilebilir. Aynı zamanda piyasada bulunan Android cihazların her kesimden insana hitap ettiği düşünüldüğünde, uygulamanın daha büyük bir kitleye ulaşması olası ihtimaller arasındadır. Uygulama istemci tarafında Java programlama dilini kullanırken, sunucu tarafında PHP programlama dili ve MySQL veritabanı sorgu dili kullanılarak yapılmıştır. Kullanıcının güvenli bir şekilde ödeme yapmasını sağlayacak şifreleme işlemleri için OpenSSL kullanılmış olup HTTPS istemlerine cevap vermesi amaçlanmıştır. Uygulamanın temel çalışma prensibi üç aşamadan oluşmaktadır. Bunların ilkinde kullanıcı adı ve şifresiyle sisteme giriş yapmaktadır. Bir sonraki aşamada kameradan QR Code okutulması ve ödeme işleminin onaylanması amaçlanmaktadır. Son olarak da ödemenin gerçekleştirilip gerçekleştirilmediğine dair bir mesaj kullanıcıya iletilmektedir. Proje kapsamında gerçekleştirilen uygulamada, ödeme sırasında kullanıcıya yardımcı olması amacıyla bir algoritma geliştirilmesi amaçlanmıştır. Bu algoritmayla kullanıcının alışkanlıklarına bakarak kullanıcıya bir sonraki ödeme sırasında önerilerde bulunulması hedeflenmiştir.
iv PAYING BILLS WITH MOBILE APPLICATION ( SUMMARY ) Mobile technology usage is increasing unabated today. Almost all companies prefer mobile applications rather than their old-fashion websites. At the same time, many companies are intended to provide faster and safer services to customers and to influence their potential customers by using the mobile applications. These procedures are accomplished through the mobile applications less costly and more customer satisfaction for many companies. Other than companies, mobile applications are also preferred by individual users increasingly in today s technological world. Mobile applications make life easier and give an opportunity to supply daily needs in a cheap and time saver way. Hence these can be considered as main reasons of preferring mobile applications. Additionally, mobile applications can be given in a categorized way, so users can find whatever they wish easily. News, games, music, education, occupation, health and social networks can be given as examples of this categories. Mobile payment is also one of the most significant benefits which mobile applications bring to our life. People are not able to pay their bills until due time because of working in intensive tempo. Even if they can pay bills, they have to wait in queue for long hours. Therefore these can be given as biggest problems people face when they have payment. With this project, developing an application which gives opportunity to pay in a fast and secure way is aimed. Application is developed in Android platform. Being able to find numerous resources and reaching these resources easily can be gives as main reasons of choosing this platform. At the same time, more people prefer to use Android compared to other mobile operating systems. This is also taken into consideration to make more people use mobile payment application. Client side of the application is coded in Java language while the server side is developed in PHP and MySQL. MySQL is one of the most popular databases and it is used to store data mainly. It is also an open source database. When this is taken into consideration it is thought that this is beneficial for project budget, and MySQL is chosen for project database. PHP is used to implement database operations. These operations can be listed as adding and updating records to the database and deleting records from database. HTTPS is used to construct secure connection between server and client. This protocol sends and receives data as encrypted. In the application, sending data to the database and receiving data from database is implemented by HTTPS. This protocol is achieved by using HTTP with SSL. Therefore it uses certificates for communication. For the application OpenSSL is used for creating certificate. Using OpenSSL is not considered as a problem since it will not be on Google Play for a while. The main reason of using secure connection is that application needs valuable information such as credit card number and password. These information is received and sent as encrypted thanks to HTTPS to prevent hijacking.
v QR code is one of the most important technology which is used in the project. Usage of QR is increasing rapidly as technology develops and by taking this into account QR codes are used on bills for payment in the application. These codes stores information about bills. Bill number, amount of payment are two of this information. JavaScript Object Notation known as JSON format is used to define information in the QR code. This format uses human readable text to transmit data objects. In addition to this, JSON format is language independent and use conventions similar to any other programming languages. Therefore it is considered as the ideal data interchange format for the application. Zxing is used to read contents of QR code. This library is actually a standalone project, but it is compiled as a library and integrated to the project. Basically the mobile payment application is consist of three main steps. Login to system, reading the QR code with camera and confirming the payment procedure, informing user whether the payment is achieved or not. Firstly, users login to the system with their username and password. If the user is not registered to the application the sign up option is chosen to use the application. After this, QR code is read by using telephone camera. If the barcode is read successfully user can see information about the bill pay button on the telephone screen. User touch the pay button and the areas which requires credit card information occurs. These areas need to be filling and the operation needs to confirmed to complete the payment. After this step server send a message which informs user about whether the payment is a successful or not. An algorithm is also developed for the purpose of helping users. This algorithm tracks users payment habit and makes suggestions to the users in the next payment sessions. For instance if user pay with same credit card for several time application asks user if the same card is used before taking credit card information. Application uses this card as a default option for payments after that if user accepts this suggestion. Additionally user can cancel this default choice whenever he wants.
İÇİNDEKİLER 1 GİRİŞ... 1 1.1. Kapsam... 1 1.2. Yapılan Çalışmalar... 1 1.2.1. Daha Önce Bu Konuda Yapılan Çalışmalar... 1 1.2.2. Proje Çalışması... 3 2 PROJENİN TANIMI VE PLANI... 4 2.1. Proje İlerlemesi... 4 2.2. Zamanlama... 4 3 KURAMSAL BİLGİLER... 6 3.1. Android... 6 3.2. OpenSSL... 7 3.3. HTTPS... 9 3.4. QR Kod... 9 3.5. MySQLi... 10 3.6. JSON... 10 3.7. GitHub... 11 4 ANALİZ VE MODELLEME... 12 5 TASARIM, GERÇEKLEME VE TEST... 16 5.1. Genel Proje Yapısı... 16 5.2. Veri tabanı Tasarımı... 16 5.3. Ekran Tasarımı... 17 5.4. Öneri Algoritması... 19 6 DENEYSEL SONUÇLAR... 21 7 SONUÇ ve ÖNERİLER... 22 8 KAYNAKLAR... 24