Due to popular increase on how to charge customers locally during checkout, we have built the Custom Payment Feature which makes it possible for resellers to accept their own payments via the billing checkout. We have over 200 Currencies accepted on Freehostingresell but before now customers are not charged in local currency. In the quest to making sure all customers get the feel of a locally based hosting company, we have decided to introduce this feature.
If a customer sees a particular currency then the reseller should be able to provide a payment system that will charge the user in that same currency thereby reducing excess exchange rate commissions charged by most payment providers. Also, almost every customer would love to pay with local payments using local methods for checkouts.
How it works:
We have enabled a simple API checkout process where you are able to integrate any payment system of your choice easily. We have simplified the whole process and we shall simplify it the more with this Post.
If you want to use this option then you must have a deposit with us, else this won’t work. Example: If you Pre-Funded a total of $500 with us and activate your custom payment system on your reseller site, each time a customer gets to your checkout payment they will see the local payment system integrated by you. The payment option would continue to be available until your credit finishes with us. If a customer is trying to checkout on an amount greater than your balance with us, this won’t work.
So if you have total of $15 left in your balance with us, and customer is trying to checkout an amount worth $17, then your payment option would be hidden until you fund an amount equivalent or greater than the amount the customer is checking out with.
The step by step guide will be a very powerful tool towards setup, you can skip any step you have already completed.
A QUICK OVERLOOK TOWARDS HOW IT WORKS!
Integration Flow: During checkout we send the customer to your integration link set in Reseller –>SetUp –> Custom Payment
We send you the following values via POST
- billing_country (ex. US, CA)
You collect the user’s information and direct user to the payment page. When user is done paying, you send the values below to https://freehostingresell.com/api/complete-order
Then you re-direct the user to https://yourdomain/bill/?order-status for either failed or success.
When we receive the feedback from you saying order_status equals 1 then we shall process the order and deduct the USD value from your account balance with us. We would only charge the default amount from your balance not the total amount. If you don’t have enough balance to process order, a notification shall be sent to you to fund your wallet then you can later process the order manually from your Reseller Dashboard from
Resellers –> Orders –> Pending Orders
If order status returned 0 then order won’t be processed and the status at https://yourdomain/bill/?order-status will show FAILED.
LET’S DO A STEP BY STEP INTEGRATION FLOW TO ACHIEVE THIS
STEP 1) API DETAILS
Your API details are here https://panel.freehostingresell.com/reseller/api-set You can change them anytime you wish. For this integration you would need the Private Key. Locate it and copy it somewhere, you would be using it in the next step.
STEP 2) SET UP CUSTOM PAYMENT DETAILS
What we want to do here is to set which payment we want to integrate. Locate this page here
Resellers –> SetUp –> Custom Payments
The values you would add are explained below
- Payment Name: This is the name of the Payment system you would be integrating. Our example here Is PayPal. The user will see the Title here as you can see from the image below
2. Process Link (For Automatic Options): Here is where the user would be re-directed to make the payment. Since you cannot make extra links using your custom domain with us, there are different ways of achieving this. You can Create a Sub domain (learn how to create a sub domain here https://blog.freehostingresell.com/index.php/2021/04/20/how-to-set-up-your-own-blog-on-your-reseller-site-in-freehostingresell/ ) and name it pay.your-domain.ext or you can use a totally different domain name as you wish. Best practice is directing the user to a related domain so it doesn’t seems like he is totally leaving the site to make a payment. If you have another extension of the same reseller domain this would also work
This link is where the whole integration work is done which would be explained in other steps as we progress, so just add the link’s full part here. Example; https://pay.frs.pw/paypal.php
3. Integration Type: Here it’s either Automatic or Manual. Automatic means the whole process would be done automatically where you can setup the payment link and integrate with all necessary codes so that orders can be automated else if you choose Manual then this means your payment system can’t be automated like Bank Payments where users need to pay and notify locally, if you choose this option then when you receive payment you navigate to Orders Pending and mark transaction as Paid so that the order can then be created.
4. Status: If you enable the status feature it will show in the Front end view in your billings checkout page. So disable it first while you work on the integration. If everything is Okay, then you can enable it
STEP 3) SETTING UP THE PROCESS LINK (FOR AUTOMATIC INTEGRATION)
Now we want to work on the Process Link we specified at step 2 above. Our example is PayPal and we shall be working with the sample link https://pay.frs.pw/paypal (Note: your process link can be written in any programming language!)
So I will create a file called paypal.php inside my hosting server for pay.frs.pw or whatever you wish to call it. On this page I will input the PayPal integration codes. On this page, we shall some values in POST which you should use for processing your order at the Payment processor you are using. The values are as follows;
- transaction_token: This is the unique identifier for the order. This token remains the same for the same order even if they are more than 1 as long as it’s the same checkout then this remains unique to the order.
- user_email: This is the email address of the user who is paying. This email is the original email used in registering
- total_amount: This is the total amount in your default store currency
- currency: This simply just returns your currency code like USD, EUR, GBP e.t.c
- transaction_name: Will return in commas if they are more than 2. Example; New Domain (frs.pw), Shared Hosting
- billing_name: This will return the full names. First name, last name and other names if added.
- billing_fname: This is the billing’s first name
- billing_lname: This is the billing’s last name
- billing_oname: This is the billing’s other name
- billing_email: This is the billing’s email
- billing_phone: This is the billing’s phone
- billing_address: This is the billing’s address
- billing_company_name: This is the billing’s company name
- biling_postal_code: This is the billings postal code
- billing_city: This is the billing’s city
- billing_state: This is the billing’s state
- billing_country: This is the billing’s country (ex. US, CA)
Most importantly you would need to store the transaction_token value, this value MUST be sent back to us for processing.
There are different types of integrations but all follows the same process of receiving payment and returning a notification if payment was successful or not. But here we would give a general guide on how to implement.
The summary of what’s to happen on this page is;
Use and Store values we sent to this page via POST à direct customer to the payment page of the payment processor using the values we sent to you like amount, billing details, transaction id and name e.t.c a return values to https://freehostingresell.com/api/complete-order via POST, either failed or success so that the customer would know the status of payment à redirect user to https://yourdomain/bill/?order-status after process.
The values to send back to https://freehostingresell.com/api/complete-order as POST Values after processing are as follows;
- transaction_token: This was sent to you for processing, you would need to send it to the complete-order API link.
- api_secret_key: This is your API secret key
- order_status: Return 1 if payment was successful, 0 or any other number if payment failed
- payment_method: Return the payment method the customer used in paying. This would appear on the order invoice so it should be added correctly.
Do not return the customer to https://freehostingresell.com/api/complete-order you are to return the customer to https://yourdomain/bill/?order-status yourdomain here is your reseller domain. From our example it would be https://frs.pw/bill/?order-status
On the status page, the customer will see payment status as pending, if the payment made was successful or it failed then the appropriate notification shows. The values returned to https://freehostingresell.com/api/complete-order via POST will enable the customer know the order status else it will remain as Pending. If your balance with us is not enough to process the order, the customer will continue to see the ‘Pending’ status or the ‘Not Paid’ status even if his payment was successful from your end.
STEP 4) ADD FUNDS TO YOUR WALLET
If everything works, it’s important you add funds to your wallet with us as funds must exist in your balance before an order can be processed. If your account have processed a decent number of transactions, your account would be placed on an auto credit fill. This means when funds are running low, we would automatically refill your wallet with us with some amount based on your account age and transactions. You can contact us if you think you qualify for this option.
If your account is new or you haven’t processed at least minimum of $300 in total for all orders, please add funds!
STEP 5) Enable the Integration:
If you have successfully completed the integration, you should enable the status from here.
Resellers –> SetUp –> Custom Payments