- Fixed authentication bypass in the notification handler: added data type validation, signature verification via hash_equals, amount and AccountNo comparison, and protection against duplicate payments.
- Fixed ReturnUrl/FailUrl construction: uses a trusted host from site settings instead of HTTP_HOST, with logging of host substitution.
- Fixed default notification URL construction: host is taken from server_name, with warnings to administrators about host mismatch and empty secret key when signature verification is enabled.
- Improved signature verification cryptography: signature calculation is skipped if the secret is empty, trim() on the secret key is removed, and hash_equals is used to protect against timing attacks.
- Fixed XSS vulnerabilities in checkout.php and error.php templates, and corrected params array keys.
- In case of API errors, the buyer sees a generic message while details are logged.
- Added language strings for new errors and warnings.
- Language files converted to UTF-8 encoding.