modx minishop2 вызов оплаты

случилась такая проблема, необходимо сделать оплату уже сформированного заказа. Есть форма в которой пользователь вбивает номер заказа и ему отображается статус, и если статус "новый", то сделать выбор оплаты и кнопку оплатить. Подскажите пожалуйста, в какую сторону копать, всё что смог сделать это получить всю информацию заказа по номеру.


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

Автор решения: Kepaso

Если кому понадобится у меня все получилось вот таким вот образом, пришлось убрать редирект потому что надо открывать страницу оплаты при нажатии на кнопку «Оплатить», т.е. я отправляю массив, и уже при помощи js подставляю ссылку на кнопку. Надеюсь кому поможет, только исключения под свои нужды.

<?php
if ($modx->event->name == 'OnLoadWebDocument')
if (isset($_POST['order_status_check']))
  if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
     $status = $modx->lexicon('popup_status_order_message_error');

     if (preg_match('/[\d]*\/[\d]*/', $_POST['order_status_check'])) {


        $order = $modx->getObject('msOrder', array('num' => $_POST['order_status_check']));
        if ($payment = $modx->getObject(
           'msPayment',
           array('id' => $order->get('payment'), 'active' => 1)
        )) {
           $response = $payment->send($order);
           if ($this->config['json_response']) {
              @session_write_close();
              exit(is_array($response) ? json_encode($response) : $response);
           } else {
              if (!empty($response['data']['redirect'])) {
                 //тут отправляю массив в котором ссылка на оплату
                 print_r($response);
                 exit;
              } elseif (!empty($response['data']['msorder'])) {
              } else {
                 // $modx->sendRedirect($modx->context->makeUrl($modx->resource->id));
              }

              return $this->success();
           }
        }
     }

     exit;
  }
→ Ссылка