[Помогите] Модуль Яндекс деньги и Opencart

Тема в разделе "OpenCart", создана пользователем alxxla, 20 окт 2014.

  1. alxxla

    alxxla

    Регистрация:
    22 мар 2013
    Сообщения:
    121
    Симпатии:
    4
    Всем доброго дня
    Может кто сталкивался, подскажите пожалуйста...
    Установил модуль Яндекс денег на Opencart 1.5.5.1.2 + использую Simple 4.2.5
    Все настроено и работает.
    НО: после оплаты товара в админке нет никакой информации о заказе. Независимо от того зарегистрированный пользователь оплачивал заказ или оплата происходила без регистрации.
    Отследить только можно по яндекс кошельку сумму оплаты и все. Кошелек физ лица.

    Вопрос:
    как сделать, чтоб заказ оплаченный через яндекс деньги был виден в админке???
    Статус заказа после оплаты: в модуле Яндекс денег - ожидание

    P.S. Где и какая прописывается ссылка для приема HTTP уведомлений?
    Если можно объясните доходчиво ))
     
    Последнее редактирование: 20 окт 2014
  2. Strannik69

    Strannik69

    Регистрация:
    6 окт 2013
    Сообщения:
    180
    Симпатии:
    488
    Я сталкивался, месяц бодания с Яндексом , в результате купили платный модуль ( настройки всех страниц со своим текстом) и все , никаких проблем, а тот модуль что они рекомендуют мало того что "излишне лаконичен" так и не смогли запустить для приема карточек ( яденьги без проблем работали)
     
  3. alxxla

    alxxla

    Регистрация:
    22 мар 2013
    Сообщения:
    121
    Симпатии:
    4
    работать то и этот работает, но криво как то...
    а что за модуль такой? здесь на форуме поискал - не нашел, хотя возможно они под хайдом запрятаны...
    может кто поделится рабочим вариантом, чтоб оплата проходила через яденьги и в админке заказ висел
     
  4. Strannik69

    Strannik69

    Регистрация:
    6 окт 2013
    Сообщения:
    180
    Симпатии:
    488
    На яндексовском модуле тесты карт даже не прошли , но это у меня , а так туточки тоже есть модуль Яндекс деньги, Visa, MasterCard, Maestro пробуйте, а вообще у этого автора несколько модулей под разные нужды, почитайте на его страничке
     
    alxxla нравится это.
  5. alxxla

    alxxla

    Регистрация:
    22 мар 2013
    Сообщения:
    121
    Симпатии:
    4
    модуль рабочий, в я.деньги нашел небольшой недочет у него... после формирования заказа на почту отправляется письмо с заказом + ссылка на оплату вида:
    ваш.домен/index.php?route=payment/yandexsimple/mail_payder_id=номер заказа,
    ссылка не открывается, так как формируется неверно - вот рабочая:
    ваш.домен/index.php?route=payment/yandexsimple/mail_pay&order_id=номер заказа - жирным выделил отличие от первой.
    вопрос - в каком файле модуля ее можно подправить, чтоб в почтовый ящик клиента попадала рабочая ссылка для оплаты (второй вид)?

    + то же самое в Я.Деньги - Visa, Mastercard, Maestro (простая оплата)
     
    Последнее редактирование: 21 окт 2014
  6. alxxla

    alxxla

    Регистрация:
    22 мар 2013
    Сообщения:
    121
    Симпатии:
    4
    в коде сильно не разбираюсь, но по ходу ссылка, которая отправляется на почтовый ящик в этом модуле формируется здесь \catalog\controller\payment - код ниже
    подскажите, что там не так... искал по "mail_pay"
    Код:
    <?php
    class ControllerPaymentYandexsimple extends Controller {
        protected function index() {
              $this->language->load('payment/yandexsimple');
            $this->data['button_confirm'] = $this->language->get('button_confirm');
            $this->data['text_instruction'] = $this->language->get('text_instruction');
            $this->data['yandexsimplei'] = $this->language->get('yandexsimple_instruction');
    
            $this->data['continue'] = $this->url->link('payment/yandexsimple/success');
    
            if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/payment/yandexsimple.tpl')) {
                $this->template = $this->config->get('config_template') . '/template/payment/yandexsimple.tpl';
            } else {
                $this->template = 'default/template/payment/yandexsimple.tpl';
            }
           
            $this->render();
        }
       
        public function confirm() {
              $this->language->load('payment/yandexsimple');
            $this->load->model('checkout/order');
    
            $order_info = $this->model_checkout_order->getOrder($this->session->data['order_id']);
    
            $action= HTTPS_SERVER . 'index.php?route=payment/yandexsimple/mail_pay';
            $pay = $action .
    
                    '&order_id='    . $order_info['order_id'];
    
            $comment  = $this->language->get('text_instruction') . "\n\n";
            $comment .= $this->language->get('yandexsimple_instruction_mail') . "\n\n";
            $comment .= $pay . "\n\n";
            $comment = htmlspecialchars_decode($comment);
            $this->model_checkout_order->confirm($this->session->data['order_id'], $this->config->get('yandexsimple_order_status_id'), $comment, true);
        }
    
        public function success() {
            if ( isset($this->session->data['order_id']) && ( ! empty($this->session->data['order_id']))  ) {
                $this->session->data['last_order_id'] = $this->session->data['order_id'];
            }
    
            $this->load->model('checkout/order');
            if (isset($this->session->data['order_id'])) {
                $order_info = $this->model_checkout_order->getOrder($this->session->data['order_id']);
            }
            else{
                if (isset($this->session->data['last_order_id'])){
                    $order_info = $this->model_checkout_order->getOrder($this->session->data['last_order_id']);
                }
                else{
                    echo "No data";
                    exit();
                }
            }
    
            $action= 'index.php?route=payment/yandexsimple/pay';
    
           
            $this->data['pay'] = $action .
                    '&total='        . $this->currency->format($order_info['total'], $order_info['currency_code'], $order_info['currency_value'], false) .
                    '&order_id='    . $order_info['order_id'];
    
            if (isset($this->session->data['order_id'])) {
                $this->cart->clear();
               
                unset($this->session->data['shipping_method']);
                unset($this->session->data['shipping_methods']);
                unset($this->session->data['payment_method']);
                unset($this->session->data['payment_methods']);
                unset($this->session->data['guest']);
                unset($this->session->data['comment']);
                unset($this->session->data['order_id']);   
                unset($this->session->data['coupon']);
                unset($this->session->data['reward']);
                unset($this->session->data['voucher']);
                unset($this->session->data['vouchers']);
            }   
                                          
            $this->language->load('payment/yandexsimple');
           
            if (! empty($this->session->data['last_order_id']) ) {
                $this->document->setTitle(sprintf($this->language->get('heading_title_customer'), $this->session->data['last_order_id']));
            } else {
                $this->document->setTitle($this->language->get('heading_title'));
            }
           
            $this->data['breadcrumbs'] = array();
    
              $this->data['breadcrumbs'][] = array(
                'href'      => $this->url->link('common/home'),
                'text'      => $this->language->get('text_home'),
                'separator' => false
              );
           
              $this->data['breadcrumbs'][] = array(
                'href'      => $this->url->link('checkout/cart'),
                'text'      => $this->language->get('text_basket'),
                'separator' => $this->language->get('text_separator')
              );
                   
            $this->data['breadcrumbs'][] = array(
                'href'      => $this->url->link('checkout/checkout', '', 'SSL'),
                'text'      => $this->language->get('text_checkout'),
                'separator' => $this->language->get('text_separator')
            );   
                       
              $this->data['breadcrumbs'][] = array(
                'href'      => $this->url->link('checkout/success'),
                'text'      => $this->language->get('text_success'),
                'separator' => $this->language->get('text_separator')
              );
    
            if (! empty($this->session->data['last_order_id']) ) {
                $this->data['heading_title'] = sprintf($this->language->get('heading_title_customer'), $this->session->data['last_order_id']);
            } else {
                $this->data['heading_title'] = $this->language->get('heading_title');
            }
           
            if ($this->customer->isLogged()) {
                $this->data['text_message'] = sprintf($this->language->get('text_customer'), $this->url->link('account/order/info&order_id=' . $this->session->data['last_order_id'], '', 'SSL'), $this->url->link('account/order', '', 'SSL'), $this->url->link('information/contact'));
            } else {
                $this->data['text_message'] = sprintf($this->language->get('text_guest'), $this->url->link('information/contact'));
            }
           
            $this->data['button_pay'] = $this->language->get('button_pay');
            $this->data['continue'] = $this->url->link('common/home');
    
            if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/payment/yandexsimple_success.tpl')) {
                $this->template = $this->config->get('config_template') . '/template/payment/yandexsimple_success.tpl';
            } else {
                $this->template = 'default/template/payment/yandexsimple_success.tpl';
            }
           
            $this->children = array(
                'common/column_left',
                'common/column_right',
                'common/content_top',
                'common/content_bottom',
                'common/footer',
                'common/header'           
            );
                   
            $this->response->setOutput($this->render());
          }
    
          public function pay() {
    
              if(!isset($this->request->post['nesyandexa'])){
                  $this->redirect($this->url->link('common/home'));
              }
            $this->data['receiver'] = $this->config->get('yandexsimple_schet');
              if ($this->config->get('yandexsimple_komis')){$proc=$this->config->get('yandexsimple_komis');}
             
              if (is_numeric($this->request->get['total'])){
                  if (isset($proc)){$this->data['total'] = ($this->request->get['total']*$proc/100)+$this->request->get['total'];}
                  else{$this->data['total'] = $this->request->get['total'];}
              }
              else{
                  echo 'error: no total sum';
                  exit();
              }
    
              if (is_numeric($this->request->get['order_id'])){
                  $this->data['order_id'] = $this->request->get['order_id'];
              }
              else{
                  echo 'error: no order id';
                  exit();
              }
    
    
    
              if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/payment/yandexsimple_pay.tpl')) {
                $this->template = $this->config->get('config_template') . '/template/payment/yandexsimple_pay.tpl';
            } else {
                $this->template = 'default/template/payment/yandexsimple_pay.tpl';
            }
            $this->response->setOutput($this->render());
          }
    
          public function mail_pay() {
              if (isset($this->request->get['order_id']) && is_numeric($this->request->get['order_id'])){
                $this->load->model('checkout/order');
                $order_info = $this->model_checkout_order->getOrder($this->request->get['order_id']);
    
                $action= 'index.php?route=payment/yandexsimple/pay';
    
               
                $this->data['pay'] = $action .
    
                        '&total='        . $this->currency->format($order_info['total'], $order_info['currency_code'], $order_info['currency_value'], false) .
                        '&order_id='    . $order_info['order_id'];
                                              
                $this->language->load('payment/yandexsimple');
               
                $this->document->setTitle(sprintf($this->language->get('heading_title_customer_mail'), $this->request->get['order_id']));
               
               
                $this->data['breadcrumbs'] = array();
    
                  $this->data['breadcrumbs'][] = array(
                    'href'      => $this->url->link('common/home'),
                    'text'      => $this->language->get('text_home'),
                    'separator' => false
                  );
               
                  $this->data['breadcrumbs'][] = array(
                    'href'      => $this->url->link('checkout/cart'),
                    'text'      => $this->language->get('text_basket'),
                    'separator' => $this->language->get('text_separator')
                  );
                       
                $this->data['breadcrumbs'][] = array(
                    'href'      => $this->url->link('checkout/checkout', '', 'SSL'),
                    'text'      => $this->language->get('text_checkout'),
                    'separator' => $this->language->get('text_separator')
                );   
                           
                  $this->data['breadcrumbs'][] = array(
                    'href'      => $this->url->link('checkout/success'),
                    'text'      => $this->language->get('text_success'),
                    'separator' => $this->language->get('text_separator')
                  );
    
                $this->data['heading_title'] = sprintf($this->language->get('heading_title_customer_mail'), $this->request->get['order_id']);
               
                if ($this->customer->isLogged()) {
                    $this->data['text_message'] = sprintf($this->language->get('text_customer_mail'), $this->url->link('account/order/info&order_id=' . $this->request->get['order_id'], '', 'SSL'), $this->url->link('account/order', '', 'SSL'), $this->url->link('information/contact'));
                } else {
                    $this->data['text_message'] = sprintf($this->language->get('text_guest_mail'), $this->url->link('information/contact'));
                }
               
                $this->data['button_pay'] = $this->language->get('button_pay');
                $this->data['continue'] = $this->url->link('common/home');
    
                if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/payment/yandexsimple_success.tpl')) {
                    $this->template = $this->config->get('config_template') . '/template/payment/yandexsimple_success.tpl';
                } else {
                    $this->template = 'default/template/payment/yandexsimple_success.tpl';
                }
               
                $this->children = array(
                    'common/column_left',
                    'common/column_right',
                    'common/content_top',
                    'common/content_bottom',
                    'common/footer',
                    'common/header'           
                );
                       
                $this->response->setOutput($this->render());
              }
              else{
                  echo "No data";
              }
          }
    }
    ?>
     
  7. Регина

    Регина

    Регистрация:
    25 окт 2013
    Сообщения:
    30
    Симпатии:
    0
    Та же проблема. Шаблон Sellya. Все делаю по инструкции, но даже тест не проходит.
     
  8. Сергей Ильин

    Сергей Ильин

    Регистрация:
    12 фев 2015
    Сообщения:
    1
    Симпатии:
    0
    Здравствуйте, подключаюсь к Яндекс деньгам, использую модуль "Простая регистрация и заказ Simple v 4.3.3"

    Opencart 1.5.5.1.2

    мне прислали техническую анкету, Никак не могу найти что в неё вбивать, модуль яндекс прислал я его накатил, SSL сертификат заказал, с хостером договорился - проблема в заполнении полей:

    checkURL:

    paymentAvisoURL:

    successURL:

    failURL:



    подскажите что писать, с учётом использования симпл.