A Quick Response QR Code Generator With Mobile Scan Application For Mobile Network Recharge Operations
A Quick Response QR Code Generator With Mobile Scan Application For Mobile Network Recharge Operations
International Journal of Scientific and Engineering Research IJSER Volume 10, Issue 7, July 2019
ISSN 2229-5518
Abstract- This paper, a Quick Response (QR) Code Generator with Mobile Scan Application for Mobile Network Recharge Operations (GSM Networks)
tries to implement a system with an excellent cross platform compatibility. The emergence of the Android Mobile Operating System has brought about a
huge change in the smart phone industry. It has contributed to the increase in the range of services which a smart phone can provide. The Quick
Response (QR) Code technology can be regarded as a key technology in the future of mobile network operators in the telecommunication industry. This
work is to present a model of mobile recharge solutions using the QR Code as the communication link, enabling encryption of transaction details using
the python flask framework as well as their ability to be used in the exchange of financial value. The system developed is a new android mobile wallet
application which was developed using the object oriented analysis and design methodology. Our experimental result shows that the new system has
better security features as it deploys dual authentication.
Index Terms: Android Operating System, Mobile Network Operators, Mobile Application Scanner, Quick Response Code (QR), Python Flask
Framework, Recharge Vouchers, Smart Phone.
IJSER
1.0 INTRODUCTION
The QR Code is the trademark for a type of matrix codes as compared to the one-dimensional barcode and it
barcode (two-dimensional barcode) first designed by can hold more data because it uses both the horizontal and
the automotive industry in Japan. Also, a barcode is a vertical axis. It is widely used in different fields such as
machine-readable optical label that contains information manufacturing and mobile marketing. QR codes have a
about the item to which it is attached. A QR code uses four more advanced error correction mechanism and are more
standardized encoding modes (numeric, alphanumeric, reliable as it has a faster speed than other codes (Adeel et al.,
byte/binary, and kanji) to efficiently store data; extensions 2014).
may also be used. It has a larger set of machine readable Below is a sample of a QR Code.
International Journal of Scientific and Engineering Research IJSER Volume 10, Issue 7, July 2019
ISSN 2229-5518
utilized in governments and companies. In 2011, the Royal be revealed (Susono and Shimomura, 2006). The revealed
Dutch Mint announced that QR Code which will be recharge codes are then subsequently entered into the
embedded into the official coin would direct a user to a subscribers’ mobile devices. A lot of time is consumed in
website about the Royal Mint’s centennial. The world's this process which is prone to error as the recharge code
largest QR Code is created by Hacherspace and painted on may have up to a sequence of sixteen numbers. Repeatedly
the top of their company's building in Charlotte, North entering wrong recharge pins three times may lead to the
Carolina in (2010). In China, the QR Code is used on the blockage of individual’s mobile line. Furthermore, the
train tickets on the corner of the right bottom and the scratched recharge pins must be entered in a MNOs
names of passengers and relevant personal information are specified format. For instance, MTN Nigeria
also included in this QR Code (Ahamad S. S. et al., 2014). communications expects her subscribers to use
*555*recharge_code# for their payment while GLO expects
Several pricing models have been postulated for services a subscriber to use *123*recharge_code#. Airtel expects a
provided by MNOs. These include Pre-pay and Post-pay subscriber to use *126*recharge_code# while EMTS expects
Pricing Model, Smart Data Pricing (SDP) model, Bundling *222*recharge_code# to be used by a subscriber (Frank et al.,
Strategy based SDP, Micro-billing framework, Sealed-bid 2011). As simple as these steps seem to be, not all
auction-based pricing, Sealed-bid reverse auction-based subscribers can accurately employ the payment method
pricing, Cost-based pricing, Stackelberg game-based which has led to errors and subsequent forfeiture of the
pricing, metered charging, Hybrid pricing model, Pay-as- acquired recharge pins as the case may be.
you-go, Post-Paid and Pre-Paid. However, the most The objective of this study is to use a Python Flask
IJSER
frequently used pricing model used in Nigeria is the pre- Programming language in designing the QR Code mobile
paid and post-paid pricing models. For any of these pricing network operating recharge system, that is, a mobile
models, an exchange of cash for intended services is application that can read, decode and upload the mobile
expected (Lu et al., 2017). network operator (MNOs) recharge code. The development
Post-paid pricing model is an account-based model where and use of QR codes was catalyzed by the need to speed up
subscribers are expected to deposit any amount into the the transaction process by reducing the number of user
MNOs bank account. However, with the pre-paid option, inputs when recharging with any of the mobile network
subscribers are expected to acquire the respective MNOs services like MTN. A sample of the existing recharge pin is
recharge vouchers. After acquisition, subscribers are shown below.
expected to scratch the vouchers for the recharge codes to
International Journal of Scientific and Engineering Research IJSER Volume 10, Issue 7, July 2019
ISSN 2229-5518
2.1 Materials: The materials used in the experimental software. Python is a great language for beginners, because
work were majorly software based. it is easy to read and understand. You can also do so many
2.1.1 Python Flask Framework: Flask is a micro web things with Python flask that makes it easier to stick with
framework written in Python. It is classified as a micro the language for quite a while before needing something
framework because it does not require particular tools or else. Python finds itself at home when creating Web Apps
libraries. It has no database abstraction layer, form like Instagram and helping researchers make sense of their
validation, or any other components where pre-existing data (Susono, et al, 2006).
third-party libraries provide common functions. However, The syntax in python helps the programmers to do coding
Flask supports extensions that can add application features in fewer steps as compared to java or C++. Debugging can
as if they were implemented in Flask itself. It provides the be done easily with this language too. Python also
user with libraries, modules and tools to help build Web- processes XML and other markup languages as it can run
Applications such as a blog or wiki. on all modern operating systems through same byte code.
The unit testing of the developed mobile network recharge The programming language used in this project is Python
voucher application was carried out using Python flask Flask Programming. We also made use of HTML, CSS,
frame work. Python flask is a unit testing framework that Bootstrap, and Java Script, and we made use of the
IJSER
provides a Java Virtual Machine (JVM) compliant version Notepad ++ 6.7 as the code editing environment (Sowern,
of the Android Mobile Scanner App. This permits 2011).
developers to write codes to test each units of their android Additionally, C-Sharp Programming Language was used.
application and run them on android studio MVC IDE The C# is a hybrid of C and C++, it is a
while still using the Android Application Program Interface Microsoft programming language developed to compete
(API). with Sun's Java language. C# is an object-
2.1.2 Android Studio IDE: Android Studio is the official oriented programming language used with XML-based
integrated development environment (IDE) for Android Web services on the .NET platform and designed for
application development. It is based on the IntelliJ IDEA, improving productivity in the development of Web
a Java integrated development environment for software, applications.
and incorporates its code editing and developer tools.
Android Studio uses an Instant Push feature to push code 2.2 METHODS
and resource changes to a running application. It has a code The system implementation went through some
editor that will assist the developer with writing code and processes/stages as described below for maximum
offering code completion, refraction, and analysis. This effectiveness:
paper work like every other project in Android Studio has
one or more modalities with source code and resource files.
Android Studio was implemented in this research too. 2.2.1 The Study and Presentation of Mobile Scan App:
The rise of this innovative mobile technology means a
2.1.3 (Android) Application Program Interface (API): phone is no longer simply a phone; it’s a multimedia device
This is a set of routines, protocols, and tolls for building with a range of potential implications for the world of
software applications. Basically, an API specifies how packaging. Amongst the most intriguing of these is the
software components should interact. Additionally, a good quick-response (QR) Code, a two-dimensional code (also
API makes it easier to develop a program by providing all called a matrix barcode) designed to be scanned by
the building blocks. A programmer then puts the blocks smartphones. These codes, which appear as small white
together. This work used the API to build a solid protocol squares covered with patterns of black modules, allow
for enabling the QR Code Generator Application to consumers to access additional information through
function maximally. website links, images and videos on their phones, thus not
compromising the design or available space of product
2.1.4 The Programming Language Used:
packaging as indicated. Currently, the use of smartphones
Python flask is an interpreter, high-level, general-purpose
and internet-enabled cell phones are increasing daily.
dynamic programming language used for everything, from
According to marketing data, we should expect
server automation to data science. It is an open-source
smartphones to be in the hands of half of all mobile users at
401
4
International Journal of Scientific and Engineering Research IJSER Volume 10, Issue 7, July 2019
ISSN 2229-5518
the end of the year 2020. Based on this analysis, we were encoded so as to determine its data type and the
convinced that QR Codes can now be read by almost all appropriate encoding mode to be adopted. The recharge
mobile phones (Frank and Samuel, 2011). PIN being considered here is of numeric data type hence;
numeric encoding mode was adopted.
2.2.2 QR Code Generation: The QR Code generation went Stage 2: Data Encoding: The data encoding process
through the following development processes: includes the following:
Stage 1: Data Analysis: Usually, the QR code can be of four i. QR Error Correction Levels: There are four levels
data types: numeric, alphanumeric, byte, and Kanji. These of error correction depending on their error correction
data types can be encoded into string of bits 1’s and 0’s in capabilities as shown in table 1 below.
different ways. Hence, this stage analyzed the data to be
IJSER
Error correction level L has the capability to recover 7 5678 1234 is to be encoded using version 1 QR code in
percent of damaged data while error correction level M numeric mode, its character count indicator as documented
could recover 15 percent of damaged data. Similarly, 25 in QR code specification will be 10 bits. The length of the
percent and 30 percent of impaired data could be restored PIN to be encoded will be counted and converted into
by error correction level Q and H respectively. With these binary. In this case, the length is 14 and in binary is 1110.
conditions, one would have preferred error correction level Since it’s not up to the required 10 bits for version 1 QR
H. However, the higher the correction level, the larger the code in numeric mode, 0’s will be added to it to make it 10
bytes to be required as well as the size of the QR code. The bits yielding 0000001110. Attaching the numeric encoding
appropriate QR code for recharge voucher purposes are mode 0001 before the most significant bit (MSB) makes it
maximum of 7,089 characters for numeric data, 4,296 characters 00010000001110 which is the final character count indicator
for alphanumeric data, 2,953 bytes for binary data; and it is not (Susono and Shimomura, 2016).
usually very large hence; error correction level L was v. Encoding the input data: the chosen encoding
adopted (Kieseberg et al., 2010). mode will be used to encode the input data. Different data
ii. Determining the appropriate data version: QR encoding can be used by QR Code. Their complexity
code could be in different sizes called versions. Version 1 is influences the amount of actual characters that can be
of 21 × 21 pixel dimension while the next version is 4 levels stored inside the code.
higher than the previous version. Furthermore, each Stage 3: Error Correction Coding:
version has different character capacities which also Errors as a result of improper handling of the QR code may
depend on the encoding mode. The numeric mode and undermine the credibility of the data encoded in the QR
version 1 was adopted as it has 41-character capacity which code; therefore, when encoding the data, code words
is sufficient for the proposed task. needed to correct the errors are also generated. Hence, both
iii. Determining the mode indicator: Each encoding the encoded data and these code words will be read by the
mode has a four-bit mode indicator that identifies it. The QR scanner and compared in order to ascertain if the
encoded data must start with the appropriate mode correct data are decoded. As specified, a version 1 QR code
indicator that specifies the mode being used for the bits that with error correction level L can have up to 19 data code
come after it. A sequence of 0’s and 1’s in four-bits are used words in a single block, and only 7 error correction code
to indicate the chosen encoding mode. For numeric words would need to be generated (Lombardo et al., 2012).
encoding mode, 0001 is the mode indicator that will be
used (Mohamud, 2012). 3.0 DISCUSSION AND RESULTS
iv. Determining the character count indicator: After a successful unit testing, subsequently, user
Character count indicator specifies the number of acceptance testing of the mobile application was carried
characters to be encoded. For instance, if recharge PIN 1234 out. A user acceptance test was conducted among some
402
5
International Journal of Scientific and Engineering Research IJSER Volume 10, Issue 7, July 2019
ISSN 2229-5518
volunteers who used the application for some months. questions that were asked the participants. “Did you
Initial crashes were reported as a result of the following attempt to scan the QR Code symbol with your phone or
reasons: other device when you saw the symbol”? 17.5% of
When lower android versions were used. participants answered “Yes” and 82.5% answered “No” as
When there was low memory space in volunteers’ shown in Figure 3. The results presented show that among
mobile devices or as a result of programming bugs. the current sample among mobile network users, it is found
In the user acceptance test, a number of questions were out that most of customers do not attempt to scan the QR
used to capture mobile network user’s awareness, opinions, Code symbol when they saw it.
interests and usage regarding QR Codes in the process of The second question of the section two is, “Does your
carrying out this research work (Pukkasenung, 2016). device have a QR Code Reader software application”?
These questions were divided into two sections that are 18.1% of all students responded “Yes,” and 32.2%
shown at the questionnaire. In the first part of the answered, “No” and 49.7% of all students answered “No
questionnaire, QR Code technology consisted of two Idea”(Madureira,2017).
IJSER
CUSTOMERS CUSTOMERS
3.1 Result Analysis: The result from the tests carried (Recharge Network Code: Eg. MTN) that they wanted to
out from this experiment was done by the generated QR create and then enter the information to be attached with
Codes in the following process stated below: the symbol. Then click “Create QR code” button and then
a. QR Code Creation: There are two (2) ways the QR the QR code symbol gets generated on the right side of the
Codes can be generated. Firstly, a user can go to a website screen. Now it can be downloaded by clicking on
that generates QR codes. The www.qr-code-generator.com “Download” button present below the generated code
is used here to create a QR code symbol. (Sutheebanjard,2010).
b. Figure 4 below shows how a QR Code can be
generated. The Admin/Users can choose the type of code
403
6
International Journal of Scientific and Engineering Research IJSER Volume 10, Issue 7, July 2019
ISSN 2229-5518
IJSER
Figure 4: Creating QR Codes
Secondly, the algorithm below is the second process of Type in the password as the administrator who
generating the QR Codes as explained in this work: manages the application.
Install the recharge card generation and Follow the description in the dialogue box
management software application into the displayed on the screen on how to input the type of
Computer System. recharge voucher needed, (for instance MTN 100naira) and
Click on the run program from the auto run in the batches of cards to be printed.
your personal computer/android phone. Click on generate recharge card button to perform
Click next to specify the path of installation. the task.
Follow all the instruction displayed to complete Print the QR code images displayed in the screen.
the software installation. End
The system flowchart is shown below:
404
7
International Journal of Scientific and Engineering Research IJSER Volume 10, Issue 7, July 2019
ISSN 2229-5518
Start
Authorized Network NO
Mobile user Access Denied
YES
IJSER
Select the type of
network e.g. MTN
End/Log out
International Journal of Scientific and Engineering Research IJSER Volume 10, Issue 7, July 2019
ISSN 2229-5518
Start
Install Scanner
Application into
the Android Phone
IJSER
Place the Scanner
Panel on the QR
Code Image
Automatic Loading of
the QR Code Pin by the
Mobile App
End/Log Out
Figure 6: Flow Chart by the End User (mobile network users) of the Proposed System
c. Scanning a QR Code: To scan or read a QR code, application and bring the camera of smart phone in front of
the user is required to install a QR code scanner app on his the QR code to scan it. It will automatically display the
smart phone. A number of QR code scanner apps are there content of QR code scanned as shown
on app stores for free. After installation, start the
406
9
International Journal of Scientific and Engineering Research IJSER Volume 10, Issue 7, July 2019
ISSN 2229-5518
IJSER
Figure 7: Scanning QR Code
c. Reading the QR Code Recharge Voucher MNOs USSD is displayed. This splash screen is optional as
Users are expected to employ the developed QR Code it can be hidden in the settings options of the mobile
reader application to scan the obtained QR code recharge application. The extracted information is further forwarded
voucher. The QR code region is expected to be placed to the dialer application of the mobile phone before the
inside the red square so as to ensure correct positioning and subscriber will be credited with the value of the services
accurate capturing of the QR code. Afterwards, a splash paidfor.
screen which contains the extracted recharge codes with
407
10
International Journal of Scientific and Engineering Research IJSER Volume 10, Issue 7, July 2019
ISSN 2229-5518
30/3/2019 12:15PM
IJSER
Figure 8: The Customized QR Code Recharge Voucher
4.0 CONCLUSIONS This work has introduced a Quick Response (QR) Code
This platform could be used by different security generator with Mobile Scan Application for Mobile
conscience organizations. Text files or password system Network Recharge Operations. It has successfully
could be encrypted into QR Code and be read by a mobile demonstrated how QR codes can be used to secure Mobile
device, etc. The work is achieved by the use of python flask Network recharge vouchers with a view to prevent
framework which is the main interface for generating the unauthorized access to recharge pins that has characterized
QR Codes. The system will have a login access point to the existing recharge voucher patterns. The standalone
prevent unauthorized user to have access to the QR code software application developed was used to generate the
generating session. They generate QR Code one after the QR code while the mobile application introduced was used
other in other to store the encrypted string into Sqlite to read the recharge code information embedded in form of
Database Models. On the other hand, a mobile QR code QR code. The advent of smartphones with powerful
scanner makes it easier to use mobile application to identify features like mega pixel camera has also made the QR code
the encrypted code. scanning process easier contributing to its wide usage and
acceptability. This has shown that QR code can find
408
11
International Journal of Scientific and Engineering Research IJSER Volume 10, Issue 7, July 2019
ISSN 2229-5518
practical applications in mobile network recharge operation the software application can be improved upon to generate
services N750, N1500, etc recharge coupons as well as other
This system as it is based on MTN network can only coupons for other mobile networks, like globacom, 9mobile,
generate N100, N200, N400, QR recharge code. However, etc.
IJSER
Computer Science, 83(Ant), 705–711. https://doi.org/10.3390/su9071186.
Bojjagani S., and Sastry V. N. (2017). A secure end-to-end Lu J., Yang Z., Yuan W., Li L., Chang C. C., et al. (2017).
SMS-based mobile banking protocol. International Journal Multiple Schemes for Mobile Payment Authentication
of Communication Systems, (January), 1–19. Using QR Code and Visual Cryptography. Mobile
https://doi.org/10.1002/dac.3302. Information Systems, 2017, 1–13.
https://doi.org/10.1155/2017/4356038.
Dierks T., and Rescorla E. (2017). The Transport Layer
Security (TLS) Protocol Version 1.2. Retrieved. Lu Y., Yang S., Chau P. Y. K., and Cao Y. (2011). Dynamics
Fei J., and Liu R. (2015). Drug-laden 3D biodegradable label between the trust transfer process and intention to use
using QR code for anti-counterfeiting of drugs. Materials mobile payment services: A cross-environment perspective.
Science & Engineering C, 63, 657–662. Information and Management,48(8),393–403.
https://doi.org/10.1016/j.msec.2016.03.004. https://doi.org/10.1016/j.im.2011.09.006.
Fong S., and Lai E. (2005). Mobile Mini-payment Scheme Lugo K. (2012). Enhancing public-private partnerships
Using SMS-Credit. Computational Science and Its through SMS Vouchers, 10, 666–671.
Applications – ICCSA 2005. ICCSA 2005. Lecture Notes in https://doi.org/10.1016/j.procs.2012.06.085.
Computer Science, 3481, 1106–1114.
Madureira A. (2017). Factors that hinder the success of SIM-
Frank I., Samuel J., and Emmanuel A. (2011). Online Mobile based mobile NFC service deployments. Telematics and
Phone Recharge System in Nigeria. European Journal of Informatics, 34(1), 133–150.
Scientific Research, 60(2), 295–304. Mei L., Li W., and Nie K. – (2013). Pricing Decision Analysis
for Information Services of the Internet of Things Based on
Fun T. S., Beng L. Y., and Razali M. N. (2018). Review of Stackelberg Game. In Proceedings of 2nd International
Mobile Macro-Payments Schemes. Journal of Advances in Conference on Logistics, Informatics and Service Science
Anale. Seria Informatică. Vol. XVI fasc. 1 – 2018 Annals. (pp. 1097–1104). https://doi.org/10.1007/978-3-642-32054-5.
Computer Science Series. 16th Tome 1st Fasc. – 2018.
Meng J. M. J. and Ye L. Y. L. (2008). Secure Mobile Payment
Liébana-Cabanillas F., De Luna I. R., and Montoro F. (2017). Model Based on WAP. Fourth International Conference on
Intention to use new mobile payment systems: a Wireless Communications, Networking and Mobile
comparative analysis of SMS and NFC payments. Economic Computing,1–4. https://doi.org/10.1109/WiCom.2008.2121.
Research-Ekonomska Istraživanja, 30(1), 724–742.
409
12
International Journal of Scientific and Engineering Research IJSER Volume 10, Issue 7, July 2019
ISSN 2229-5518
Mihailescu M., and Teo Y. M. (2010). Dynamic resource Probst, A. (2012). “The Expectations of Quick Response
pricing on federated clouds. CCGrid (QR) Codes in Print Media: An Empirical Data Research
10th IEEE/ACM International Conference on Cluster, Anthology”, UW-L Journal of Undergraduate Research XV,
Cloud, and Grid Computing, 513–517. PP. (1-13).
https://doi.org/10.1109/CCGRID.2010.123.
Pukkasenung P., and Chokngamwong R. (2016). Review
Mohammad N., Barua A., and Arafat M. A. –(2013). smart and Comparison of Mobile Payment Protocol. Advances in
prepaid energy metering system to control electricity theft. Parallel and Distributed Computing and Ubiquitous
In Proceedings of 2013 International Conference on Power, Services, 368. https://doi.org/10.1007/978-981-10-0068-3.
Energy and Control, ICPEC 2013 (pp. 562–565).
Sowern, S. (2011). “Beyond the simple codes: QR codes in
Mohamud, A. (2012). “QR Code Usage among European education”, Proceedings ascilite Hobart: Concise Paper, PP.
Smartphone Owners Doubles Over Past Year”,comScore, (1157-1161).
Inc. NASDAQ: SCOR. [Online] Available: Susono, H. and Shimomura, T. (2006). “ Using Mobile
http://www.comscore.com/Insights/Press- Phones and QR Codes for Formative Class Assessment”,
Releases/2012/9/QR-Code-Usage-Among-European- Current Developments in Technology-Assisted Education,
Smartphone-Owners-Doubles-Over-Past-Year. Vol. 2, PP. (1006-1010).
Sutheebanjard, P. and Premchaiswadi, W.(2010). “QR-Code
Ozkaya H. E., Roxas J., Bryant F., Whitson D. (2015). Factors Generator” In Proc. of IEEE, 8th International Conference
IJSER
affecting consumer usage of QR codes. Journal of Direct, on ICT and Knowledge Engineering.
Data and Digital Marketing Practice, 16(3), 209–224.
https://doi.org/10.1057/dddmp.2015.18.