[NEW PLUGIN] PayFast Payment Gateway (South Africa)

Hi @pieter,

This is really helpful. I just wanted to find out if there is any way to integrate Payfast’s “Split Payment” Functionality? (https://developers.payfast.co.za/docs#splitpayments)

Thanks in advance.

Hi @hmakkan

Unfortunately the plugin has not been updated with Split payments as yet however this is in the backlog.

The plugin currently supports once off and subscription payments through PayFast.

Regards,
Pieter

Thanks @pieter ,

Any idea on the timeline for the update?

Kind regards.

Hi Pieter,

Many thanks for the plugin.

I’m having an issue though, I’m trying to set the email dynamically so I’ve got a state on the popup which I default to “aa@aa.com” and I update it to the actual value “me@here.com” when I click the subscribe button via the workflow.

In the same workflow, I also start the checkout and the value that’s passed through to payfast is the “aa@aa.com”.

It doesn’t pick up the updated email address stored in the state when I click the subscribe button, only the original default state value.

Any ideas how to get it working dynamically?

Thanks

Hi Pieter,

2 more questions:

  1. How do I set custom values?
  2. How do I make use of the sandbox rather than making live transactions?

Many thanks.

Hi @cousens,

  1. The issue with the email ending up as aa@aa.com is due to the payfast workflow triggering before the correct value has been set. You should set this value before triggering the PayFast workflow. I would recommend either adding a pause in the workflow or triggering a custom event based on the condition that the email value has been set.

  2. For custom values. I would need additional information not sure what is meant by custom values. `If you have some screenshots it would be great if you could share them.

  3. Sandbox feature will be released in the next version along with split payments before end Nov.

Also, feel free to DM me directly for assistance.

Thanks,
Pieter

Hi Pieter,

Thanks so much for your quick response.

I’ve attached a screenshot showing the custom strings and integers that we can pass through additional information in. We will have a PaymentID but may also need to send through additional information for processing on the return side of things.

I make use of these for one type of transaction I process.

I also have another question:

  1. Once I have 3 subscriptions, how can I get the status of each one and allow the user to cancel a specific one from my bubble side? I have all 3 subscriptions returned in a repeating group and a button but not sure how to link the single plugin to each of those dynamically to query the subscription status for each one and to execute the cancellation for each one separately.

Thanks for the great plugin!

H i @cousens,

Sending of custom strings are not included in the current version of the plugin at the moment however will add this to the plugin dev roadmap.

You would need to make use of the GET SUBSCRIPTION and UPDATE SUBSCRIPTION actions and send through the subscription token of the specific RG record. So the subscription token would need to be stored and submitted in the UPDATE SUBSCRIPTION action. Unfortunately I wouldn’t be able to provide any additional support for this as it falls outside the scope of the plugin support.

Regards,
Pieter

Hi All,

Back with some good news!

The plugin has just been updated with the below functionality. Simply upgrade the plugin to the latest version via the Plugins menu (backwards compatible):

New Feature - Sandbox Mode

We’ve introduced the Sandbox mode checkbox to the PayFast element. When selected, the payments will be routed through the PayFast sandbox environment.

Important: When selecting the Sandbox checkbox, the below merchant_id, merchant_key and passphrase needs to be entered into the plugin settings:

New Feature - Split Payments

We’ve also added Split Payments functionality in the latest release. This will allow Payfast merchants to split payments with other Payfast merchants.

An overview of the Split Payments fields:

merchant_id: This is the merchant_id of the PayFast merchant that you will be splitting the payment with.
amount: The amount that is being split (Leave blank when using percentage)
percentage: The percentage that is being split (Leave blank when using amount)
min: The minimum amount that is being split (This amount will be split with merchant if percentage split is lower than this amount. Note - amount should be in cents ZAR)
max: The maximum amount that is being split (This amount will be split with merchant if percentage split is higher than this amount. Note - amount should be in cents ZAR)

Important notes when making use of split payments:

  1. Ensure that Split Payments is enabled on both of the merchant accounts on the Payfast dashboard.
  2. Add the Merchant ID which you plan to split the payment with in the whitelist. (Screenshot below)
  3. Complete the Split Payments fields on the Payfast Element.

Note: There is no noticeable change visible to the users during the checkout process however the transactions will be split between the merchant accounts in the backend.

We hope you enjoy making use of these new features. As always, if you need any help with these new features please feel free to reach out via a DM.

PS. We’d appreciate if you could take some time to review our plugin.

Thanks,
Pieter

Hi @cousens,

Good news, we’ve just pushed our new version which includes Sandbox and Split Payments.

See the post here: [NEW PLUGIN] PayFast Payment Gateway (South Africa) - #28 by pieter

Thanks,
Pieter

Hi @pieter. Thanks for this awesome plugin. When PayFast sends a notification to your notify_url (for example https://mysite.co.za/api/1.1/wf/itn_notification) how do I read the parameters and pull them into my database? For example, when the customer orders an order is created with a unique order number in the database and the status set as pending (per the demo app). How do I update this status now from the notify_url to say complete?

Sorry, I see it’s a backend workflow 🤦.

Hi @sacoetzee

Glad you managed to find it.

Please let me know if you need any further assistance.

Regards,
Pieter

Hi @pieter ,

I was hoping to try out the demo - but your plan seems to have run out of Things in the database, which effectively renders the demo useless.

Any chance you could clear out some Things from the database?

Hi @bernard

Apologies, looking into this as we speak. Will get the demo page back up and running asap.

Thank you for the interest!

Regards,
Pieter

Hi Pieter

I hope you are well ?

I’ve really been struggling to find a good payment gateway solution for my app which will be offerred to South Africans, however I’ve never ever done this before and have no idea where to start

Would you kindly be able to provide me with some guidance as I would really appreciate it

If it helps, my main focus would be towards a more subscription based approach where sellers must pay me a monthly subscription to advertise on my platform

Any assistance in this regard would be greatly appreciated

Kind regards

Hi @christiaanlaubser123

The payfast payments plugin would definitely work for this scenario/use case.

If you need some help with setting this up within your app, you can submit a support request here and one of our team members will get in touch.

Submit support ticket

Thanks,
Pieter

Hi i have a Pre-sale question, if a client makes a purchase, will the plugin return a successful or declined reference number ?

Thanks

Hi @shisaware

Thank you for reaching out. After a purchase is completed, the plugin will respond back in the backend workflow with a status (SUCESSFUL, CANCELLED) which can be assigned to the MPaymentId (Order/payment reference).

Thanks,
Pieter

Thank you.