Project Documentation

CryptoPay

#1. Introduction

CryptoPay is an open-source payment gateway that can be plugged into any e-commerce site using API keys generated by the sellers when they sign up. CryptoPay provides simple APIs (just like Stripe) for the sellers to request transactions from the users by just the user's email and the amount to be transacted. This would allow e-commerce sellers to accept payments in Ardor and Ignis from their customers.

The customers will get a notification on their mobile app when they check-out a cart on such e-commerce sites if they have used the same email that they use for logging into the CryptoPay mobile app to sign up on the e-commerce site where they have checked out a transaction. If the users have used a different email to sign up for the e-commerce site, they will get a simple transaction code to enter on their mobile app to confirm their order. The mobile app would require the buyers to scan the QR code of their passphrase to confirm their transaction with the e-commerce site where they have purchased from.

#2. Here's an overview of the usage for the people shopping Online

There are two parts for the usage of CryptoPay. The following video explains what CryptoPay is and also explains how people making purchases online can use CryptoPay.

The following video was mde by me after being awake for 20 hour coding binge, building CryptoPay. Please excuse any errors.

#3. The usage for sellers online

The following video how different sellers online can use Cryptopay.

#4. Working of CryptoPay

The following video how transactions happen on CryptoPay and how privacy can be maintained in transactions using CryptoPay.

#5. Usage of CryptoPay Web app

The web app of CryptoPay is built using Django. So, here's what you've got to do to run it:

  1. Download/Clone CryptoPay's back-end code from here.
  2. Create a Python virtual environment, give it a name of your choice, and activate it. If you're not sure of working with Python virtual environments, feel free to check out the documentation.
  3. Install the requirements into your virtual environment from requirements.txt by running pip3 install -r requirements.txt
  4. By default, the database used will be an SQLite database for testing purposes. If you are deploying CryptoPay, it is recommended for you to point to your production-ready database instance. This can be done by changing the database variable in settings.py, located in the directory PaymentGateway/.
  5. Run the Django migrations to your database by:
    python3 manage.py makemigrations
    python3 manage.py migrate
  6. Run the Django app by: python3 manage.py runserver.
  7. Run the Django app by python3 manage.py runserver. By default, your app must be running on http://localhost:8000/

#6. Using CryptoPay's mobile app

The cross-platform app of CryptoPay is built using Flutter. So, here's what you've got to do for running it:

  1. Make sure you have the web app of Cryptopay either hosted locally or on cloud.
  2. Download/Clone CryptoPay's mobile app's Flutter code from here.
  3. Make sure you have the Flutter's plug-in set up for your Android Studio.
  4. Change the baseURL in lib/pages/Home.dart to your CryptoPay's URL.
  5. You can now deploy the Flutter app on either Android or IOS device.

#7. Running cSports

cSports is a sample e-commerce site that uses CryptoPay that you can download or clone from here. It is built using Django, so you can follow the same steps required to run CryptoPay. It is advisable it run this app on a different port or using docker containers if you're running both CryptoPay as well as cSports on the same PC or Server.