waPayment переопределенный метод payment как-будто не отрабатывает Есть решение

Пытаюсь переопределить вид после нажатия клиентом оформить заказ, так как мне надо выбрать тип оплаты от моей платежной системы на другой странице, но такое ощущение что метод payment даже не вызывается, который я переопределил в классе оплаты своем (от waPayment).
Метод logger в папке записывает логи, а с этого метода не записывает. Так я понимаю, что он не отрабатывает.

template.html

<form id="payment-form" action="{$form_url}" method="post" target="_top">
    <div id="payform_payment_type" aria-required="true">
        {foreach from=$payment_types key=id item=$type_name}
        <input type="checkbox" name="{$id}" value="{$type_name}"/>
        {/foreach}
    </div>
    <input type="submit" value="Оплатить заказ"/>
</form>

pufpayPayment.class.php

public function payment($payment_form_data, $order_data, $auto_submit = false) {            self::logger("Payment");   
    $res = $this->sendRequest("GET", "payment-service/view/$this->payment_service_id");             

    $paymentTypes = [];    
    if($res["_statusCode"] == 200) {        
        $paymentTypes = array_column($res["data"]["payment_types"], "type_name", "type_id"); 
    }    
    $view = wa()->getView();     
    $view->assign("payment_types", $paymentTypes);     
    return $view->fetch("/templates/payment.html");
}

Что делаю не так?

1 ответ

  • 2
    Eugen Nichikov 27 июня 2020 14:23 # Решение

    Метод payment(..) вызывается, когда выбран этот способ оплаты, заказ находится в статусе, на котором доступна оплата, а клиент - на странице, где должна быть кнопка (либо checkout.suceess.html, либо my.order.html).

    Также сам плагин должен быть включён в настройках магазина в этот момент.

    Попробуйте для начала оставить только logger в этом методе. Как минимум, ошибка в вызове 

        return $view->fetch("/templates/payment.html"); 

    Файл по заданному пути вряд ли существует, т.к. путь от корня сервера.

    • +1
      Макс Макс 29 июня 2020 06:17 #

      Метод при выборе оплаты выдавать доп поля долежн или после нажатия подтвердить заказ ? pic1


      Убрал все кроме логгера, все равно не отрабатывает.
      pic2


      • +2
        Eugen Nichikov Eugen Nichikov 29 июня 2020 10:49 #

        Метод отрабатывает вот тут https://yadi.sk/i/cJDfqeNVXtCHVA но не отрабатывает потому, что там написано почему.

        Нужно в allowedCurrency() добавить доступные валюты.

        • +1
          Макс Макс 29 июня 2020 16:30 #

          действительно, прошу прощения за невнимательность. Спасибо.

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите