Omnipay: Instamojo
Instamojo driver for the Omnipay PHP payment processing library, (*1)
Omnipay is a framework agnostic, multi-gateway payment
processing library for PHP 5.3+.
This package implements Instamojo Payments API v1.1., (*2)
Installation
Omnipay is installed via Composer. To install, simply run:, (*3)
composer require gentor/omnipay-instamojo
Purchase
use Omnipay\Omnipay;
// Setup payment gateway
$gateway = Omnipay::create('Instamojo');
$gateway->setApiKey('abc123');
$gateway->setAuthToken('abc123');
// Send purchase request
$response = $gateway->purchase(
[
'amount' => '10.00',
'purpose' => 'Instamojo Payment'
]
)->send();
// Process response
if ($response->isSuccessful() && $response->isRedirect()) {
// Redirect to offsite payment gateway
// print_r($response->getData());
// echo $response->getTransactionStatus();
$response->redirect();
} else {
// Request failed
echo $response->getMessage();
}
Complete Purchase
// Send complete purchase request
$response = $gateway->completePurchase(
[
'transactionReference' => $_GET['payment_id'],
]
)->send();
// Process response
if ($response->isSuccessful()) {
// Request was successful
print_r($response->getData());
echo $response->getTransactionStatus();
} else {
// Request failed
echo $response->getMessage();
}
Refund
// Send refund request
$response = $gateway->refund(
[
'transactionReference' => $payment_id,
]
)->send();
// Process response
if ($response->isSuccessful()) {
// Request was successful
print_r($response->getData());
echo $response->getTransactionStatus();
} else {
// Request failed
echo $response->getMessage();
}
Fetch Payment Request
// Send fetch payment request
$response = $gateway->fetchPaymentRequest(
[
'transactionReference' => $payment_request_id,
]
)->send();
// Process response
if ($response->isSuccessful()) {
// Request was successful
print_r($response->getData());
echo $response->getTransactionStatus();
} else {
// Request failed
echo $response->getMessage();
}
Webhook
use Omnipay\Omnipay;
// Setup payment gateway
$gateway = Omnipay::create('Instamojo');
$gateway->setSalt('abc123');
// Payment notification request
$response = $gateway->acceptNotification()->send();
// Process response
if ($response->isSuccessful()) {
// Request was successful
print_r($response->getData());
echo $response->getTransactionReference();
echo $response->getTransactionStatus();
} else {
// Request failed
echo $response->getMessage();
}