Way For Pay не проводит оплату через WP-Recall (Wordpress)

Есть дополнение для оплаты с помощью системы Way For Pay через плагин WP-Recall для Wordpress.

Дополнение включается. Можно с помощью него оплатить. Деньги снимаются и поступают на счет. Однако сама оплата не видна в системе wordpress. Я думаю, что это из-за методов result и success в самом дополнении.

Подскажите, кто сталкивался: как реализовать это правильно? Уже много всего перепробовал - немогу понять как попасть в метод result и как эмулировать его, чтобы проверить что там происходит и где ошибка.

<?
add_action( 'rcl_payments_gateway_init', 'rcl_add_wayforpay_gateway' );
function rcl_add_wayforpay_gateway() {
        //указываем идентификатор платежной системы и 
        //наименование созданного класса с логикой обработки платежа
    rcl_gateway_register( 'wayforpay', 'Rcl_Wayforpay_Payment' );
}
class Rcl_Wayforpay_Payment extends Rcl_Gateway_Core {
    function __construct() {

        //регистрационные данные подключения
        parent::__construct( array(
            'request'    => 'wayforpay-request', //get- или post-параметр, по которому будем отлавливать запрос от платежной системы
            'name'       => 'Way For Pay', //наименование платежной системы
            'submit'     => __( 'Way For Pay' ), //надпись на окончательной кнопке оплаты
            'icon'       => rcl_addon_url( 'assets/way-for-pay.jpg', __FILE__ ) //url до иконки платежной системы в папке дополнения
        ) );
    }

    //указание опций подключения
    function get_options() {

        return array(
            array(
                'type'   => 'text',
                'slug'   => 'wfp_account',
                'title'  => __( 'Merchant login (Например U123456)' )
            ),
            array(
                'type'   => 'text',
                'slug'   => 'wfp_site_name',
                'title'  => __( 'Адрес сайта' )
            ),
            array(
                'type'   => 'text',
                'slug'   => 'wfp_phrase',
                'title'  => __( 'Merchant secret key' )
            )
        );
    }

    //создание платежной формы
    function get_form( $data ) {
        $wfp_account = rcl_get_commerce_option('wfp_account');
        $wfp_site_name = rcl_get_commerce_option('wfp_site_name');
        $wfp_phrase = rcl_get_commerce_option('wfp_phrase');
        
        $currency = rcl_get_commerce_option['primary_cur'];
        $timestamp = current_time('timestamp');
        
        if(empty($data->currency))
        {
            $data->currency = 'USD';
        }
        $data->currency = 'UAH';
        
        $wfp_account = 'test_merch_n1';
        $wfp_phrase = 'flk3409refn54t54t*FNJRET';

        $string = $wfp_account.';'.$wfp_site_name.';'.$data->pay_id.';'.$timestamp.';'.$data->pay_summ.';'.$data->currency.';'.$data->description.';'.'1'.';'.$data->pay_summ;
        $hash = hash_hmac("md5",$string,$wfp_phrase);
        
//         $data->pay_type
// $data->baggage_data
        $fields = array(
            'merchantAccount' => $wfp_account,
            'merchantDomainName' => $wfp_site_name,
            'merchantTransactionSecureType' => 'AUTO',
            'merchantSignature' => $hash,
            'orderReference' => $data->pay_id,
            'orderDate' => $timestamp,
            'amount' => $data->pay_summ,
            'currency' => $data->currency,
            'productName' => $data->description,
            'productPrice' => $data->pay_summ,
            'productCount' => 1,
            
            'clientAccountId' => $data->user_id,
            
            'defaultPaymentSystem' => 'card',
            
            'info'           => base64_encode( json_encode( array(
                'baggage_data'   => $data->baggage_data,
                'pay_type'       => $data->pay_type
            ) ) ),
            
            'returnUrl' => get_permalink( $data->page_success ),
            'serviceUrl' => get_permalink( $data->page_result )
        );
        
        return parent::construct_form( [
                'action' => 'https://secure.wayforpay.com/pay',
                'fields' => $fields
            ] );
    }

    //обработка платежа
    function result( $data ) {
mail('[email protected]', 'result', $_REQUEST);
        //принимаем данные переданные платежной системой
        $pay_id          = $_REQUEST['order_id'];
        $user_id         = $_REQUEST['customer'];
        $pay_summ        = $_REQUEST['amount'];
        $pay_type        = $_REQUEST['custom_field_pay_type'];
        $baggage_data    = $_REQUEST['custom_field_baggage_data'];

        //проверяем наличие платежа по идентификатору
        if ( ! parent::get_payment( $pay_id ) ) {
            //создаем новый платеж, передав массив с обязательными параметрами
            parent::insert_payment( array(
                'pay_id'         => $pay_id,
                'pay_summ'       => $pay_summ,
                'user_id'        => $user_id,
                'pay_type'       => $pay_type,
                'baggage_data'   => $baggage_data
            ) );
        }

        //завершаем выполнение скрипта в любом случае
        echo "OK";
        exit();
    }

    //проверка платежа и перенаправление
    //на страницы fail или successfull
    function success( $data ) {
        //принимаем от платежной системы идентификатор платежа
        die();
        $pay_id = $_REQUEST['order_id'];

        //проверяем наличие платежа
        if ( parent::get_payment( $pay_id ) ) {
            wp_redirect( get_permalink( $data->page_successfully ) );
            exit;
        } else {
            wp_die( 'Платеж не найден в базе данных!' );
        }
    }

}
?>

Ответы (0 шт):