How To Accept Paynow On Your Website (Ecocash/Onemoney/Telecash) In Just 10 Minutes

How To Accept Paynow On Your Website (Ecocash/Onemoney/Telecash) In Just 10 Minutes

Given Ncube

When I was building Welodge Marketplace, I wanted a way to receive local payments on the site, I tried Paynow, created an account, followed the docs, integration key what what, it didn't work. I don't know, maybe it was just me.

The only way that worked was to create a link that when clicked redirects the customer to Paynow to make a payment and then back to the merchant site, let's call that "the redirect route".

This is the method I've seen on most website that use Paynow today including, hit.ac.zw, name.co.zw and many others I can't remember off the top of my head.

This didn't work for me, I wanted the customer to stay on site and just enter their pin, you know like they do other sites that take credit cards n stuff

If you've been in a similar situation, this blog is for you. Even if you've been able to integrate Paynow successfully using their REST API, I'm sure this method will save you lines of code the next time you integrate it, or just refactor your code to this

Right where were we, yes, it didn't work, so I decided to build a simplified API on top of what was working already, the redirect route. All you have to do is make just one POST request, and you're all set!

Here is the step-by-step guide on how to easily setup Paynow and start receive local payments with Flixtechs Easy.

Step 1: Create a Paynow merchant account

If you already have a paynow merchant account you can skip to step 3.

The first step is to visit the Paynow merchant services site and create an account. During signup, you will be prompted for business name address tax stuff and what not, just fill in depending on your organization.

Step 2: Add banking information

After your account has been created, you will be prompted to add a bank account. If that's not the case, from the homepage, click on "Manage Payment Settings"

Once you have been redirected, select Ecocash and fill in the bank account that will receive the funds, do the same for OneMoney, Telecash.

After this, well, we're done, we are now ready to receive payments via Paynow.

Step 3: Create a Flixtechs Easy account

In order to easily receive payments through your application, you need an account from our custom solution that sits on top of Paynow to simplify the integration.

Head over to https://easy.flixtechs.co.zw and create an account.

Just after sign up you will be redirected to a profile page

At the bottom, click on "Generate Token" to generate an API token to use during integration,

Copy the token to somewhere safe, probably in your .env file,

From the navbar click on documentation for more information on how to use the API, it's just one request you need only.

Making a test payment

Okay let's just test to see if our API token is working correctly, I'm using a Node.js example with axios, so first just initialize a project

npm init

Then install axios

npm i axios

After installing axios create a file say, payment.js and paste the following snippet inside

var axios = require('axios');
var qs = require('qs');

var data = qs.stringify({
  'name': 'Customer-Name-goes-here',
  'merchant_email': 'your-merchant-email@here'
  'phone': 'customer-phone-number-goes-here',
  'reference': 'Oder-reference-goes-here',
  'amount': '2500' 
});

var config = {
  method: 'post',
maxBodyLength: Infinity,
  url: 'https://easy.flixtechs.co.zw/api/payments',
  headers: { 
    'Authorization': 'Bearer your-token-goes-here', 
    'Accept': 'application/json'
  },
  data : data
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});

Save the file and run it with

node payment.js

Make sure you have internet connection and have provided the correct phone number for the phone field. You should receive a pop-up prompting your PIN, enter your pin to authorize payment, and it should reflect in your Paynow account, sadly they don't have a way of viewing your current balance, but you will receive an email soon as payment is received.

And that's it!, it's as simple as that, if you need any help to integrate Paynow or using our API just let me know via the contact form or reach out to me on Twitter @ncubegiven_

If you want to learn how to build an ecommerce site in Laravel, we have an ongoing series tutorial here

Happy coding!