Оплата заполненной формы как товара minishop2
Всем привет!
Реализую что-то вроде сервиса онлайн-заполнения анкет.
Есть форма и логика, взятая отчасти из этой заметки.
Добавил в hooks хук makeOrder, который делает программно заказ minishop2
Оплата будет через Робокассу или Яндекс.Кассу.
Думаю, что достаточно будет сохранить ссылку на документ в сессию, достать ссылку на оплату аггрегатором и сделать редирект на данную страницу оплаты, чтобы пользователь оплатил заказ. После успешной оплаты, чел попадает на страницу Спасибо, где я буду доставать из сессии ссылку на документ и отправлю клиенту письмо с этой ссылкой (или сделать это через встроенный минишоп-плагин, пока не понимаю, если честно).
Подскажите, пожалуйста, верно ли двигаюсь и если да, то как достать ссылку на оплату? $payment_link, который в письме приходит
Реализую что-то вроде сервиса онлайн-заполнения анкет.
Есть форма и логика, взятая отчасти из этой заметки.
Добавил в hooks хук makeOrder, который делает программно заказ minishop2
&hooks=`pdf,makeOrder,email`
Код makeOrder:<?php
$pdf_link = $hook->getValue('pdf_link');
// инициализируем miniShop2
$scriptProperties = array(
'json_response' => true,
'max_count' => 1000,
'allow_deleted' => false,
'allow_unpublished' => false
);
$miniShop2 = $modx->getService('minishop2','miniShop2', MODX_CORE_PATH . 'components/minishop2/model/minishop2/', $scriptProperties);
// опции товара, если они необходимы
$option = array();
/*$option = array(
"option1" => "value1",
"option2" => "value2",
);*/
// инициализируем miniShop2 в текущем контексте
$miniShop2->initialize($modx->context->key, $scriptProperties);
// чистим корзину
$miniShop2->cart->clean();
// добавляем товар в корзину
$arr = json_decode($miniShop2->cart->add($_REQUEST["id"],1,$option), true);
// логируем каждый шаг
$modx->log(E_ERROR, print_r($arr,1));
// формируем заказ
$miniShop2->order->add('receiver', 'Иван Иванов');
$miniShop2->order->add('email', 'ilyagureshidze90@mail.ru');
$miniShop2->order->add('phone', '89616999999');
$miniShop2->order->add('comment', $pdf_link);
$miniShop2->order->add('payment', 3); // Робокасса по умолчанию
$miniShop2->order->add( 'delivery', 1);
$orderfeed = $miniShop2->order->submit();
$arr = json_decode($orderfeed,true);
// логируем каждый шаг
$modx->log(E_ERROR, print_r($arr,1));
if($arr['success']==true&&$arr["data"]["msorder"]){
$url = $modx->makeUrl(21);
//$output["location"] = $url.'?msorder='.$arr["data"]["msorder"];
$modx->sendRedirect($url.'?msorder='.$arr["data"]["msorder"]);
}
return true;
Заказ формируется и приходит уведомление о новом заказе со ссылкой, на сгенеренный файл, который является результатом заполнения формы и собственно тем, что я и хочу продавать. Помимо этого там есть стандартная строка о том, что «Если вы прервали процесс оплаты перейдите по ссылке ссылка_на_платежный_сервис»Оплата будет через Робокассу или Яндекс.Кассу.
Думаю, что достаточно будет сохранить ссылку на документ в сессию, достать ссылку на оплату аггрегатором и сделать редирект на данную страницу оплаты, чтобы пользователь оплатил заказ. После успешной оплаты, чел попадает на страницу Спасибо, где я буду доставать из сессии ссылку на документ и отправлю клиенту письмо с этой ссылкой (или сделать это через встроенный минишоп-плагин, пока не понимаю, если честно).
Подскажите, пожалуйста, верно ли двигаюсь и если да, то как достать ссылку на оплату? $payment_link, который в письме приходит