Description
TjingTjing adds Payfast checkout to Ninja Forms. Your visitor fills in the form, pays securely on Payfast, and the payment is verified and recorded against their submission.
- Works with the free Ninja Forms plugin
- Fixed or calculated amounts, for example {field:amount} or {calc:total}
- Sandbox mode for safe testing
- Every payment verified four ways: signature, source, Payfast confirmation, amount
- Payment status (Pending, Paid, Failed, Cancelled, Refunded) saved on each submission
- A Payments screen listing every payment, where you record refunds made in Payfast
- No WooCommerce, no invoicing system, no code
TjingTjing is an independent plugin. It is not affiliated with or endorsed by Payfast or Ninja Forms. Payfast and Ninja Forms are trademarks of their owners.
External services
This plugin connects to Payfast (https://payfast.io), a South African payment gateway, to take payments. You need your own Payfast merchant account.
- When a visitor submits a form with the TjingTjing action, their browser is sent to Payfast’s payment page with the amount, what they are paying for, a payment reference, and the buyer’s name, email and (if you map it) cell number. Payfast needs these to take the payment and send a receipt.
- After a payment, Payfast sends a notification to your site. TjingTjing then sends that notification back to Payfast to confirm it is genuine.
- In Sandbox mode the same happens on sandbox.payfast.co.za and no real money moves.
Payfast terms and conditions: https://payfast.io/legal/general-terms-conditions/
Payfast privacy policy: https://payfast.io/privacy-policy/
Installation
- Install and activate TjingTjing, and make sure Ninja Forms is active.
- Go to TjingTjing > Settings and enter your Payfast Merchant ID and Key (and passphrase, if you set one in Payfast). Leave Sandbox on while testing.
- Edit a form in Ninja Forms. Under Emails & Actions, add “TjingTjing (Payfast)”.
- Set the amount (for example {field:amount} or {calc:total}), what they are paying for, and the buyer’s name and email fields.
- Optional: add a Hidden field with the key
payment_statusto see the status in Ninja Forms’ Submissions screen and exports.
FAQ
-
Do I need a Payfast account?
-
Yes. Payfast holds and pays out the money. TjingTjing connects your form to it. For testing, create a free sandbox account at sandbox.payfast.co.za.
-
Why does Payfast say I can’t pay myself?
-
Payfast refuses a payment when the buyer’s email address is the same as the merchant account’s. When you test your own form, use a different email address.
-
How do refunds work?
-
Refund the money in your Payfast dashboard. Then open TjingTjing > Payments and click Record refund on that payment, for the full amount or part of it. Payfast does not tell your site about refunds, so this keeps your records and the form submission up to date.
-
Do I need to set a notify URL in Payfast?
-
No. TjingTjing sends it with every payment.
-
Payments stay “Pending”
-
A payment stays Pending if the buyer never finishes paying. If paid payments stay Pending, turn on the debug log under TjingTjing > Settings and check your PHP error log. If it says the source IP failed and your site uses Cloudflare or another proxy, set “Site behind a proxy”.
-
What happens to my data if I delete the plugin?
-
Settings are removed. The payments table is kept, because it is a financial record. To remove it as well, add
define( 'TJINGTJING_REMOVE_ALL_DATA', true );to wp-config.php before deleting the plugin. -
For developers
-
tjingtjing_payment_complete( $payment, $itn ) fires once per verified payment.
tjingtjing_payment_status_changed( $status, $payment, $itn ) fires on every verified update.
tjingtjing_payment_refunded( $payment, $refund ) fires when a refund is recorded.
tjingtjing_credentials filters the merchant credentials per payment.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“TjingTjing – Form Payments with Payfast” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “TjingTjing – Form Payments with Payfast” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
0.3.2
- New name: TjingTjing – Form Payments with Payfast.
0.3.1
- Database queries use WordPress’s identifier placeholders throughout.
- A Settings link on the Plugins screen.
- Requires WordPress 6.2 or later.
0.3.0
- Ready for wordpress.org: every admin text is translatable, a clean uninstall, and documentation of the Payfast connection.
- Notice when Ninja Forms is not active.
- Refund messages no longer travel in the page address.
0.2.1
- Fix: the TjingTjing action now appears in Ninja Forms’ action list.
0.2.0
- New Payments screen.
- Record full and partial refunds; status shows on the submission.
0.1.0
- First build: shared Payfast core and Ninja Forms adapter.
