Jump to content

Error: Gateway Module "Gateway_notify" Not Activated


Aeterno

Recommended Posts

Hello everyone,

 

I got an error for the gateway module callback from Payment Gateway below:

 

 

                        border: solid 1px #999;
           padding: 5px;
           background-color: #d9edf7;
       }
   </style>

 </head>
 <body>
   <div class="error-container">
<h1>Oops!</h1>
<h2>Something went wrong and we couldn't process your request.</h2>
<p>Please go back to the previous page and try again.</p>
<p>Error: Gateway Module "Gateway_notify" Not Activated</p></div>
 </body>
</html>

 

And this the callback

 

<?php
/**
* DOKU Hosted Payment Callback File
*
* This sample file demonstrates how a payment gateway callback should be
* handled within WHMCS.
*
* It demonstrates verifying that the payment gateway module is active,
* validating an Invoice ID, checking for the existence of a Transaction ID,
* Logging the Transaction for debugging and Adding Payment to an Invoice.
*
* For more information, please refer to the online documentation.
*
* @see https://developers.whmcs.com/payment-gateways/callbacks/
*
* @copyright Copyright (c) WHMCS Limited 2017
* @license http://www.whmcs.com/license/ WHMCS Eula
*/

// Require libraries needed for gateway module functions.
require_once __DIR__ . '/../../../init.php';
require_once __DIR__ . '/../../../includes/gatewayfunctions.php';
require_once __DIR__ . '/../../../includes/invoicefunctions.php';

$$moduleName = $gatewayModuleName;

// Detect module name from filename.
$gatewayModuleName = basename(__FILE__, '.php');

// Fetch gateway configuration parameters.
$gatewayParams = getGatewayVariables($gatewayModuleName);

// Die if module is not active.
if (!$gatewayParams['type']) {
   die("Module Not Activated");
}

$order_id = checkCbInvoiceID($order_id, $gatewayParams['name']);
//$success = false;


if ($RESPONSECODE == '0000' && DOKUhosted::validateTransaction($TRANSIDMERCHANT, $BASKET, $WORDS)) {
$success = true;
} else {
$success = false;
}     

if ($success) {
   /**
    * Add Invoice Payment.
    *
    * Applies a payment transaction entry to the given invoice ID.
    *
    * @param int $invoiceId         Invoice ID
    * @param string $transactionId  Transaction ID
    * @param float $paymentAmount   Amount paid (defaults to full balance)
    * @param float $paymentFee      Payment fee (optional)
    * @param string $gatewayModule  Gateway module name
    */


   // Retrieve data returned in payment gateway callback
   // Varies per payment gateway
   //$success = $_POST["x_status"];
   //$TRANSIDMERCHANT = sha1(microtime());
   $TRANSIDMERCHANT = $_POST['TRANSIDMERCHANT'];
   $STATUSTYPE = $_POST["STATUSTYPE"];
   $APPROVALCODE = $_POST["APPROVALCODE"];
   $transactionId = $_POST["TRANSIDMERCHANT"];
   $paymentAmount = $_POST["AMOUNT"];
  // $PAYMENTCHANNEL $_POST["PAYMENTCHANNEL"];
   $PAYMENTCODE = $_POST["PAYMENTCODE"];
   $SESSIONID = $_POST["SESSIONID"];
   $BANK = $_POST["BANK"];
   $MCN = $_POST["MCN"];
   $MTIME = date("YmdHms");
   $PAYMENTDATETIME = $_POST['PAYMENTDATETIME'];
   $VERIFYID = $_POST["VERIFYID"];
   $VERIFYSCORE = $_POST["VERIFYSCORE"];
   $VERIFYSTATUS = $_POST["VERIFYSTATUS"];
   $CURRENCY = '360';
   $PURCHASECURRENCY = '360';
   $BRAND = $_POST["BRAND"];
   $CHNAME = $_POST["CHNAME"];
   $THREEDSECURESTATUS = $_POST["THREEDSECURESTATUS"];
   $EDUSTATUS = 'NA';
   $WORDS = $_POST['WORDS'];
   $TRANSIDMERCHANT = $_POST['TRANSIDMERCHANT'];

   //$transactionStatus = $success ? 'Success' : 'Failure';
  // $transactionStatus = $success ? echo "Success";
   $transactionStatus = $success;
   $success = 'Sucess'; 

}
/**
* Validate callback authenticity.
*
* Most payment gateways provide a method of verifying that a callback
* originated from them. In the case of our example here, this is achieved by
* way of a shared secret which is used to build and compare a hash.
*/

   $SHARED_KEY = $gatewayParams['SHARED_KEY'];
   $MALLID = $gatewayParams['MALLID'];
   $amount = $gatewayParams['AMOUNT'];

if ($hash != md5($paymentAmount.$MALLID.$SHARED_KEY.$TRANSIDMERCHANT.$VERIFYSTATUS)) {
//($hash != md5($invoiceId . $transactionId . $paymentAmount . $SHARED_KEY)) {
   $transactionStatus = $failed;
   $failed = 'Hash Verification Failure';
   echo $failed;
   //$success = false;
}

/**
* Validate Callback Invoice ID.
*
* Checks invoice ID is a valid invoice number. Note it will count an
* invoice in any status as valid.
*
* Performs a die upon encountering an invalid Invoice ID.
*
* Returns a normalised invoice ID.
*
* @param int $invoiceId Invoice ID
* @param string $gatewayName Gateway Name
*/
//$invoiceId = checkCbInvoiceID($invoiceId, $gatewayParams['name']);
$invoiceId = checkCbInvoiceID($invoiceId, $gatewayParams['name']);

/**
* Check Callback Transaction ID.
*
* Performs a check for any existing transactions with the same given
* transaction number.
*
* Performs a die upon encountering a duplicate.
*
* @param string $transactionId Unique Transaction ID
*/
checkCbTransID($transactionId);

/**
* Log Transaction.
*
* Add an entry to the Gateway Log for debugging purposes.
*
* The debug data can be a string or an array. In the case of an
* array it will be
*
* @param string $gatewayName        Display label
* @param string|array $debugData    Data to log
* @param string $transactionStatus  Status
*/
//logTransaction($gatewayParams['name'], $gatewayParams['WORDS'], .$transactionStatus);
logTransaction($gatewayParams['name'], $_POST, $transactionStatus);



if ($success) {

   /**
    * Add Invoice Payment.
    *
    * Applies a payment transaction entry to the given invoice ID.
    *
    * @param int $invoiceId         Invoice ID
    * @param string $transactionId  Transaction ID
    * @param float $paymentAmount   Amount paid (defaults to full balance)
    * @param float $paymentFee      Payment fee (optional)
    * @param string $gatewayModule  Gateway module name
    */
   addInvoicePayment(
       $invoiceId,
       $transactionId,
       $paymentAmount,
       $paymentFee,
       $gatewayModuleName
   );
   echo "Payment success notification accepted";
}
else{
//Adopted from paypal to log all the failed transaction
$orgipn = "";
foreach ($_POST as $key => $value) {
	$orgipn.= ("" . $key . " => " . $value . "\r\n");		
}
logTransaction($gatewayModuleName, $orgipn, "Duitku Handshake Invalid");
header("HTTP/1.0 406 Not Acceptable");
exit();
}
?>

 

It still show me the error also it wasn't saved to Gateway Log the error occurred. Could someone help me for this issue ?

 

Thank you

Link to comment
Share on other sites

  • 3 years later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use & Guidelines and understand your posts will initially be pre-moderated