In order to fully achieve a 100% White Label reselling system and also increase local payments during checkout, the Custom Payment Feature makes it possible for resellers to accept their own payments via their billing checkout.
How it works:
We have enabled a simple API checkout process where you are able to integrate any payment system of your choice easily as a reseller. 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 should have a balance of the amount the user is paying, else auto product creation won’t work.
Example: If you Pre-Funded a total of $50 and you activated your custom payment system on your reseller site and the user paid you the sum of $55, this order won’t be processed by the system since your balance wasn’t enough for the transaction to be processed. You would then be required to fund your account and manually mark the order as Paid from your dashboard.
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 Settings –> Custom Payment
STEP ONE: We send you the following values via POST:
· billing_country (ex. US, CA)
Please Note: https://parent-domain means your Parent Domain, please replace https://parent-domain with your Parent Admin’s domain where you signed up from to become a reseller then also https://yourdomain is referred to as your reseller domain.
STEP TWO: 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://parent-domain/api/complete-order via POST.
STEP THREE: Then you redirect 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 value from your account balance. Only the default amount would be charged from your balance and not the total amount. If you don’t have enough balance to process the 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 [Then mark as paid]
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.
1) API DETAILS
Your API details are here https://panel.parent-domain/reseller/custom_settings 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.
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 Settings –> Custom Payments
The values you would add are explained below;
a. Payment Name: This is the name of the Payment system you would be integrating. Our example here Is PayPal. The customer will see the Title here as you can see from the image below;
b. 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, there are different ways of achieving this. You can Create a Sub domain 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 seem 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. 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 and value taken from your balance.
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.
5. Image: This is what the customer would see when checking out, be sure to create a custom image that actually explains what payment options are available for your payment method. Example below;
SETTING UP THE PROCESS LINK (FOR AUTOMATIC INTEGRATION)
Now we want to work on the Process Link we specified above on step 2 . 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 and use the POST values which would be sent to this PAGE by the system. The values again 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 number
· Billing_address: This is the billing’s address
· Billing_company_name: This is the billing’s company name
· Billing_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 and 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 and return values to https://parent-domain/api/complete-order via POST, either failed or success so that the customer would know the status of the payment and then redirect user to https://yourdomain/bill/?order-status after process.
The values to send back to https://parent-domain/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://parent-domain/api/complete-order you are to return the customer to https://yourdomain/bill/?order-status your domain 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://parent-domain/api/complete-order via POST will enable the customer know the order status else it will remain as Pending. If your balance in the Parent Domain wallet is not enough to process the order, the customer will continue to see the ‘Pending’ status or the ‘Not Paid’ status even if the payment was successful from his end.
Enable the Integration:
If you have successfully completed the integration, you should enable the status from here.
Resellers –> SetUp –>Custom Settings –> Custom Payments
Here is a step by step guide on how to set up the Custom Payment With Graphical Illustration;
From your reseller dashboard, navigate to set up then click on custom settings. Once you’ve done that you will be directed to a page with custom payment link option at the top.
Click on ”Add Payment” and then enter your payment method details as it’s shown below, we are using Paypal for our example.
Once you’ve entered save, you will see the success notification;