Видимо изменились параметры формирования подписи. Для ACT = 4 подпись сейчас формируется так:
MD5(ACT+”_”+ PAY_ACCOUNT+”_”+SERVICE_ID+”_”+PAY_ID+”_”+ PAY_AMOUNT + ”_” + пароль)
они ничего не поменяли? можешь спросить в их техподдежке (при условии, что у тебя раньше работало и дело не в неправильном пароле)
P.S. Кстати, вижу доку, где в подписи не участвует сумма платежа (PAY_AMOUNT) - лол, толку тогда от подписи, если можно подставить любую сумму. В общем, попробуй закомментировать (вначале поставить #) строку:
push @for_sign, $F{PAY_AMOUNT} if $act eq '4';