52 lines
1.9 KiB
PHP
52 lines
1.9 KiB
PHP
<?php
|
|
|
|
# Required File Includes
|
|
include("../../../includes/functions.php");
|
|
include("../../../includes/gatewayfunctions.php");
|
|
include("../../../includes/invoicefunctions.php");
|
|
|
|
$gatewaymodule = "payanyway"; # Enter your gateway module name here replacing template
|
|
|
|
$GATEWAY = getGatewayVariables($gatewaymodule);
|
|
if (!$GATEWAY["type"]) die("Module Not Activated"); # Checks gateway module is active before accepting callback
|
|
|
|
# Get Returned Variables - Adjust for Post Variable Names from your Gateway's Documentation
|
|
$invoiceid = $_GET["MNT_TRANSACTION_ID"];
|
|
$transid = $_GET["MNT_OPERATION_ID"];
|
|
$amount = $_GET["MNT_AMOUNT"];
|
|
|
|
$invoiceid = checkCbInvoiceID($invoiceid, $GATEWAY["name"]); # Checks invoice ID is a valid invoice number or ends processing
|
|
|
|
checkCbTransID($transid); # Checks transaction number isn't already in the database and ends processing if it does
|
|
|
|
if (_checkSignature($GATEWAY)) {
|
|
# Successful
|
|
addInvoicePayment($invoiceid, $transid, $amount, null, $gatewaymodule); # Apply Payment to Invoice: invoiceid, transactionid, amount paid, fees, modulename
|
|
logTransaction($GATEWAY["name"], $_GET, "Successful"); # Save to Gateway Log: name, data array, status
|
|
die("SUCCESS");
|
|
} else {
|
|
# Unsuccessful
|
|
logTransaction($GATEWAY["name"], $_GET, "Unsuccessful"); # Save to Gateway Log: name, data array, status
|
|
}
|
|
die("FAIL");
|
|
|
|
|
|
|
|
function _checkSignature($GATEWAY) {
|
|
$params = '';
|
|
if (isset($_GET['MNT_COMMAND'])) $params .= $_GET['MNT_COMMAND'];
|
|
$params .= $_GET['MNT_ID'] . $_GET['MNT_TRANSACTION_ID'];
|
|
if (isset($_GET['MNT_OPERATION_ID'])) $params .= $_GET['MNT_OPERATION_ID'];
|
|
if (isset($_GET['MNT_AMOUNT'])) $params .= $_GET['MNT_AMOUNT'];
|
|
$params .= $_GET['MNT_CURRENCY_CODE'];
|
|
if (isset($_GET['MNT_SUBSCRIBER_ID'])) $params .= $_GET['MNT_SUBSCRIBER_ID'];
|
|
$params .= $_GET['MNT_TEST_MODE'];
|
|
|
|
$signature = md5($params . $GATEWAY['mnt_dataintegrity_code']);
|
|
|
|
if (strcasecmp($signature, $_GET['MNT_SIGNATURE']) == 0) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|