// !!!!! DO NOT UPDATE TRANSACTION STATUSES IN THIS SCRIPT! WE WILL SEND TRANSACTION DETAILS TO YOUR NOTIFICATION SCIPRT (SETUP IN OUR DASHBOARD) // !!!!! AND YOU MUST UPDATE TRANSACTION AND ORDER STATUS IN YOUR NOTIFICATION SCRIPT // !!!!! THIS SCRIPT IS INTENDED TO NOTIFY YOUR CLIENT ABOUT CURRENT STATUS OF TRANSACTION. // // Please note that transaction can be in Open or Processing status which means a final status notification will follow // // include_once S2P_SDK_DIR_CLASSES . 's2p_sdk_return.inc.php'; define('S2P_SDK_RETURN_IDENTIFIER', microtime(true)); S2P_SDK\S2P_SDK_Return::logging_enabled(true); S2P_SDK\S2P_SDK_Return::logf('--- Return START --------------------', false); $return_params = array(); $return_params['auto_extract_parameters'] = true; /** @var S2P_SDK\S2P_SDK_Return $return_obj */ if (!($return_obj = S2P_SDK\S2P_SDK_Module::get_instance('S2P_SDK_Return', $return_params)) or $return_obj->has_error()) { if (S2P_SDK\S2P_SDK_Module::st_has_error() and $error_arr = S2P_SDK\S2P_SDK_Module::st_get_error() or !empty($return_obj) and $return_obj->has_error() and $error_arr = $return_obj->get_error()) { S2P_SDK\S2P_SDK_Return::logf('Error [' . $error_arr['error_no'] . ']: ' . $error_arr['display_error']); } else { S2P_SDK\S2P_SDK_Return::logf('Error initiating return object.'); } exit; } if (!($return_parameters = $return_obj->get_parameters())) { S2P_SDK\S2P_SDK_Return::logf('Couldn\'t extract return parameters.'); exit; } if (empty($return_parameters['MerchantTransactionID'])) { S2P_SDK\S2P_SDK_Return::logf('Unknown transaction'); exit; } S2P_SDK\S2P_SDK_Return::logf('Transaction [' . $return_parameters['MerchantTransactionID'] . ']: ');
// // !!!!! THIS IS THE SCRIPT WHICH HANDLES ALL SERVER COMMUNICATION. THIS COMMUNICATION HAPPENS IN BACKGROUND, SO THIS SCRIPT WILL NOT NEED A FRONT-END INTERFACE. // !!!!! THIS SCRIPT WILL ONLY HAVE TO ECHO MESSAGES AS DESCRIBED IN MANUAL FOR EACH NOTIFICATION TYPE RECEIVED. // // include_once S2P_SDK_DIR_CLASSES . 's2p_sdk_notification.inc.php'; include_once S2P_SDK_DIR_CLASSES . 's2p_sdk_helper.inc.php'; include_once S2P_SDK_DIR_METHODS . 's2p_sdk_meth_payments.inc.php'; define('S2P_SDK_NOTIFICATION_IDENTIFIER', microtime(true)); S2P_SDK\S2P_SDK_Notification::logging_enabled(true); S2P_SDK\S2P_SDK_Notification::logf('--- Notification START --------------------', false); $notification_params = array(); $notification_params['auto_extract_parameters'] = true; /** @var S2P_SDK\S2P_SDK_Notification $notification_obj */ if (!($notification_obj = S2P_SDK\S2P_SDK_Module::get_instance('S2P_SDK_Notification', $notification_params)) or $notification_obj->has_error()) { if (S2P_SDK\S2P_SDK_Module::st_has_error() and $error_arr = S2P_SDK\S2P_SDK_Module::st_get_error() or !empty($notification_obj) and $notification_obj->has_error() and $error_arr = $notification_obj->get_error()) { $error_msg = 'Error [' . $error_arr['error_no'] . ']: ' . $error_arr['display_error']; } else { $error_msg = 'Error initiating notification object.'; } S2P_SDK\S2P_SDK_Notification::logf($error_msg); exit; } if (!$notification_obj->check_authentication()) { if ($notification_obj->has_error() and $error_arr = $notification_obj->get_error()) { S2P_SDK\S2P_SDK_Notification::logf('Error: ' . $error_arr['display_error']); } else { S2P_SDK\S2P_SDK_Notification::logf('Authentication failed.'); } exit; }