3
0
WHMCS/modules/gateways/callback/payanyway.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;
}