Симптомы
Не выполняются платежи через систему ASSIST после включения асинхронных нотификаций: http://download.pa.parallels.com/pba/5.5/doc/60654.htm.
Статус платежей - "Declined by Gate", в ASSIST.log:
[13-11-20 11:29:50.447 Worker1.33 RQ171241 WRN] Signatures does not match: current F185D36AEB4F29CCB6D885D5FF29563F, expected 36425CFCD11325FE55E5F7FEAF534733
Причина
Сигнатуры платежа в PBA и ASSIST не совпадают.
Решение
Сигнатура (в терминах ASSIST это checkvalue, контрольный код сообщения) создается следующим образом:
uppercase(md5(uppercase(md5(SALT) + md5(Х))))
- SALT – секретное слово,
- Х – результат строковой склейки параметров merchant_id, ordernumber, orderamount, ordercurrency, orderstate (без разделителей)
+
- строковая склейка
Способ создания идентичен в обеих системах, поскольку коннект к ASSIST проходит успешно, то наиболее вероятно расхождение в сигнатурах вызвано разными паролями (секретными словами) в ASSIST и PBA.
Убедитесь, что Shared Secret в PBA и ASSIST совпадают (идентичны, не содержат ненужных пробелов), при необходимости синхронизируйте их изменением в одной из систем.