System Requrements

To install you can use any web hosting or server technologies support:

  • PHP 5.6
  • MYSQL 5+
  • PHP MYSQL Extension
  • PHP CURL Extention
  • mod_rewrite enabled for your server
  • php short tags enabled for your server
  • unlocked allow_url_fopen (for Google reCAPTCHA)
New installation

Step 1

Connect to your web server using any FTP program (ie. FileZilla) or the webinterface of your webhost and upload all files and folders which are inside the "Just Wallet Application" folder from the .zip file you have downloaded from site Just Wallet, Codecanyon or Codester.

Step 2

The folder "upload" and it's subfolders must have write permissions, so just give the folder write permissions (755).

Step 3

Before you can use your product, you will need to edit the config files. First locate the config file in: application/config/production/config.php and open it up using a text editor such as notepad. The only line you should need to edit is the:

The second file you will need to edit is your database file. Find the file: application/config/production/database.php and open it up using a text editor like Notepad. You will need to edit the lines listed below with your own database login information. For the most part, host stays the same as localhost unless your web host specifies to you otherwise. You will need your database name, database username and database password.

Step 4

Next you will need to execute the SQL file that came with the product download. This file will create the database tables that are used to store the data of your application. Usually you can import the SQL tables by using a database management system like PHPmyAdmin. The SQL file is located in foldier "Install SQL" in the product download. To Import the file, login to your database management system, such as PHPmyAdmin. Make sure you are on the database that you named in the database.php config file then locate the Import Tab on PHPmyAdmin.

Step 5

Next select the browse button (as shown in the screenshot above) and locate the SQL file (new_install.sql - for new install, update_install.sql - for update install) from your product download file.

Next click the Go! button and you should now see database tables appear in the left sidebar. When you have successfully installed the Just Wallet system, you should be presented with a frontpage like the one below. This is the login screen that is presented to all your users. You can login by using the username "admin" and password" password.

Step 6

For secure sign-in use Google reCAPTCHA. You should get the captcha keys on the site https://www.google.com/recaptcha/. Enter keys in the table Settings:

Update script v. 1.1.5

If you have performed a new installation, skip this section.

WARNING! Do not forget to back up all data before performing all the steps.

We changed the platform code and code structure, so the update process can not be automatic. We propose to perform a new installation and transfer the most important values from the current database. You will not lose users and transaction history.

Step 1

Stop the work of the site, so as not to lose new transactions and registration of users. Open the database in the panel phpMyAdmin. Go to "SQL" and run query:

Now export the result of the query:

Complete a new query:

Now export the result of the query:

Step 2

Install the new version on your server. Use the installation SQL dump update_install.sql when installing.

Import the saved results into a new database. Open the database in the panel phpMyAdmin.

Select the table 'Transactions' and click on the Import button

Upload resulting SQL file from the previous database that contains the transactions. You can ignore any mistakes. After upload, verify that the table has been successfully loaded.

p>Select the table 'Users' and click on the Import button

Upload resulting SQL file from the previous database that contains the users. You can ignore any mistakes. After upload, verify that the table has been successfully loaded.

First steps

Change password and admin username

You will need to change the password and administrator username. Go to Admin Panel Users -> Users -> Edit user admin

You must use only complex combinations of letters and numbers. We recommend protecting the directory with an additional password via the file .htaccess.

Change page content

We deliver statrt design and content for the pages, but you need to change some links and names to change. Go to Admin Panel Settings -> Pages manager -> Edit page -> Select language. You can use any HTML code or visual editor.

Global settings

Site name - the name of your project. The name is used for page title in the browser and for signature to transactional Email messages. This parameter corresponds to the SEO value "title".

Meta Keywords - SEO keys for your website. Used in meta-tags on every page of the site.

Meta Description - SEO description for your website. Used in meta-tags on every page of the site.

Site Email - Email of the project. Used to display in a footer on the site and as a sender of transactional messages.

Items Per Page - number of rows of values on one page. Used for both the user interface and the administrator interface. For example, if you select value 25, in the transaction history, the user will see a maximum of 25 transactions.

Timezone - the timezone of the system. The parameter determines the official system time, which is specified for all events within the project.

Transfer fee - amount of the commission for money transfer transaction and activation of the voucher. It is set in percentage and depends on the amount of transaction.

Invoice fee - amount of the commission for pay invoice transaction. It is set in percentage and depends on the amount of transaction.

reCAPTCHA secret reCAPTCHA site key - it is used to verify the user's login and sending support requests via Google CAPTCHA. You can get these values by reference https://www.google.com/recaptcha

Phone - this is a public phone number. It is used on the support page.

Skype - this is a public Skype username. It is used on the support page.

Twilio SID Twilio token Twilio phone number - these values are used to send sms notifications to the user. You can get these values by reference http://twilio.com/

Currency settings

You can use one basic currency and five additional currencies in your project.

Go to Admin Panel Settings -> Currencys. Enter local currency rates or use values through via API Fixer.io. Commission fees are set for the currency exchange in the user's account.

Deposit

Just Wallet script uses 8 automatic and 2 manual deposit methods. For each automatic method, a third-party payment gateway is used. Payment gateway can support multiple currencies and payment methods:

Method Gateway methods Currencies
PayPal
https://www.paypal.com
PayPal wallet, linked Credit cards, linked Bank accounts Check in PayPal site
Perfect Money
http://perfectmoney.is
Perfect Money wallet, PM e-Voucher, PM Prepaid Card USD, EUR
ADV Cash
https://advcash.com
ADV Cash Wallet, Bitcoin, Payeer, Perfect Money, WEX, EXMO, Epese, Epay USD, EUR, RUB
Payeer
https://payeer.com
Payeer wallet, QIWI wallet, ADV Cash, Bitcoin, VISA, Master Card, Maestro, Money exchangers USD, EUR, RUB
Skrill
http://skrill.com
Skrill Digital Wallet, Neteller, Paysafecard, Resurs, Visa, MasterCard, Visa Electron, Maestro, American Express, Diners, JCB, Carte Bleue, Dankort, PostePay, CartaSi, Rapid Transfer, giropay, Direct Debit/SEPA, Klarna (was Sofort), Nordea Solo, iDEAL, EPS (Netpay), POLi, Przelewy24, ePay.bg, Trustly, Alipay, Astropay, Unionpay EUR, USD, GBP, HKD, SGD, JPY, CAD, AUD, CHF, DKK, SEK, NOK, ILS, MYR, NZD, TRY, AED, MAD, QAR, SAR
PayGol
https://payeer.com
Visa, MasterCard, American Express, Diners, Paysafecard, Sofort, iDEAL, Bancontact, Przelewy24, SEPA, Servipag, Webpay, Multicaja, Boleto Bancário, Itaú, Banco do Brasil, Bradesco, CAIXA, Oxxo, Santander bank, Banamex bank, Rapipago, Pago Fácil, PSE, Efecty, Davivienda bank, PagoEfectivo, Redpagos, UnionPay, SMS payments, Pay per call ISO 4217
Blockchain
https://blockchain.info
Bitcoin USD, JPY, CNY, SGD, HKD, CAD, NZD, AUD, CLP, GBP, DKK, SEK, ISK, CHF, BRL, EUR, RUB, PLN, THB, KRW, TWD
Coinpayments
https://www.coinpayments.net/
Bitcoin, Litecoin, AudioCoin, Bitcoin Cash, Bytecoin, BitBean, BlackCoin, Breakout, CloakCoin, Crown, CureCoin, Dash, Decred, DigiByte, Dogecoin, eBoost, Ether Classic, Ether, Expanse, FLASH, GameCredits, Byteball Gigabytes, GCRCoin, Goldcoin, Groestlcoin, Komodo ,LeoCoin, LISK, MonetaryUnit, NAV Coin, NEO, NoLimitCoin, Namecoin, NVO Token, Nexus, NXT, Onix, PinkCoin, PIVX, PoSW Coin, PotCoin, Peercoin, ProCurrency, Pura, Quark, Qtum, RegalCoin, Steem Dollars, SibCoin, SmartCash, STEEM, Stratis, SativaCoin, Syscoin, Ubiq, Voxels, Vertcoin, Waves, Counterparty, NEM, Monero, VERGE, ZCoin, ZCash, ZenCash Any crypto or fiat currency on the Supported Coins page

The availability of the payment gateway and methods for your country and currency should be specified on the website of the payment system.

You need to set up methods to accept deposits on the site. Go to the Admin panel Settings - Deposit settings and choose a method for customization.

Fee and limits

To use the method, you do not need a moderation or a business account.

Account for receiving deposits - your PayPal main email. You can use one address for multiple currencies, if this is allowed for your country. This parameter is available for viewing by the client.

API value 1 - not used for this method.

API value 2 - not used for this method.

Perfect Money

To use the method, you do not need a moderation or verified account.

Account for receiving deposits - your Dollar or Euro account Perfect Money. This is not your email address. For example, U10373808 or E10066858.

API value 1 - alternate Passphrase. You can get this setting in your account settings https://perfectmoney.is/settings.html. Make sure that this parameter consists of letters, numbers and symbols. Treat this parameter as a password.

API value 2 - not used for this method.

Payeer

You will need to pass the moderation of the project in the merchant's settings.

To add and configure a new merchant, go to your Payeer account.

1. Add merchants - enter name merchant, secret key (keep it) and domain.

2. Confirm the domain for further customization. You need to download the confirmation file and publish it on your server.

3. Enter the parameters for your project:

Key for encryption additional parameters - you have to come up with this parameter yourself;

Key for encryption additional parameters - you have to come up with this parameter yourself;

Success URL - http://yousite.com/account/transactions;

Fail URL - http://yousite.com/account/deposit;

Status URL - http://yousite.com/ipn/payeer;

After successful moderation, check the form of the deposit. If the form does not work and you get the error of generating a digital signature Your project was announced as an intermediary for financial transactions. You need to uncomment out the code line 209, 234, 235, 238, 241 on the page application/views/account/deposit/confirm.php. This code will allow you to send encrypted additional parameters to the server Payeer.

Settings for Admin panel:

Account for receiving deposits - your ID merchant from settings merchant.

API value 1 - secret key merchant Payeer.

API value 2 - key for encryption additional parameters.

ADV Cash

You will need to pass the moderation of the project in the merchant's settings.

To add and configure a new merchant, go to your ADV Cash account.

1. Complete the verification by confirming your documents.

2. Create new SCI: Your name - API and SCI developers - Create new SCI

Use a digital signature in the request to SCI - yes.

SCI NAME - name your project.

WEBSITE ADDRESS - fulld site address.

EMAIL FOR NOTIFICATIONS - to this email address will be sent notices of deposits.

EMAIL TO DISPLAY IN SCI - this email address will be displayed to the customer at the time of payment of the invoice.

PASSWORD - any complex combination of letters and numbers.

SUCCESSFUL TRANSACTION PAGE - HTTP method GET. Link http://yousite.com/account/transactions

FAILED TRANSACTION PAGE - HTTP method GET. Link http://yousite.com/account/deposit

STATUS PAGE - HTTP method POST. Link http://yousite.com/ipn/advcash

Settings for Admin panel:

Account for receiving deposits - your ADV Cash email.

API value 1 - SCI name.

API value 2 - password SCI.

Skrill

You will need to pass the moderation of the project in the merchant's settings.

Settings for Admin panel:

Account for receiving deposits - your business Skrill email.

API value 1 - unique ID of your Skrill account. ONLY needed for the calculation of the MD5 signature.

API value 2 - password SCI.

Test Merchant Accounts for Skrill:

Merchant account MQI/API password and secret word Type
demoqco@sun-fish.com mqi: skrill123, secretword: skrill Fixed Payment Options (Fixed Split Gateway)
demoqcoflexible@sun-fish.com mqi: skrill123, secretword: skrill Fixed Payment Options (Fixed Split Gateway)
demoqcofixedhh@sun-fish.com mqi: skrill123, secretword: skrill Fixed Payment Options (Fixed Split Gateway) with Reduced header option enabled

This is the live production payment form. If you use a standard (non-test) pay_to_email merchant account and a valid credit card or standard Skrill account the payments will be processed and deducted from your card or Skrill wallet.

Test Cards for payment Skrill:

Brand Card Number
Mastercard 5438311234567890
VISA 4000001234567890
Amex 371234500012340

PayGol

You will need to pass the moderation of the project in the merchant's settings.

Settings for PayGol account:

IPN URL - http://yousite.com/ipn/paygol.

Settings for Admin panel:

Account for receiving deposits - your Service ID.

API value 1 - secret key.

API value 2 - not used.

BlockChain

You need to get API key to use this method. You must request it by following the link.

BlockChain used GAP limit. If the limit is exceeded, you will receive a message on this to your e-mail. You can get more information about the GAP limit by following the link.

All deposits are credited to the user's account in Fiat currency. We use API quotations BlockChain for currency exchange. The exchange rate is applied at the time of receipt of the 6 network confirmation.

After creating a unique payment BTC address, a pending transaction is created.

Settings for Admin panel:

Account for receiving deposits - xPub BlockChain address. You can get this value in your account: Settings - Address - Manage - More options - Show xPub.

API value 1 - API key.

API value 2 - secret word. You must independently come up with this value for verifying the signature of the incoming request from the server BlockChain. This setting is not configurable in your account BlockChain.

Coinpayments

To use the method, you do not need a moderation or verified account.

Settings for Coinpayments account:

IPN Secret - this is used to verify that an IPN is from us, use a good random string nobody can guess.

IPN URL - http://yousite.com/ipn/coinpayments.

Make sure that you do not accept test coins for payment https://www.coinpayments.net/acct-coins

Settings for Admin panel:

Account for receiving deposits - Your Merchant ID.

API value 1 - secret word.

API value 2 - not used.

SWIFT

This is a manual deposit method. The user can create a pending transaction and receive the details of your baccount account for an international money transfer. For each transaction, a unique note number is created, which will help you to identify the payment in the bank statement.

After receiving the details of the invoice, the user sends money through his bank. The administrator must independently check his bank account, because such a transaction will not be processed automatically. After receiving the money, you must confirm the transaction in the admin panel.

Remember that US dollars are usually used for international money transfers.

Account for receiving deposits - Your USD bank account.

API value 1 - not used.

API value 2 - not used.

Local bank transfer

This is a manual deposit method. The user can create a pending transaction and receive the details of your baccount account for an international money transfer. For each transaction, a unique note number is created, which will help you to identify the payment in the bank statement.

In this method, you can use the local currency for local bank money transfers.

After receiving the details of the invoice, the user sends money through his bank. The administrator must independently check his bank account, because such a transaction will not be processed automatically. After receiving the money, you must confirm the transaction in the admin panel.

Account for receiving deposits - Your any local bank account.

API value 1 - not used.

API value 2 - not used.

Secure method name change

You can name the deposit methods in the Administrator Panel. After the change, you need to add a new name to the exception list username application/libraries/Protect_username.php:

IPN for merchants

The script can accept external requests for wallet deposit. The interface can be used by merchants who have undergone complete verification of the account and merchant. The user needs to perform several steps to activate the merchant interface:

Step 1

The user must perform full account verification.

Step 2

User must add the merchant project and the administrator must set the enabled status.

The user must enter values:

Name - name merchant. This value is searchable on the store page and displayed on the payment page.

URL site - site link merchant.

Status IPN link - an instant notification of payment will be sent to this address. Available only when used HTML form.

Success link - the buyer will be redirected to this page after successful payment. Available only when used HTML form.

Fail link - the buyer will be redirected to this page after fail payment. Available only when used HTML form.

Merchant IPN password - this password is used to verify the payment notification.

Logo - merchant's logo. Only GIF, JPEG, PNG. Max size - 5 MB.

Categories - available category merchant for section Shops and Payments.

Show in Shops and payment? - if es, the merchant will be displayed in the section Shops snd Payments.

Who pays the fees? - user can choose who pays the commission of the system.

Note for payment - note for payment via user account:

Comment for administration - any comment for the administrator

After activating the merchant administrator, he can use HTML form:

This form will trigger merchant payment page.

HTML form variable

Variable Description Conditions Necessarily
merchant Merchant ID in the system Just Wallet. Assigned to the merchant automatically after adding a store to your account. Your store must be moderated Not equal to 0 Yes
item_name Product name or purpose of payment. This item is visible to the payer Minimum number of characters 3, maximum - 100 Yes
amount The sum in any form. The sum is rounded to decimal places. The total amount including commission will be calculated automatically Sum is more than 1 Yes
currency Currency of payment. Available currencies debit_base, debit_extra1, debit_extra2, debit_extra3, debit_extra4, debit_extra5 Only values from the list Yes
custom Comment to the payment. For example, the order number in your store. This item is not displayed to the buyer Maximum - 100 Yes

After payment, the merchant will be POST notified of the payment

IPN variable

Variable Description Example
$POST['amount'] The received amount without commissions 100.00
$POST['fee'] Fee for payment. Paid by the buyer or merchant according to the settings 0.20
$POST['total'] Total transaction amount including commission 100.20
$POST['currency'] Transaction currency for which payment was made debit_base
$POST['payer'] Buyer username in the system Just Wallet johndoe
$POST['receiver'] Merchant username in the system Just Wallet envato
$POST['status'] The status of the transaction. Always Value "Confirmed" Confirmed
$POST['date'] Transaction date 2018-01-09 03:11:07
$POST['id_transfer'] Unique transaction number in the system Just Wallet 58954
$POST['merchant_name'] Merchant store name in the system Just Wallet Google Inc
$POST['merchant_id'] Unique number of merchant in the system Just Wallet 21
$POST['balance'] Available merchant balance in transaction currency 2100.56
$POST['item_name'] Name of paid goods Test payment
$POST['custom'] Comment on payment, formed by the merchant in the HTML form INV 1452485
$POST['hash'] A unique signature that is used to verify the validity of a notification. A string join is created of the total amount, merchant password, date transaction and transaction ID. The string is encrypted using an algorithm MD5. C93D3BF7A7C4AFE94B64E30C2CE39F4F

Example of a notification handler in PHP

Transactions status

Types transactions

The script uses 5 types of transactions:

Code Type Description
1 Deposit Used for any transactions of balance replenishment, exchange transactions and activate vouchers.
2 Withdrawal Used for any transactions withdrawal of balance from the system and create voucher.
3 Transfer Used for any transactions money transfer.
4 Exchange Used for any transactions money exchange.
5 Purchase Used for any merchant transactions and Shops.

Status transactions

The script uses 5 status of transactions:

Code Type Description
1 Pending Transaction is displayed in history, but the funds have not yet been credited to the balance.
2 Confirmed Any successful transaction.
3 Refund The funds are returned to the sender of the payment and debited from the balance of the payee. If the refund occurs in a dispute, the transaction amount is returned without commission fees.
4 Disputed This transaction was contested by the sender of the payment. The amount of the transaction is hold on the user's balance.
5 Blocked This transaction was contested by Administrator. The amount of the transaction is hold on the user's balance.

Hold balance can not be used for transactions. Funds will be unlocked when the disputed or blocked transaction changes its status.

Two-factor authorization

For secure authorization on the site, the user can use one of the input verification methods.

No checking

Additional methods do not apply. It is used by default.

Two-factor authentication

Available to all users. To configure the user, click on the gear symbol:

The user must scan the QR code and enter the received token. Resetting this method is available only through the administrator. To reset, you need to delete the method values for the user:

SMS authentication

A one-time token will be sent to the user in sms message. Remember that you must be set up SMS Twilio account in Global Settings and SMS template enabled.

Email authentication

A one-time token will be sent to the user in Email message. Remember that you must be Email template enabled.

To deactivate the input, the user must always press the exit button.

Email settings

To send email notifications, the script uses the methods of framework Codeigniter. If the messages do not arrive or are sent to spam, you need to enter STMP account details in file application/config/email.php:

For Gmail account:

Your SMTP account must be accessible for calling from third-party applications.

Language

You can change the values of the language variables in the folder application/language/{you_lang}:

admin_lang - variable for Admin panel.

contact_lang - variable for contact page.

core_lang - global language variable.

dashboard_lang - variable for Admin panel - Dashboard.

settings_lang - variable for Admin panel - Settings.

user_lang - variable for User account.

welcome_lang - variable for index page.

For version 2.0 we supply English. We are constantly adding new localizations. You can check them on the site http://justigniter.io/

To add a new language, you need to copy the language folder and enter a name for this folder with the new language. New language will appear on the site automatically.

Design template

To change template styles, you can use files:

assets/account - user account template;

assets/modulat_just - admin template;

assets/sci - merchant payment template;

assets/escrow - publick template;

application/views - view page design;

FAQ error

If you get 404 page not found error after installation

In this case your server needs the RewriteBase option to be set. Open the .htaccess file in the main folder and add the following line to it: RewriteBase / The .htaccess should look like this:

If you have installed the application into a sub folder you need to add the sub folder name after the / The .htaccess file should look like this in this case:

On Dreamhost you have to amend the .htaccess. If you get a “No Input File” error

The htaccess file should look like this:

If you get “no input file specified” error on goDaddy web host

You need to change the .htaccess as follows:

If you get a 500 Error after the installation try the following as .htaccess

The htaccess file should look like this:

Sources and Credits

When developing Just Wallet, we used the Codeigniter 3.1.6 framework. You can see the documentation https://codeigniter.com/

For the layout template we used the Admin Panel under the MIT license template Modular https://github.com/modularcode/modular-admin-html/

For the layout template we used the Account under the MIT license template Bootstrap 4 http://getbootstrap.com/

In the design of Just Wallet, we used a collection of icons from Font awesome and Simple Line Icons.

To edit Email templates we use the editor CK Editor http://ckeditor.com/

To convert bitcoins with a patch through BlockChain, script use rate BlockChain - https://blockchain.info/api/exchange_rates_api

To display img sender for money transfers in transactions, script use API Gravatar https://gravatar.com/