A PHP API wrapper for Notch Pay.
You can install the package via composer:
composer require notchpay/notchpay-php
Do a redirect to the authorization URL received from calling the payments/initialize endpoint. This URL is valid for one time use, so ensure that you generate a new URL per payment.
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 public key, we will call your test callback url, otherwise, we'll call your live callback url.
Confirm that your server can conclude a TLSv1.2 connection to Notch Pay'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!
email
, amount
and currency
are the most common compulsory parameters. Do send a unique email per customer.
The amount accept numeric value value.
The currency accept currency ISO 3166.
For instance, to accept For US Dollar
, please send USD
as the currency.
Initialize a payment by calling our API.
use NotchPay\NotchPay;
use NotchPay\Payment;
NotchPay::setApiKey('sk_1234abcd');
try {
$tranx = Payment::initialize([
'amount'=>$amount, // according to currency format
'email'=>$email, // unique to customers
'currency'=>$currency, // currency iso code
'callback'=>$callback, // optional callback url
'reference'=>$reference, // unique to transactions
]);
} catch(\NotchPay\Exceptions\ApiException $e){
print_r($e->errors);
die($e->getMessage());
}
// redirect to page so User can pay
header('Location: ' . $tranx->authorization_url);
When the user enters their payment details, NotchPay will validate and charge the card. It will do all the below:
Send a payment.complete event to your Webhook URL set at: https://business.notchpay.co/settings/developer
If receipts are not turned off, an HTML receipt will be sent to the customer's email.
After we redirect to your callback, please verify the transaction before giving value.
$reference = isset($_GET['reference']) ? $_GET['reference'] : '';
if(!$reference){
die('No reference supplied');
}
// initiate the Library's NotchPay Object
NotchPay::setApiKey('sk_1234abcd');
try {
$tranx = Payment::verify($reference);
if ($tranx->transaction->status === 'complete') {
// transaction was successful...
// please check other things like whether you already gave value for this ref
// if the email matches the customer who owns the product etc
// Give value
}
} catch(\NotchPay\Exceptions\ApiException $e){
print_r($e->errors);
die($e->getMessage());
}
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
If you discover any security related issues, please email hello@notchpay.co instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.