PayTRden gelen hash değeri ile sendeki hash değerinin aynı olduğunu kontrol ettirmen lazım sanırım ondan dolayı hata alıyorsun
$post = $_POST;
####################### DÜZENLEMESİ ZORUNLU ALANLAR #######################
#
## API Entegrasyon Bilgileri - Mağaza paneline giriş yaparak BİLGİ sayfasından alabilirsiniz.
$merchant_key = 'YYYYYYYYYYYYYY';
$merchant_salt = 'ZZZZZZZZZZZZZZ';
###########################################################################
####### Bu kısımda herhangi bir değişiklik yapmanıza gerek yoktur. #######
#
## POST değerleri ile hash oluştur.
$hash = base64_encode( hash_hmac('sha256', $post['merchant_id'].$post['trans_id'].$merchant_salt, $merchant_key, true) );
#
## Oluşturulan hash'i, PayTR'dan gelen post içindeki hash ile karşılaştır (isteğin PayTR'dan geldiğine ve değişmediğine emin olmak için)
## Bu işlemi güvenlik nedeniyle mutlaka yapmanız gerekiyor.
if( $hash != $post['hash'] )
die('PAYTR notification failed: bad hash');
###########################################################################
## trans_id bilgisi transfer talebi yaparken PayTR'a gönderdiğiniz her işlem için eşsiz değerdir.
$processed_result = json_decode($post['processed_result'],1);
foreach($processed_result as $trans)
{
// Burada her işlem için gerekli veri tabanı vb. işlemleri yapabilirsiniz.
}
## Bildirimin alındığını PayTR sistemine bildir.
echo "OK";