forum.bitel.ru http://forum.bitel.ru/ |
|
Robokassa http://forum.bitel.ru/viewtopic.php?f=19&t=3073 |
Страница 1 из 4 |
Автор: | Cromeshnic [ 26 окт 2009, 11:00 ] |
Заголовок сообщения: | Robokassa |
Хотим реализовать взаимодействие BGBilling с robokassa.ru API: http://robokassa.ru/Doc/Ru/Interface.aspx Демо для нашей задачи: http://robokassa.ru/DemoShop/Demo3.aspx Идея такая: в личном кабинете делаем раздел "Online-оплата", в разделе размещаем форму со скрытыми полями и кнопку "Пополнить баланс": Код: <form action='https://merchant.roboxchange.com/Index.aspx' method=POST target=\"new\"> <input type=hidden name=MrchLogin value="$login"> <input type=hidden name=OutSum value=""> <input type=hidden name=InvId value="0"> <input type=hidden name=Desc value="Оплата по договору $title"> <input type=hidden name=SignatureValue value="$md5"> <input type=hidden name=shp_contract value="$cid"> <input type=hidden name=IncCurrLabel value="PCR"> <input type=hidden name=Culture value="ru"> <input type=submit value="Пополнить баланс"> </form> Для этого просто правим xsl-шаблон main.xsl. Но возникает проблема: нужно как-то вычислять $md5=md5("$login::0:$password1:shp_contract=$cid") Возможно я делаю что-то не так, но тег <xsl:script> упорно не обрабатывается. В логе пишет, что <xsl:script> не разрешен в этом месте. Я подставлял его в <xsl:stylesheet> и в <xsl:template> Возможно ли в принципе использование <xsl:script> для этой цели? Может быть есть другие идеи по реализации? Можно конечно сохранять md5 в специальный параметр договора и потом получать его из xml, но это кажется мне неправильным подходом - придется отслеживать их актуальность. Ещё можно вставить iframe со ссылкой на свой скрипт, который будет генерировать эту форму, но так тоже кажется не совсем красивым. зы. Если реализую - выложу на вики ![]() |
Автор: | Cromeshnic [ 26 окт 2009, 13:41 ] |
Заголовок сообщения: | Re: Robokassa |
Можно конечно сделать через "дополнительные действия", но это неправильно с точки зрения пользовательского интерфейса - так глубоко запихивать такую важную вещь. Есть ли вообще способы кроме доп. действий внедрить свою функциональность в личный кабинет? |
Автор: | Cromeshnic [ 27 окт 2009, 14:11 ] |
Заголовок сообщения: | Re: Robokassa |
Придумал: можно сделать прямую ссылку на выполнение доп. действия, на выходе либо сразу редирект на robokassa.ru с нужными сгенерированными параметрами, либо (если редирект нельзя сделать) - генерируем форму запроса к robokassa.ru из первого поста. |
Автор: | focus [ 24 ноя 2009, 14:21 ] |
Заголовок сообщения: | Re: Robokassa |
В Wiki описал как можно реализовать взаимодействие с платежной системой robokassa Раздел Интеграция с внешними системами http://wiki.bgbilling.ru/index.php/%D0%98%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D1%8F_%D1%81_%D0%BF%D0%BB%D0%B0%D1%82%D0%B5%D0%B6%D0%BD%D0%BE%D0%B9_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%BE%D0%B9_Robokassa |
Автор: | sabriel [ 13 янв 2011, 17:18 ] |
Заголовок сообщения: | Re: Robokassa |
здравствуйте воспользовались примером их вики. но тут ряд проблем. переходим на олайн паймет но там кнопка робокассы не появляется так же как и сообщения о каких либо ошибках помогите пожалуйста решить эти проблемы проблемы. jre 1.6.0_21 obokassalib.jar, servletrblib.jar скомпилировали и поместили в lib commons-codec-1.4.jar уже был скомпилен и просто помещен в lib |
Автор: | dimOn [ 13 янв 2011, 17:25 ] |
Заголовок сообщения: | Re: Robokassa |
версия то какая |
Автор: | sabriel [ 13 янв 2011, 17:27 ] |
Заголовок сообщения: | Re: Robokassa |
dimOn писал(а): версия то какая с отображением поправили. надо было писать в layot.xslверсия чего? билинга? 5.1 сборка 519 |
Автор: | dimOn [ 13 янв 2011, 17:29 ] |
Заголовок сообщения: | Re: Robokassa |
да, в 5.1 вообще нет common.xsl |
Автор: | dimOn [ 13 янв 2011, 17:29 ] |
Заголовок сообщения: | Re: Robokassa |
итак? дальше в чём проблема? страница не появляется? |
Автор: | sabriel [ 13 янв 2011, 17:31 ] |
Заголовок сообщения: | Re: Robokassa |
dimOn писал(а): итак? дальше в чём проблема? страница не появляется? значит от старой версии осталось. далее переходим на онлайн платежи Код: <xsl:template name="OnlinePay"> <xsl:variable name="err" select="/data/msg/@err"/> <xsl:if test="$err = 1"> <xsl:value-of select="/data/msg/@text"/> </xsl:if> <xsl:if test="$err = 0"> <table border="0"> <tr><td align="left"> <form method="POST" action="webexecuter" target="_blank"> <input type="hidden" name="action" value="RequestRobokassa" /> <input type="hidden" name="mid" value="contract" /> <xsl:call-template name="submit"> <xsl:with-param name="title" select="'Оплатить с помощью ROBOKASSA'"/> </xsl:call-template> </form> </td> </tr> </table> </xsl:if> </xsl:template> но сообщение об ошибка так же как и кнопка не появляется. |
Автор: | dimOn [ 13 янв 2011, 17:31 ] |
Заголовок сообщения: | Re: Robokassa |
Та инструкция для 5.0, короче. Для более поздних неактуально почти всё что там написано. В 5.1 уже нету никаких WebAction_* , вебовски экшены лежат в action.web и называются без префикса Web*. Сейчас укажу это в вики. |
Автор: | sabriel [ 13 янв 2011, 17:33 ] |
Заголовок сообщения: | Re: Robokassa |
dimOn писал(а): Та инструкция для 5.0, короче. Для более поздних неактуально почти всё что там написано. В 5.1 уже нету никаких WebAction_* , вебовски экшены лежат в action.web и называются без префикса Web*. Сейчас укажу это в вики. хорошо ждем. надеюсь нам поможет эм... в вики конечно хорошо поправили. а можете помочь все таки разобраться с нашей проблемой?) |
Автор: | dimOn [ 13 янв 2011, 18:08 ] |
Заголовок сообщения: | Re: Robokassa |
Я лишь сделал плашку с предупреждением об актуальности версий и поместил её внизу некоторых статей. Само решение я не буду править ![]() Могу сказать лишь, что там есть в статье исходники, вам надо их скачать, исправить названия и расположения классов, чтобы они виделись при вызове экшенов из web. После этого при вызове экшенов будет что-то происходить и с вероятностью 50% всё заработает, при остальных 50% надо будет подправить некоторые вызовы утильных разных методов из нашего API, если там используются те, которые в 5.1 были изменены/упразднены. Если нет знаний Java, но есть сильное желание всё же запустить это всё - обращайтесь к автору решения или в хелпдеск. Или если сами настроите всё для компиляции тех исходников, то я тут попробую подсказать что именно надо будет подправить ![]() |
Автор: | sabriel [ 13 янв 2011, 18:47 ] |
Заголовок сообщения: | Re: Robokassa |
dimOn писал(а): Я лишь сделал плашку с предупреждением об актуальности версий и поместил её внизу некоторых статей. Само решение я не буду править ![]() Могу сказать лишь, что там есть в статье исходники, вам надо их скачать, исправить названия и расположения классов, чтобы они виделись при вызове экшенов из web. После этого при вызове экшенов будет что-то происходить и с вероятностью 50% всё заработает, при остальных 50% надо будет подправить некоторые вызовы утильных разных методов из нашего API, если там используются те, которые в 5.1 были изменены/упразднены. Если нет знаний Java, но есть сильное желание всё же запустить это всё - обращайтесь к автору решения или в хелпдеск. Или если сами настроите всё для компиляции тех исходников, то я тут попробую подсказать что именно надо будет подправить ![]() для компиляции впринципе настроено. а вот что и где править знаний не хватает. |
Автор: | dimOn [ 13 янв 2011, 20:48 ] |
Заголовок сообщения: | Re: Robokassa |
Вот я гооврю, что раньше вебовские экшены (имя класса) назывались так: WebAction_BlaBla и лежали они где-то в корне вообще пакета серверного. теперь они должны лежать там же где и обычные экшены (но не в подпакете action а в подпакете action.web) и называться так же однотипно ( ActionBlaBla ) |
Автор: | dimOn [ 13 янв 2011, 20:49 ] |
Заголовок сообщения: | Re: Robokassa |
то есть например так начинается реальный экшен: Код: package bitel.billing.server.contract.action.web;
import java.sql.SQLException; import org.w3c.dom.Element; import ru.bitel.bgbilling.common.BGException; import bitel.billing.common.TimeUtils; import bitel.billing.server.contract.action.base.ActionBase; import bitel.billing.server.contract.bean.ContractMemo; import bitel.billing.server.contract.bean.ContractMemoManager; public class ActionMemo extends ActionBase { |
Автор: | focus [ 14 янв 2011, 09:01 ] |
Заголовок сообщения: | Re: Robokassa |
Да на wiki версия для 5.0. Сами недавно перешли на 5.1 и допиливали action для робокассы для 5.1. Сейчас посмотрю какие изменения претерпел код, выложу обновленные библиотеки. В wiki напишу что нужно подправить для 5.1 |
Автор: | focus [ 14 янв 2011, 10:01 ] |
Заголовок сообщения: | Re: Robokassa |
На wiki в той статье же добавил изменения для версии 5.1 Если будут вопросы пишите... |
Автор: | dimOn [ 14 янв 2011, 11:59 ] |
Заголовок сообщения: | Re: Robokassa |
вот из этой статьи вашей Цитата: В common.xsl добавляем тоже самое, что и для 5.0 повторяю и обращаю внимание, что в оригинальной 5.1 нет никакого common.xsl |
Автор: | sabriel [ 14 янв 2011, 12:14 ] |
Заголовок сообщения: | Re: Robokassa |
все сделали в server.out пишет Код: 14.01.2011 11:08:54 org.apache.catalina.startup.Embedded start INFO: Starting tomcat server 14.01.2011 11:08:54 org.apache.catalina.core.StandardEngine start INFO: Starting Servlet Engine: Apache Tomcat/6.0.18 14.01.2011 11:08:54 org.apache.catalina.core.ApplicationContext log INFO: Marking servlet resultrobokassa as unavailable 14.01.2011 11:08:54 org.apache.catalina.core.ApplicationContext log SEVERE: Error loading WebappClassLoader delegate: false repositories: ----------> Parent Classloader: ru.bitel.common.bootstrap.BootstrapClassLoader@5fd1acd3 ru.bgbilling.robokassa.servlet.roboxre java.lang.ClassNotFoundException: ru.bgbilling.robokassa.servlet.roboxre at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1094) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:992) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4371) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.startup.Embedded.start(Embedded.java:825) at bitel.billing.server.Server.<init>(Server.java:421) at bitel.billing.server.Server.main(Server.java:242) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at ru.bitel.common.bootstrap.Boot.boot(Boot.java:77) at ru.bitel.common.bootstrap.Boot.main(Boot.java:125) 14.01.2011 11:08:54 org.apache.catalina.core.StandardContext loadOnStartup SEVERE: Servlet /bgbilling threw load() exception java.lang.ClassNotFoundException: ru.bgbilling.robokassa.servlet.roboxre at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1094) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:992) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4371) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.startup.Embedded.start(Embedded.java:825) at bitel.billing.server.Server.<init>(Server.java:421) at bitel.billing.server.Server.main(Server.java:242) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at ru.bitel.common.bootstrap.Boot.boot(Boot.java:77) at ru.bitel.common.bootstrap.Boot.main(Boot.java:125) может исходники компилим как то не так? jar -cf используем эту команду сервлет регистрируем так Код: <servlet> <servlet-name>resultrobokassa</servlet-name> <servlet-class>ru.bgbilling.robokassa.servlet.roboxre</servlet-class> <load-on-startup>6</load-on-startup> </servlet> но в jar архиве так ru/dsi/billing и тд меняли на Код: <servlet> <servlet-name>resultrobokassa</servlet-name> <servlet-class>ru.dsi.bgbilling.robokassa.servlet.roboxre</servlet-class> <load-on-startup>6</load-on-startup> </servlet> но класс все равно найти не может |
Автор: | Cromeshnic [ 14 янв 2011, 12:19 ] |
Заголовок сообщения: | Re: Robokassa |
Нужно скомпилировать эти исходники: http://wiki.bgbilling.ru/index.php/%D0% ... ib_5.1.zip http://wiki.bgbilling.ru/index.php/%D0% ... ib_5.1.zip Потом запаковать их в jar и закинуть в /usr/local/BGBillingServer/lib/ |
Автор: | Cromeshnic [ 14 янв 2011, 12:22 ] |
Заголовок сообщения: | Re: Robokassa |
Компилится каким-нибудь IDE или в консоли: man javac man jar Пример тут есть: http://wiki.bgbilling.ru/index.php/%D0% ... 0%BE%D1%81 |
Автор: | Cromeshnic [ 14 янв 2011, 12:23 ] |
Заголовок сообщения: | Re: Robokassa |
Упс, когда писал, ещё не было указано про то, что вы компилите. Когда конфиг меняли, сервер рестартовали? |
Автор: | sabriel [ 14 янв 2011, 12:38 ] |
Заголовок сообщения: | Re: Robokassa |
Cromeshnic писал(а): Упс, когда писал, ещё не было указано про то, что вы компилите. Когда конфиг меняли, сервер рестартовали? не. как оказалось не компилили а только запаковывали. сейчас пробуем скомпилить |
Автор: | focus [ 14 янв 2011, 13:05 ] |
Заголовок сообщения: | Re: Robokassa |
Ещё нужно маппинг сделать Код: <servlet-mapping> <servlet-name>resultrobokassa</servlet-name> <url-pattern>/resrb</url-pattern> </servlet-mapping> Про это в вики написано. Да нужно скомпилить получить файл class, затем их упаковать в jar jar положить в .....BGBillingServer/lib рестарт сервера биллинга сервлет должен отвечать по адресу http://server:port/bgbilling/resrb должен вернуть bad sign |
Автор: | focus [ 14 янв 2011, 13:08 ] |
Заголовок сообщения: | Re: Robokassa |
dimOn писал(а): вот из этой статьи вашей Цитата: В common.xsl добавляем тоже самое, что и для 5.0 повторяю и обращаю внимание, что в оригинальной 5.1 нет никакого common.xsl Спасибо что акцентировали на этом внимание. С помощью common.xsl я добавляю раздел в левую менюшку. Если сейчас common.xsl не актуален, тогда поясните, пожалуйста, каким образом в 5.1 правильно добавлять разделы в левое меню. И я так понимаю он не актуален, но и работает (вроде deprecated) ? |
Автор: | sabriel [ 14 янв 2011, 13:11 ] |
Заголовок сообщения: | Re: Robokassa |
пока с компиляцией разбираемся. может можно выложить скомпиленные и запакованные сразу? если не сложно? только не сочтите просьбу за наглость ) |
Автор: | focus [ 14 янв 2011, 13:12 ] |
Заголовок сообщения: | Re: Robokassa |
sabriel писал(а): пока с компиляцией разбираемся. может можно выложить скомпиленные и запакованные сразу? если не сложно? только не сочтите просьбу за наглость ) Ок. сейчас. |
Автор: | dimOn [ 14 янв 2011, 13:15 ] |
Заголовок сообщения: | Re: Robokassa |
focus писал(а): dimOn писал(а): вот из этой статьи вашей Цитата: В common.xsl добавляем тоже самое, что и для 5.0 повторяю и обращаю внимание, что в оригинальной 5.1 нет никакого common.xsl Спасибо что акцентировали на этом внимание. С помощью common.xsl я добавляю раздел в левую менюшку. Если сейчас common.xsl не актуален, тогда поясните, пожалуйста, каким образом в 5.1 правильно добавлять разделы в левое меню. И я так понимаю он не актуален, но и работает (вроде deprecated) ? Нет, его просто нету. Часть из него было перенесено в layout.xsl , часть убрана. Меню всё в layout.xsl тоже. Работать он не может, потому что в оригинале он не подключается и его вообще нету в дереве классов очень давно, в сборку оно тоже не попадает. Если у вас старые какие-то шаблоны, то могло остаться по-старому. |
Автор: | focus [ 14 янв 2011, 13:21 ] |
Заголовок сообщения: | Re: Robokassa |
Я понял. У нас в layout.xsl ссылка на common.xsl |
Страница 1 из 4 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |