Sage Pay — нижестоящие плагины помечены как критическая ошибка PHP 7.1 из-за использования mcrypt

Мы используем подключаемый модуль бронирования на нашем сайте Wordpress, который использует библиотеки Sage Pay для обработки платежей. Недавно нам посоветовали перейти на PHP версии 7.1, однако при проверке совместимости обнаружилась ошибка mcrypt:

> The following plugins/themes are not compatible with PHP 7.1. Booking
> Calendar See Errors
> --------------------------------------------------------------------------------- FILE: /home/ . . .
> /public_html/wp-content/plugins/booking.bl.7.1/inc/gateways/sage/wpbc-gw-sage.php
> --------------------------------------------------------------------------------- FOUND 0 ERRORS AND 4 WARNINGS AFFECTING 2 LINES
> --------------------------------------------------------------------------------- 1205 | WARNING | Function mcrypt_encrypt() is deprecated since PHP
> 7.1; use OpenSSL instead 1205 | WARNING | Extension 'mcrypt' is deprecated since PHP 7.1 - use openssl (preferred) or pecl/mcrypt once
> available instead. 1237 | WARNING | Function mcrypt_decrypt() is
> deprecated since PHP 7.1; use OpenSSL instead 1237 | WARNING |
> Extension 'mcrypt' is deprecated since PHP 7.1 - use openssl
> (preferred) or pecl/mcrypt once available instead.
> ---------------------------------------------------------------------------------

Как видите, в текущей версии плагина есть устаревшая функция. После обращения к кодировщикам плагинов по поводу проблемы мне сказали, что код нарушения является частью библиотек «Sage Pay» и что они, кодеры плагинов, должны дождаться, пока кодировщики основной ветки, то есть Sage Pay, исправят свои библиотеки, прежде чем делать модификации на их конце.

Я понимаю, что устаревшая функция была отмечена в другом месте на этом форуме, как здесь и здесь с основным отзывом о том, что mcrypt будет удален в PHP 7.2 и что пользователи этого кода должны перейти на openssl_encrypt. На самом деле предупреждение не мешает пользователям перейти на PHP 7.1, поскольку, если я правильно понимаю, устаревшая функция еще не удалена и, следовательно, все еще работает.

Так зачем я публикую этот пост. Что ж, поскольку ни одна из предыдущих тем не сообщала об этом как о потенциальной проблеме для пользователей Sage Pay и их последующих плагинов, я считаю, что уведомление поддержке Sage Pay должно быть сделано через этот форум.


person John Wells    schedule 06.08.2018    source источник
comment
Я могу подтвердить, что после перехода на PHP 7.1 на нашем веб-сайте виджет Business Large SingleSite 7.1, который использует функцию Sage Pay mcrypt на серверной части нашего сайта, не вызвал проблем, которые мы заметили. Так что пока этот вопрос не проблема.   -  person John Wells    schedule 18.08.2018
comment
mcrypt_decrypt() по-прежнему доступен в PHP 7.2, но предупреждений об устаревании обычно достаточно, чтобы вызвать исключение в большинстве современных фреймворков. Недавно я обновил драйвер Sage Pay Omnipay для поддержки Sage Pay Form с использованием open_ssl, и код для расшифровки может быть полезен (при условии, что вы не используете сам Omnipay): github.com/thephpleague/omnipay-sagepay/blob/master/src/Message/ Официальные SDK Sage Pay уже устарели и все еще используют устаревшие функции.   -  person Jason    schedule 14.10.2018