HTML Form

Config form to get paid in your website


<form action="https://www.payfast.pro/payment" method="POST">
<input type="hidden" name="merchant_account" value="merchant@xyz.com">
<input type="hidden" name="item_number" value="2">
<input type="hidden" name="item_name" value="Chocolates">
<input type="hidden" name="item_price" value="15">
<input type="hidden" name="item_currency" value="USD">
<input type="hidden" name="return_success" value="http://domain.com/success.php">
<input type="hidden" name="return_fail" value="http://domain.com/fail.php">
<input type="hidden" name="return_cancel" value="http://domain.com/cancel.php">
<button type="submit">Pay via PayFast</button>
</form>


HTML Form For Receive Donations

Config form to get paid from your donaters.


<form action="https://www.payfast.pro/payment" method="POST">
<input type="hidden" name="merchant_account" value="merchant@xyz.com">
<input type="hidden" name="item_number" value="2">
<input type="hidden" name="item_name" value="Donation For Children">
<input type="hidden" name="item_price" value="15">
<input type="hidden" name="item_currency" value="USD">
<input type="hidden" name="return_success" value="http://domain.com/success.php">
<input type="hidden" name="return_fail" value="http://domain.com/fail.php">
<input type="hidden" name="return_cancel" value="http://domain.com/cancel.php">
<button type="submit">Donate via PayFast</button>
</form>


String Value Decription
merchant_account Eg: merchant@xyz.com This field is required to verify your account and to transfer payment direct to your wallet. Enter your email address with which you are registered in our website.
item_number Eg: 2 With this field, you can enter an order number, a product number, or any number that will be returned to your site upon successful payment to confirm the payment.
item_name Eg: Chocolates This will be shown in our payment page, to know customer for what pay.
item_price Eg: 15 Enter valid order amount with numbers.
item_currency Eg: USD/EUR/RUB Enter the 3-letter abbreviation for your currency. It will be used for the payment order from your website.
return_success Eg: http://domain.com/success.php Enter page url addressfor IPN verification (php code is below) and successful payment message.
return_fail Eg: http://domain.com/fail.php Enter page url address with message for failed payment.
return_cancel Eg: http://domain.com/cancel.php Enter page url address with message for canceled payment.


Payment Verification (success.php)

IPN Verification to run code when payment was successful.


<?php
$merchant_key = '...'; // Enter here your merchant API Key

$merchant_account = $_POST['merchant_account'];
$item_number = $_POST['item_number'];
$item_name = $_POST['item_name'];
$item_price = $_POST['item_price'];
$item_currency = $_POST['item_currency'];
$txid = $_POST['txid']; // Transaction ID
$payment_time = $_POST['payment_time']; // Current time of payment
$payee_account = $_POST['payee_account']; // The account of payee
$verification_link = "https://www.payfast.pro/payment_status.php?merchant_key=$merchant_key&merchant_account=$merchant_account&txid=$txid";
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL,$verification_link);
$results=curl_exec($ch);
curl_close($ch);
$results = json_decode($results);
if($results->status == "success") {
    //Payment is successful
    //Run your php code here
    echo 'Payment is successful.';
} else {
    echo 'Payment was failed.';
}
?>


Get Wallet Balances

Run this codes to get wallet balances via API.


<?php
$merchant_key = '...'; // Enter here your merchant API Key

$merchant_account = "..."; // Enter Account Email address
$verification_link = "https://www.payfast.pro/requests/GetWalletCurrency.php?merchant_key=$merchant_key&merchant_account=$merchant_account";
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL,$verification_link);
$results=curl_exec($ch);
curl_close($ch);
$results = json_decode($results);
if($results->status == "success") {
    //Fetching is successful
    //Run your php code here
    //Given Below code showing all currencies balance
    foreach ($results as $item) {
      echo "$item <br/>";
    }
    //Given Below code showing one currency balance
    echo $results->USD; //Write currency code to see specific currency balance
} else {
    echo $results->status;
}
?>


Get Current Currency Rates

Run this codes to get current currency rates via API.


<?php
$from_currency = '...'; // Enter here From Currency Ex: USD
$to_currency = "..."; // Enter here To Currency Ex: EUR
$verification_link = "https://www.payfast.pro/requests/Convert.php?amount=1&from=$from_currency&to=$to_currency";
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL,$verification_link);
$results=curl_exec($ch);
curl_close($ch);
$results = json_decode($results);
if($results->status == "success") {
    //Fetching is successful
    //Run your php code here
    //Given Below code showing a currency rates
    echo "Status : $results->status <br>";
    echo "Rate From : $results->rate_from <br>";
    echo "Rate To : $results->rate_to <br>";
    echo "Currency From : $results->currency_from <br>";
    echo "Currency To : $results->currency_to <br>";
} else {
    echo $results->status;
}
?>


Currency Conversion

Convert Currency with our rates.


<?php
$amount = '...'; // Enter Amount here Ex: 100
$from_currency = '...'; // Enter here From Currency Ex: USD
$to_currency = "..."; // Enter here To Currency Ex: EUR
$prefix = $from_currency.'_'.$to_currency;
$verification_link = "https://www.payfast.pro/requests/CurrencyConverter.php?amount=$amount&from=$from_currency&to=$to_currency";
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL,$verification_link);
$results=curl_exec($ch);
curl_close($ch);
$results = json_decode($results);
if($results->status == "success") {
    //Fetching is successful
    //Run your php code here
    echo "$prefix : $results->convert <br>";
} else {
    echo $results->status;
}
?>


Have a question in mind?

Send us an email we will get back to you ASAP. Feel Free to contact us again.