Олег Захаров

Олег Захаров

С нами с 14 октября 2017; Место в рейтинге пользователей: #64
04 февраля 2018, 02:53
1
0
Привет!
На сайте хотим сделать 3 варианта оплаты — за 1 урок, за конкретный месяц (в нем несколько уроков) и за годовой доступ ко всем урокам. 9 учебных месяцев в курсе. Как лучше логику отстроить.
Пока сообразил проверку через вложенные
{If} {else} {/if}
.
Подскажите как вывести форму оплаты за годовой доступ?
Пока сообразил так:
...
{set $parrentmounth = $_modx->resource.parent}
{set $parrentmounthObject = $modx->getObject('modResource',$parrentmounth)}
{set $parrentyear = $parrentmounthObject ->get('parent')}
{set $accessyear = ''|pasraccess:0:$parrentyear}
{if !$accessyear}
	Вы можете оплатить курс за год по цене 
	<p class="bg-danger"> Оплатить доступ</p>
	{getContentId($parrentyear, 10, $cache)|pasraccess:('pas.content'|snippet:['resource'=>$parrentyear])}
{else}
	Год оплачен {$parrentyear}
{/if}
{set $accessmounth = $parrentmounth|pasraccess:0:$parrentmounth}
{if !$accessmounth}
	<pre class="alert alert-info">  
	Нет оплаты к курсу [[!pdoField? &id=`[[*id]]` &field=`pagetitle` &top=`2`]] 
	</pre>
	<!--  как вывести форму оплаты за месяц? -->
	{getContentId($parrentmounth, 10, $cache)|pasraccess:('pas.content'|snippet:['resource'=>$parrentmounth])}
{else}
	<!-- для тестирования вывожу номера ресурсов -->
	У вас активная подписка ко всем урокам месяца ({$parrentmounth}) "[[!pdoField? &id=`[[*id]]` 		&field=`pagetitle` &top=`1` ]]" курса ({$parrentyear}) [[!pdoField? &id=`[[*id]]` &field=`pagetitle` &top=`2` ]]
{/if}
<!--смотрим доступ к уроку -->
{set $access = $_modx->resource.id|pasraccess:0}
<!--Если вообще никакого доступа нет то выводим форму оплаты за урок-->
{if !$access and !$accessmounth and !$accessyear}
	<p class="bg-danger"> Оплатить доступ</p>
	{$_modx->resource.content|pasraccess:('pas.content'|snippet:['resource'=>''])}
{else}
	<div id="lessonvideo" data-video-1080="тут полезный платный контент"></div>
{/if}
то есть вывод формы оплаты сделал так:
{getContentId($parrentyear, 10, $cache)|pasraccess:('pas.content'|snippet:['resource'=>$parrentyear])}
что значит параметр 10 сам не понял, взял из документации расширения, вроде сработало. Где лежит код функции getContentId?
Прикол в том что в 1 уроке все норм работает, а в следующих (входящем в месяц 1) не работает.
Контент и тарифы зада на годовой курс (он корневой ресурс), на месяцы (они включают в себя уроки) и на сами уроки.
24 января 2018, 14:23
0
В OrangeData в личном кабинете я не нашел никаких смен. Возможно у них такое понятие не используется. Что за смены, что за глупость :)
24 января 2018, 13:21
1
0
ТП говорит что у них и так стоит HTTP хотя в личном кабинете вижу CMS!
ТП Яндекса нашли у себя ошибку — обещали исправить и переподключить.
Сегодня позвонил в очередной раз — специалист Яндекс.Кассы попался толковый — сразу на лету что-то там на стороне Яндекс.Кассы подшаманил и тестовый платеж прошел. Но не отработала фискализация — у меня в личном кабинете у них подключена онлайн-касса OrangeData — пришло сообщение что чек не удалось отправить, в личном кабинете платеж со значком что не фискализирован. Задал вопрос в техподдержку Яндекс.Кассы, пока жду ответа.
В письме:
Платёж прошёл успешно, но мы не смогли отправить данные для чека вашей онлайн-кассе.
Номер транзакции: 2000....57
shopId: shopId хххххх
Идентификатор запроса к онлайн-кассе: 2000...57_5....7
...
Где может быть ошибка:
- Вы передаёте данные для чека в неправильном формате.
  Проверьте по инструкции:
https://github.com/yandex-money/yandex-money-joinup/blob/master/demo/54-fz.md
- Онлайн-касса не подключена к интернету или не включена в розетку.
  Если касса стоит у вас, проверьте, что с ней всё в порядке.
  Если вы арендуете кассу, проверьте её статус в личном кабинете своего сервиса.
Проверил статус кассы в личном кабинете — все норм. Соответственно подозрение на формат передаваемых данных. Можете проверить инструкцию по формату и подсказать — что передает ваш модуль в ym_merchant_receipt? Как посмотреть?
Возможно есть трабла на стороне Яндекс.Кассы — возможно там чтото теряется. Не знаю как проверить и что написать ТП Яндекс.Кассы.
Есть еще документация API OrangeData https://github.com/orangedata-official/API и репозиторий интеграций PHP https://github.com/orangedata-official/PHP-OrangeData-official/
Можете посмотреть и сравнить с тем что требует OrangeData и что передает Ваш модуль в Яндекс.Кассу (возможно каких-то параметров не хватает)?
Думаю что решив эту проблему Вы сильно популизируете ваш модуль :). Готов помочь с тестированием через себя.
22 января 2018, 17:03
0
SSL переустановил. Все равно выходит ошибка. ТП Яндекс.Кассы отвечает что мол все CMS модули работают через HTTP — и в личном кабинете остается тип подключения CMS модуль «MODx». Может ли это быть причиной?
16 января 2018, 19:57
0
да, действительно оказалось что я сначала подключал CMS модуль MODX Revo.
Попросил ТП Яндекс.Кассы поменять. Меняется в личном кабинете на их стороне, изменения вносятся в течение суток.
Еще по ходу выяснилось что тот сертификат SSL который я поставил от хостера — для работы с Яндекс.Кассой не подходит (т.к. работает с SNI) — хостер сказал что SNI подключается на 1 общий IP адрес и не может быть отключен. Пришлось запросить новый сертификат SSL для сайта через менеджера Яндекс.Кассы.
Ох как все сложно, так не морочился никогда, 3-й месяц подключаю… :(((
16 января 2018, 15:42
0
Способ подключения к Яндекс Кассе какой должен быть? У меня сначала был поставлен стандартный модуль от самой яндекс Кассы — «CMS модуль MODX Revo» (в тестовом режиме он работал), но с ним я не понял как работать.
Поставил Ваш модуль — попросил перепрописать адреса checkUrl и avisoUrl на domainname.com/assets/components/minishop2/payment/mspyacassa.php
ТП Яндекса все сделали.
Сегодня проверяю — не работает. Написал вопрос в техподдержку, жду ответ.
11 января 2018, 20:43
0
Привет! С OrangeData когда сделаете? Или уже работает? Очень надо! Купил ваш компонент, но как привязать к OrangeData пока не понял.
18 декабря 2017, 12:14
0
решил проблему. Сделал переустановку pdoTools (на версии 2.3.10) и все заработало.
Будем ждать ответа по обновлению в другом топике и пробовать обновиться.
Вопрос пока оставлю в статусе новый. Т.к. по факту проблему не решил — я просто откатился, попутно словив багов.
А вот в чем причина такого поведения при обновлении непонятно.
18 декабря 2017, 12:09
0
да стоит modhelpers -а как он может влиять?
18 декабря 2017, 11:17
0
Еще на главной был код проверки авторизован пользователь или нет:
{if is_auth()}
          ...
 {else}
           ...
  {/if}
Теперь не работает :(((
Вываливается на главной оба блока кода которые должны быть и сами теги:
{if is_auth()} {css('')} блок кода 1
 {else} 
блок кода 2 {/if}
простановка пробелов не помогает.
Короче сломались отработка условий по if на базе тегов Fenom :((
18 декабря 2017, 09:59
0
а код ошибок журнала не можете выложить?
18 декабря 2017, 09:51
1
0
в чанке был такой код:
[[!If?
   &subject=`[[!isCustomer]]`
   &operator=`EQ`
   &operand=`1`
   &then=`
[[!pdoUsers?
	&limit=`0`
	&tpl=`@INLINE [[+product_id]]`
	&leftJoin=`{
        "msOrder": {
            "class": "msOrder",
            "on": "modUser.id = msOrder.user_id"
        },
        "msOrderProduct": {
            "class": "msOrderProduct",
            "on": "msOrder.id = msOrderProduct.order_id"
         }
    }`
    &select=`{
        "modUser": "*",
        "msOrder": "SUM(msOrder.cost) as sum",
        "msOrderProduct": "*"
    }`
    &sortby=`sum`
    &sortdir=`DESC`
    &where=`{"modUser.id:=":[[!+modx.user.id]], "msOrder.status":2}`
    &toPlaceholder=`userProductId`
]]

            [[!pdoResources?
            	&tpl=`@INLINE [[+id]]`
            	&where=`{"description:=" : "[[!+userProductId]]"}`
            	&sortby=`{"menuindex":"ASC", "pagetitle":"DESC"}`
            	&limit=`1`
            	&parents=`[[*id]]`
            	&toPlaceholder=`months`
            ]]
            [[!pdoResources?
            	&tpl=`lessonListTpl`
            	&where=`{ "template:=" : "11"}`
            	&sortby=`{"menuindex":"ASC", "pagetitle":"DESC"}`
            	&parents=`[[+months]]`
            	&showUnpublished=`1`
            	&product=`[[!+userProductId]]`
            ]]
`
   &else=`
       [[$ghostTemplate8Content]]
   `
]]
Код используется для поиска всех пользователей оплативших заказы (Minishop2) и выборки из них текущего пользователя для отображения купленных им товаров.
Код не я придумывал, пока сам не вкурил его.
Может подскажете где может быть проблема?
18 декабря 2017, 09:48
0
Самое интересное что у меня все что нужно (счетчик метрики и пиксели) было обернуто в {ignore}{/ignore}.
Теперь же после отката на 2.3.10 у меня на странице вываливался текст тегов {ignore}{/ignore} — до этого было все норм.
Т.е. теги как будто перестали работать — странно почему они на странице стали отображаться.
Я удалил их — предварительно поставив в коде счетчиков и пикселей после фигурной скобки дополнительный пробел "{ ".
17 декабря 2017, 13:05
0
Откатил пока назад, все заработало. Просим разработчиков посмотреть в чем может быть ошибка.
17 декабря 2017, 13:02
0
во -во — тоже написал об этом вопрос https://modx.pro/help/14121/
17 декабря 2017, 12:55
+1
У меня после обновления тоже проблемы начались — выводит ошибки:
[2017-12-17 12:46:36] (ERROR @ /home/hostxxxxx/sitename.com/htdocs/www/core/model/modx/modconnectorresponse.class.php: 159) PHP warning: Cannot modify header information — headers already sent by (output started at /home/host1587055/kids-kaplya.com/htdocs/www/core/model/modx/modx.class.php:2284)
[2017-12-17 12:46:44] (ERROR @ /home/hostxxxxx/sitename.com/htdocs/www/core/components/pdotools/model/pdotools/pdotools.class.php: 977) Unexpected token ':' in e3512ec55ae9b7b37aa4964c4dea152a line 197, near '{«modUser.id:=»:' < — there
Что делать?
16 декабря 2017, 19:57
0
ссылка на главу 4 неправильная — стоит modx.pro/topic/13984/ (там соответственно мы не можем читать) а я так понял должно быть modx.pro/sites/13984/
04 декабря 2017, 11:09
0
На сайте данный компонент не установлен. Спасибо за статью. Кое-какие мысли есть.
04 декабря 2017, 11:04
0
Да, стоит.
01 декабря 2017, 17:16
1
0
Кто нибудь приобретал этот терминал и настраивал с Modx?