PHP code example of unicodeveloper / laravel-paystack
1. Go to this page and download the library: Download unicodeveloper/laravel-paystack library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
unicodeveloper / laravel-paystack example snippets
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Redirect;
use Paystack;
class PaymentController extends Controller
{
/**
* Redirect the User to Paystack Payment Page
* @return Url
*/
public function redirectToGateway()
{
try{
return Paystack::getAuthorizationUrl()->redirectNow();
}catch(\Exception $e) {
return Redirect::back()->withMessage(['msg'=>'The paystack token has expired. Please refresh the page and try again.', 'type'=>'error']);
}
}
/**
* Obtain Paystack payment information
* @return void
*/
public function handleGatewayCallback()
{
$paymentDetails = Paystack::getPaymentData();
dd($paymentDetails);
// Now you have the payment details,
// you can store the authorization_code in your db to allow for recurrent subscriptions
// you can then redirect or do whatever you want
}
}
/**
* In the case where you need to pass the data from your
* controller instead of a form
* Make sure to send:
* eference" => '4g4g5485g8545jg8gj',
"email" => '[email protected]',
"currency" => "NGN",
"orderID" => 23456,
);
return Paystack::getAuthorizationUrl($data)->redirectNow();
/**
* This fluent method does all the dirty work of sending a POST request with the form data
* to Paystack Api, then it gets the authorization Url and redirects the user to Paystack
* Payment Page. We've abstracted all of it, so you don't have to worry about that.
* Just eat your cookies while coding!
*/
Paystack::getAuthorizationUrl()->redirectNow();
/**
* Alternatively, use the helper.
*/
paystack()->getAuthorizationUrl()->redirectNow();
/**
* This fluent method does all the dirty work of verifying that the just concluded transaction was actually valid,
* It verifies the transaction reference with Paystack Api and then grabs the data returned from Paystack.
* In that data, we have a lot of good stuff, especially the `authorization_code` that you can save in your db
* to allow for easy recurrent subscription.
*/
Paystack::getPaymentData();
/**
* Alternatively, use the helper.
*/
paystack()->getPaymentData();
/**
* This method gets all the customers that have performed transactions on your platform with Paystack
* @returns array
*/
Paystack::getAllCustomers();
/**
* Alternatively, use the helper.
*/
paystack()->getAllCustomers();
/**
* This method gets all the plans that you have registered on Paystack
* @returns array
*/
Paystack::getAllPlans();
/**
* Alternatively, use the helper.
*/
paystack()->getAllPlans();
/**
* This method gets all the transactions that have occurred
* @returns array
*/
Paystack::getAllTransactions();
/**
* Alternatively, use the helper.
*/
paystack()->getAllTransactions();
/**
* This method generates a unique super secure cryptographic hash token to use as transaction reference
* @returns string
*/
Paystack::genTranxRef();
/**
* Alternatively, use the helper.
*/
paystack()->genTranxRef();
/**
* This method creates a subaccount to be used for split payments
* @return array
*/
Paystack::createSubAccount();
/**
* Alternatively, use the helper.
*/
paystack()->createSubAccount();
/**
* This method fetches the details of a subaccount
* @return array
*/
Paystack::fetchSubAccount();
/**
* Alternatively, use the helper.
*/
paystack()->fetchSubAccount();
/**
* This method lists the subaccounts associated with your paystack account
* @return array
*/
Paystack::listSubAccounts();
/**
* Alternatively, use the helper.
*/
paystack()->listSubAccounts();
/**
* This method Updates a subaccount to be used for split payments
* @return array
*/
Paystack::updateSubAccount();
/**
* Alternatively, use the helper.
*/
paystack()->updateSubAccount();