Boompay

Documentation


Introduction

If you have any questions that are beyond the scope of this help file, please feel free to send us a ticket, you get exceptional support from the developer directly.

This documentation is to help you regarding each step of customization and the use of the script. Please go through the documentation carefully to understand what this script is made of and how to install properly.

IF YOU DON’T WANT TO GET DOWN AND DIRTY WITH THE TECHNICAL SIDE OF SETTING UP Boompay ON YOUR SERVER, YOU CAN HIRE US TO MAKE THE SCRIPT INSTALLATION FOR YOU.

Be careful while editing the script for your own use. If not edited properly,the design layout or backend may break. No support is provided for faulty customization.

Getting Started

Boompay is a Modern Payment Gateway PHP Script made with Laravel Framework. Its Built to be beautiful, fast, and powerful. It supports transfer of money to anyone, requesting money, storefront, invoice, payment buttons(single charge and donation service), virtual cards, bill payment(Nigeria), subscription service, sub-accounts, website integration(html checkout), business compliance, and more. it’s easy to install our system within 5 minutes without any technical knowledge.

Requirements

  • Server: Apache Server
  • Php Version: v7.1+ | v8.0+
  • Phpmyadmin v5.0.2+
  • Recommended Hosting: Namecheap
  • Php Extensions: file_info, curl, mysqli, mbstring

Installation (cpanel)

  • Database

    • Navigate to Mysql Database
    • Database Name - Create a new database name
    • Database Username & Password - Create a new database user and password
    • Linking - Link database name and user
    • Privileges - Give database user all permissions needed to access database
  • File Manager

    • Navigate to File Manager
    • Hidden files - Click on file manager settings and ensure hidden files is checked
    • Navigate to public_html - Upload script.zip to this folder with a good internet
    • Unzip - Unzip file
    • Configure .env file - Navigate to core/.env file to add important information
  • Env file

    • Database Connection*
    • DB_CONNECTION - Don't edit
    • DB_HOST - Don't edit
    • DB_PORT - Don't edit
    • DB_DATABASE - Database Name
    • DB_USERNAME - Database Username
    • DB_PASSWORD - Database Passwod
  • Env file

    • Application*
    • APP_NAME - Website Name(No space)
    • APP_ENV - Don't edit
    • APP_KEY - Don't edit
    • APP_DEBUG - False, if you leave this to be true, script will display errors whenever there is a bug, if you leave it as false, 505 error will be displayed instead of bug report
    • APP_URL - Domain name
  • Launching Application

    Load up your domain name, if you followed our instructions to detail, site will work well

  • 404 Error

    If you are getting this error, it means you did not upload .htaccess file in public_html file. If you can't file to upload, you can create a new file called .htaccess in public_html folder and paste the following code.
    Laravel .htaccess file

Email Setup (cpanel)

  • Email

    • Navigate to Email Accounts(Webmail)*
    • Create a new email account
    • Click on connected devices to get SMTP details
    • Take Note of SSL settings
    • Navigate to .env file
    • Edit
    • MAIL_DRIVER - Don't edit
    • MAIL_HOST - Outgoing or Incoing server
    • MAIL_PORT - 465 for Webmail(ssl)
    • MAIL_USERNAME - Email address
    • MAIL_PASSWORD - Email Password
    • MAIL_ENCRYPTION - ssl
  • Email Settings

    Ensure email notify is enabled via admin settings

Flutterwave Setup for Bill payment & Virtual Cards

Env configuration
  • PUBLIC_KEY = "FLWPUBK_TEST-SANDBOXDEMOKEY-X(TEST)"
  • SECRET_KEY = "FLWSECK_TEST-SANDBOXDEMOKEY-X(TEST)"
  • ENCRYPTION_KEY = "FLWSECK_TEST74e0b6c7db0e(TEST)"
  • ENV = "staging" (can be changed to live)
  • SECRET_HASH = "blabla"
Bill Payment

Bill payment is only supported for NGN as default platform currency, it works instant provided your flutter wave account has funds. Type of bills processed by boom pay includes; airtime, data bundle, electricity, & cable tv. Wondering how can make money from bill payment, you can add charges to every successful bill payment made on the platform. Bill payment can only be paid with a boom pay account balance.

Virtual Cards

Boompay enables users to convert account balance to virtual cards with limits such as how much a card can hold. admin makes money from card creation fee. The card can be terminated or funded anytime.

Currencies supported by virtual card

BIF, CAD, CDF, CVE, EUR, GBP, GHS, GMD, GNF, KES, LRD, MWK, MZN, NGN, RWF, SLL, STD, TZS, UGX, USD, XAF, XOF, ZMK, ZMW, ZWD

Recaptcha Setup

Env configuration
  • NOCAPTCHA_SECRET
  • NOCAPTCHA_SITEKEY

After adding your recaptcha credentials to env file, ensure its also enabled in general settings under features via admin as it is needed for login and user registration for more security

Funding account

Payment gateways available for funding
  1. Stripe
  2. Bank Transfer(Manual)
  3. Coinpayment - Bitcoin
  4. Coinpayment - Ethereum
  5. Paypal
  6. Flutterwave
  7. Paystack
Why funding account is important
  1. Transfer/Request of Money
  2. Payment Pages or buttons
  3. Bill Payment
  4. Website Integration
  5. Storefront or product purchase
  6. Invoice Payment
  7. Subscripting service(recurring payment/one time plan)

Stripe

Stripe is the default card payment gateway for Boompay script, it can't be disabled as Boompay needs to process a card payment. The limitations of Stripe are countries where Stripe is not supported, funding of account was added to fix this issue. If you won't be satisfied with Stripe as you plan to launch your payment gateway in countries where Stripe is not supported. You can hire us to integrate another payment processor that works for you, but ensure the documentation is very good.

HTML Checkout

Receiving money on your website is now easy with simple integeration. This document will introduce you to all the basic information you need to better understand our technologies. To start receiving payment on your website, or you need to do is copy the html form code below to your website page.

                            
                        <form method="POST" action="domain_name/ext_transfer" >
                            <input type="hidden" name="merchant_key" value="MERCHANT KEY" />
                            <input type="hidden" name="public_key" value="PUBLIC KEY" />
                            <input type="hidden" name="callback_url" value="mydomain.com/success.html" />
                            <input type="hidden" name="tx_ref" value="REF_123456" />
                            <input type="hidden" name="amount" value="10000" />
                            <input type="hidden" name="email" value="user@test.com" />
                            <input type="hidden" name="first_name" value="Finn" />
                            <input type="hidden" name="last_name" value="Marshal" />
                            <input type="hidden" name="title" value="Payment For Item" />
                            <input type="hidden" name="description" value="Payment For Item" />
                            <input type="hidden" name="quantity" value="10" />
                            <input type="hidden" name="currency" value="NGN" />
                            <input type="hidden" value="submit" />
                        </form>
                            
                        
Verifying Payment
                            
                                $ch = curl_init();
                                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                                curl_setopt($ch, CURLOPT_URL, 'domain_name/api/verify-payment/{txref}/{secretkey}');
                                $result = curl_exec($ch);
                                curl_close($ch);
                                $obj=json_decode($result, true);
                                //Verify Payment
                                if (array_key_exists("data", $obj)  && ($obj["status"] == "success")) {
                                    echo 'success';
                                }
                            
                        
Successful Json Callback
                            
                            {
                                "message":null,
                                "status":"success",
                                "data":{
                                    "id":6,
                                    "email":"a@b.com",
                                    "first_name":"qwert",
                                    "last_name":"trewq",
                                    "payment_type":account,
                                    "title":Rubik Cube,
                                    "description":Payment for Rubik Cube,
                                    "quantity":2,
                                    "reference":"Di9Wr1LuC7u4WEGu",
                                    "amount":10000,
                                    "charge":50,
                                    "merchant_key":"r1Kn6nzk1cE63rQE",
                                    "callback_url":"mydomain.com\/thank_you.html",
                                    "tx_ref":"deff",
                                    "status":"paid",
                                    "created_at":"2021-01-01T22:05:02.000000Z",
                                    "updated_at":"2020-05-15T12:05:29.000000Z"
                                }
                            }
                            
                        
Requirements
S/N Value Type Required Description
1. merchant_key string Yes Used to authorize a transaction
2. callback_url url Yes This is a callback endpoint you provide
3. tx_ref string Yes This is the merchant reference tied to a transaction
5. amount int [Above 0.50 cents] Yes Cost of Item Purchased
6. email string Yes Email of Client making payment
7. first_name string Yes First name of Client making payment
8. last_name string Yes last name of Client making payment
9. title string Yes Title of transaction
10. description string Yes Description of what transaction is for
11. currency string Yes This is the currency the transaction list should come in {{$currency->name}}
12. quantity int Yes Quantity of Item being payed for

Subscription Service

People have been pretty much confused on what exactly this feature is. let's say you run a dog food delivery business and you have clients that order food from you weekly, you can create a plan, send the intervals of billing, and set it to your clients for payment.

Sub Accounts

Sub Accounts is for disbursing your payouts to other bank accounts in percents or fiat amounts. This account can be disabled when it's not in use. All payout charges made to sub accounts is summed up and taken from your main account

Storefront & Products

With storefront, you can group products and sell them all in one place. Product category, shipping address & rates with more fetures have been added

Transfer & Request Money

Users can send money to anyone with an email address. If the email is not registered, an email will be sent to prompt the recipient to register and confirm the transfer was received. The recipient has 5 days to confirm payment else money will be refunded to the sender. You can also request money from anyone registered on the platform

Invoice

Create invoices and send them to your clients for payments. An invoice can only be paid by the email address associated with it. marking an invoice as paid without payment being made on the platform will only lead to charges being deducted from your account.

Compliance & Withdrawal

With the recent increase in fraud, a compliance form was to set limitations to payouts. Withdrawal privileges now range from an unverified, starter, and registered business. A confirmed registered business has no payout restrictions. to upgrade the payout limit, you will have to fill a compliance form on what your business is about and submit it for review.

Countries & Banks

To give the admin more control over where he/she wants his business to function, we have added country supported. For payouts, we have also added banks supported to make business easier.

Security

Two Factor AuthenticationSecurity is not compulsory but is highly advised to secure your account.