Как запустить оплату

Приветствую, комрады, мне нужно запускать процесс оплаты заказа minishop2 на произвольной странице сайта. Я изучил код метода submit класса msOrder и нашёл такие строчки
$estimate = $this->modx->runSnippet('getUserOrders', array('user_id' => $user_id, 'status' => 7));
            if($data['status'] && !$estimate){
                $status = $data['status'];
            }else{
                $status = 1;
            }
            //всё что выше написал я
            
            $response = $this->ms2->changeOrderStatus($order->get('id'), $status);
            if ($response !== true) {
                return $this->error($response, array('msorder' => $order->get('id')));
            } /** @var msPayment $payment */    
            //здесь мы получаем метод оплаты
            elseif ($payment = $this->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'])) {
                        $this->modx->sendRedirect($response['data']['redirect']);
                    } elseif (!empty($response['data']['msorder'])) {
                        $this->modx->sendRedirect(
                            $this->modx->context->makeUrl(
                                $this->modx->resource->id,
                                array('msorder' => $response['data']['msorder'])
                            )
                        );
                    } else {
                        $this->modx->sendRedirect($this->modx->context->makeUrl($this->modx->resource->id));
                    }

                    return $this->success();
                }
            } else {
                if ($this->ms2->config['json_response']) {
                    return $this->success('', array('msorder' => $order->get('id')));
                } else {
                    $this->modx->sendRedirect(
                        $this->modx->context->makeUrl(
                            $this->modx->resource->id,
                            array('msorder' => $response['data']['msorder'])
                        )
                    );
                    
                    return $this->success();
                }
            }
Ну и ещё вопрос, получится ли в метод send передавать $order предварительно сделав так $order->set('total_cost', 2345345) возможно параметр называется иначе, но суть в том, чтобы изменить общую стоимость, но не сохраняя $order->save() так. Т.е. чтобы на оплату уходила другая сумма, а заказ в БД хранился с полной стоимостью?
Артур
22 мая 2020, 11:25
modx.pro
81
0

Комментарии: 0

Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
0