Download the PHP package yabacon/paystack-php without Composer
On this page you can find all versions of the php package yabacon/paystack-php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download yabacon/paystack-php
More information about yabacon/paystack-php
Files in yabacon/paystack-php
Package paystack-php
Short Description Helps make your Paystack API calls giving a stdClass object.
License MIT
Homepage https://github.com/yabacon/paystack-php
Informations about the package paystack-php
paystack-php
A PHP API wrapper for Paystack.
Requirements
- Curl 7.34.0 or more recent (Unless using Guzzle)
- PHP 5.4.0 or more recent
- OpenSSL v1.0.1 or more recent
Install
Via Composer
Via download
Download a release version from the releases page. Extract, then:
IMPORTANT
Version 2 is not compatible with version 1 code! It throws an error if there's problem error in cURL or if the Paystack API gives a false status in the response body.
Usage
Do a redirect to the authorization URL received from calling the transaction/initialize endpoint. This URL is valid for one time use, so ensure that you generate a new URL per transaction.
When the payment is successful, we will call your callback URL (as setup in your dashboard or while initializing the transaction) and return the reference sent in the first step as a query parameter.
If you use a test secret key, we will call your test callback url, otherwise, we'll call your live callback url.
0. Prerequisites
Confirm that your server can conclude a TLSv1.2 connection to Paystack's servers. Most up-to-date software have this capability. Contact your service provider for guidance if you have any SSL errors. Don't disable SSL peer verification!
1. Prepare your parameters
email
and amount
are the most common compulsory parameters. Do send a unique email per customer. If your customers do not provide a unique email, please devise a strategy to set one for each of them. Any of those below work fine. The amount we accept on all endpoint are in kobo and must be an integer value. For instance, to accept 456 naira, 78 kobo
, please send 45678
as the amount.
2. Initialize a transaction
Initialize a transaction by calling our API.
When the user enters their card details, Paystack will validate and charge the card. It will do all the below:
Redirect back to a callback_url set when initializing the transaction or on your dashboard at: https://dashboard.paystack.co/#/settings/developer . If neither is set, Customers see a Transaction was successful message.
Send a charge.success event to your Webhook URL set at: https://dashboard.paystack.co/#/settings/developer
If receipts are not turned off, an HTML receipt will be sent to the customer's email.
Before you give value to the customer, please make a server-side call to our verification endpoint to confirm the status and properties of the transaction.
3. Handle charge.success Event
We will post a charge.success event to the webhook URL set for your transaction's domain. If it was a live transaction, we will post to your live webhook url and vice-versa.
- if using .htaccess, remember to add the trailing / to the url you set.
- Do a test post to your URL and ensure the script gets the post body.
- Publicly available url (http://localhost cannot receive!)
4. Verify Transaction
After we redirect to your callback url, please verify the transaction before giving value.
5. Closing Notes
Generally, to make an API request after constructing a paystack object, Make a call
to the resource/method thus: $paystack->{resource}->{method}()
; for gets,
use $paystack->{resource}(id)
and to list resources: $paystack->{resource}s()
.
Currently, we support: 'customer', 'page', 'plan', 'subscription', 'transaction' and 'subaccount'. Check our API reference(link-paystack-api-reference) for the methods supported. To specify parameters, send as an array.
Check SAMPLES for more sample calls
Extras
There are classes that should help with some tasks developers need to do on Paystack often:
Fee
This class works with an amount and your Paystack fees. To use, create a new Fee object
Configure it:
Calculate fees
To know what to send to the API when you want to be settled a particular amount
Event
This class helps you capture and our events:
Verify it against a key:
Discover the key that owns it (IN case same webhook receives for several integrations). This can come in handy for multi-tenant systems. Or simply if you want to have same test and live webhook url.
To forward the event to another url. In case you want other systems to be notified of exact same event.
MetadataBuilder
This class helps you build valid json metadata strings to be sent when making transaction requests.
Add metadata
Add MetaData by calling the withKeyName
magic function (These will not be shown on dashboard).
Do not use CustomFields
as a KeyName
To turn off automatic snake-casing of Key names, do:
before you start adding metadata to the $builder
.
Add Custom Fields
Add Custom Fields by calling the withCustomField
function (These will shown on dashboard).
Build JSON
Finally call build()
to get your JSON metadata string.
Using Custom Routes
You can add your custom routes by calling the useRoutes
method on the paystack object.
Your custom routes should implement the contract
Change log
Please see CHANGELOG for more information what has changed recently.
Testing
Contributing
Please see todo list for features already intended.
Security
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
Credits
- Yabacon
- Issa Jubril
- Akachukwu Okafor
- Ibrahim Lawal
- Opeyemi Obembe - followed the style he employed in creating the NodeJS Wrapper
- All Contributors
License
The MIT License (MIT). Please see License File for more information.