Перейти к содержимому


Фотография
- - - - -

Настройка интеркассы на новый API

рецепт

  • Закрытая тема Тема закрыта
Сообщений в теме: 12

#1 joejoker

joejoker

Отправлено 27 December 2013 - 14:56

Переключение интеркассы на новый API
 
Совсем недавно, платежный агрегатор Интеркасса, объявил о переходе на новый API. Хоть на сайте interkassa.com и нет соответствующих новостей, но регистрация новых магазинов, уже осуществляется только на новом сайте new.interkassa.com. Сначала мы хотели переделать интеграцию в следующем релизе JBZoo, но столкнулись с рядом недоработок нового API, плохо написанной документацией и «гробовым» молчанием техподдержки. В связи с чем, было решено пока не переделывать существующую реализацию, а опубликовать рецепт, при помощи которого каждый сможет, при желании самостоятельно сделать нормально работающее подключение к новому API. 
 
Внимание! Все изменения вы делаете на свой страх и риск, так как безошибочная работа нового API вызывает сомнения.
 
Итак. Все что нужно для того что бы подключиться к новому API, это зарегистрировать и настроить кассу и отредактировать три файла в сборке JBZoo
 
1. Регистрация
 
Зарегистрировать новую кассу, не сложнее чем завести почтовый ящик. Идем на сайт https://new.interkassa.com/  и видим такую картину
f9c_1280x0.png
Пугаться этого не стоит, так как скорее всего сертификат настроен на старый домен. Жмем кнопку «Продолжить все равно» и попадаем на главную страницу сайта.
 
В верхней части сайта жмем ссылку «Зарегистрироваться»
7jm.png
и проходим несложную процедуру регистрации.
nky.png
На следующей странице, вам будет предложено авторизоваться. Вводим свой логин и пароль, который был выслан в письме на почтовый ящик или в СМС на номер мобильного телефона и попадаем на такую страничку
yvh.png
Как мы видим, система предлагает зарегистрировать нам кошелек, но нам нужно зарегистрировать кассу. Для этого нужно кликнуть по ссылке своего профиля и нажать эту кнопку
o2e.png
Далее вводим адрес своего интернет магазина, произвольное название кассы и выбираем валюту, в которой будет работать касса
h29.png
и нажимаем кнопку «Создать».
 
2. Настройка кассы.
 
Под именем вашей кассы, будет стоять идентификационный номер, который нужно скопировать и вставить в настройки интеркассы, корзины вашего магазина.
 
Для того что бы перейти в настройки кассы, нажимаем эту кнопку
rpn.png
 
На первой вкладке «Общие настройки», вводим необходимую информацию.
m6r.png
 
На настройке следующих двух вкладок «Настройки платежей» и «Платежные системы» останавливаться не будем, так как настройки интуитивно понятны и не критичны для нашего подключения. Единственное, на чем стоит заострить внимание, так это на том, что после того как система будет подключена, настоятельно рекомендуется отключить во вкладке «Платежные системы» систему «Тестовая платежная система» 
oro.png
 
Далее, на следующей вкладке «Интерфейс» Нам нужно вбить три ссылки и указать режим передачи данных «POST»
xr6.png
 
Где взять ссылки? Ссылки берутся в настройках корзины вашего интернет — магазина. Здесь
g02.png
после того как корзина вашего магазина будет полностью в рабочем состоянии, нужно нажать ссылку «Получить ссылки для API». Откроется вот такое окно
0df.png
из которого нужно скопировать ссылки и вставить их в соответствующие поля, в настройках кассы, на вкладке «Интерфейс».
 
На вкладке «Безопасность», нужно установить значение «Алгоритм подписи» - MD5, скопировать «Секретный ключ» и вставить его в соответствующее поле настроек платежных систем в настройке корзины. 
 
Внимание! Настоятельно не рекомендуется включать настройку «Проверять подпись в форме запроса платежа»
 
bj5.png
 Именно с включением этой опции возникают проблемы с новым API.
 
На этом обзор настройки кассы можно закончить.
 
3. Редактирование файлов JBZoo
 
Для того что бы инеркасса заработала с новым API нужно отредактировать три файла. Это: 
  • /media/zoo/applications/jbuniversal/framework/controllers/payment.php
  • /media/zoo/applications/jbuniversal/templates/catalog/renderer/payment_ikassa/_default.php
  • /media/zoo/applications/jbuniversal/config/basket.xml
 
Открываем в первую очередь файл /media/zoo/applications/jbuniversal/config/basket.xml находим там следующий кусок кода:
 
  1. <!-- IKassa -->
  2. <param name="@spacer-ikassa" type="jbspacer" default="JBZOO_IKASSA_CONFIG_TITLE"/>
  3.  
  4. <param name="ikassa-enabled" type="jbbool" default="0" label="JBZOO_IKASSA_ENABLED"
  5. description="JBZOO_IKASSA_ENABLED_DESC"/>
  6.  
  7. <param name="ikassa-shopid" type="text" default="" label="JBZOO_IKASSA_SHOPID"
  8. description="JBZOO_IKASSA_SHOPID_DESC"/>
  9.  
  10. <param name="ikassa-key" type="text" default="" label="JBZOO_IKASSA_KEY" description="JBZOO_IKASSA_KEY_DESC"/>
 
заменяем его этим кодом:
 
  1. <!-- IKassa -->
  2. <param name="@spacer-ikassa" type="jbspacer" default="JBZOO_IKASSA_CONFIG_TITLE"/>
  3.  
  4. <param name="ikassa-enabled" type="jbbool" default="0" label="JBZOO_IKASSA_ENABLED"
  5. description="JBZOO_IKASSA_ENABLED_DESC"/>
  6.  
  7. <param name="ikassa-debug" type="jbbool" default="0" label="JBZOO_IKASSA_DEBUG"
  8. description="JBZOO_IKASSA_DEBUG_DESC"/>
  9. <param name="ikassa-shopid" type="text" default="" label="JBZOO_IKASSA_SHOPID"
  10. description="JBZOO_IKASSA_SHOPID_DESC"/>
  11.  
  12. <param name="ikassa-key" type="text" default="" label="JBZOO_IKASSA_KEY" description="JBZOO_IKASSA_KEY_DESC"/>
  13.  
  14. <param name="ikassa-key-test" type="text" default="" label="JBZOO_IKASSA_KEY_TEST" description="JBZOO_IKASSA_KEY_TEST_DESC"/>
 
Далее, открываем файл /media/zoo/applications/jbuniversal/templates/catalog/renderer/payment_ikassa/_default.php и замеяем код формы данным кодом:
  1. <form name="payment" action="https://sci.interkassa.com/"" method="post" accept-charset="UTF-8">
  2.  
  3. <input type="hidden" name="ik_co_id"" value="<?php echo $data->get('shopid'); ?>">
  4. <input type="hidden" name="ik_am" value="<?php echo $data->get('summ'); ?>">
  5. <input type="hidden" name="ik_pm_no" value="<?php echo $data->get('orderId'); ?>">
  6. <input type="hidden" name="ik_desc""
  7. value="Order #<?php echo $data->get('orderId'); ?> form <?php echo JUri::getInstance()->getHost(); ?>">
  8. <input type="hidden" name="ik_sign" value="<?php echo $data->get('secretKey'); ?>">
  9.  
  10. <input type="submit" style="display:inline-block;" class="add-to-cart"
  11. value="<?php echo JText::_('JBZOO_PAYMENT_BUTTON'); ?>"/>
  12. </form>
И последнее. Открываем файл:  /media/zoo/applications/jbuniversal/framework/controllers/payment.php и заменяем весь код, этим:
  1. <?php
  2. /**
  3. * JBZoo App is universal Joomla CCK, application for YooTheme Zoo component
  4. *
  5. * @package jbzoo
  6. * @version 2.x Pro
  7. * @author JBZoo App http://jbzoo.com
  8. * @copyright Copyright (C) JBZoo.com, All rights reserved.
  9. * @license http://jbzoo.com/license-pro.php JBZoo Licence
  10. * @coder Denis Smetannikov <denis@jbzoo.com>
  11. */
  12.  
  13. // no direct access
  14. defined('_JEXEC') or die('Restricted access');
  15.  
  16.  
  17. /**
  18. * Class paymentJBUniversalController
  19. */
  20. class paymentJBUniversalController extends JBUniversalController
  21. {
  22.  
  23. const TYPE_ROBOX = 'Robokassa.ru';
  24. const TYPE_IKASSA = 'Interkassa.com';
  25. const TYPE_MANUAL = 'Manual';
  26. /**
  27. * @var Int
  28. */
  29. public $appId = null;
  30.  
  31. /**
  32. * @var Item
  33. */
  34. public $order = null;
  35.  
  36. /**
  37. * @var Int
  38. */
  39. public $orderId = null;
  40.  
  41. /**
  42. * @var Int
  43. */
  44. public $itemId = null;
  45.  
  46. /**
  47. * @var ElementJBBasketItems
  48. */
  49. public $orderDetails = null;
  50.  
  51. /**
  52. * @var AppTemplate
  53. */
  54. public $template = null;
  55.  
  56. /**
  57. * @var ParameterData
  58. */
  59. public $appParams = null;
  60.  
  61. /**
  62. * @var JBUniversalApplication
  63. */
  64. public $application = null;
  65.  
  66. /**
  67. * @var JBModelOrder
  68. */
  69. public $orderModel = null;
  70.  
  71. /**
  72. * @var BasketRenderer
  73. */
  74. public $renderer = null;
  75.  
  76. /**
  77. * @var String
  78. */
  79. public $systemType = null;
  80.  
  81. /**
  82. * Init controller
  83. * @throws AppException
  84. */
  85. protected function _init()
  86. {
  87. $this->orderId = (int)$this->_jbrequest->get('order_id');
  88. $this->appId = (int)$this->_jbrequest->get('app_id');
  89.  
  90. $this->appParams = $this->application->getParams();
  91.  
  92. if ($invId = (int)$this->_jbrequest->get('InvId')) {
  93. $this->systemType = self::TYPE_ROBOX;
  94. $this->orderId = $invId;
  95.  
  96. } else if ($ikPaymentId = (int)$this->_jbrequest->get('ik_pm_no')) {
  97. $this->systemType = self::TYPE_IKASSA;
  98. $this->orderId = $ikPaymentId;
  99.  
  100. } else if ($orderId = (int)$this->_jbrequest->get('order_id')) {
  101. $this->systemType = self::TYPE_MANUAL;
  102. $this->orderId = $orderId;
  103. }
  104.  
  105. if (!$this->appId) {
  106. throw new AppException('Applciation id is no set');
  107. }
  108.  
  109. if (!$this->template = $this->application->getTemplate()) {
  110. throw new AppException('No template selected');
  111. }
  112.  
  113. if ((int)$this->appParams->get('global.jbzoo_cart_config.enable', 0) == 0) {
  114. throw new AppException('Application is not a basket');
  115. }
  116.  
  117. if ((int)$this->appParams->get('global.jbzoo_cart_config.payment-enabled') == 0) {
  118. throw new AppException('Payment is not enabled');
  119. }
  120.  
  121. if ($this->orderId) {
  122.  
  123. $this->orderModel = JBModelOrder::model();
  124. if (!$this->order = $this->orderModel->getById($this->orderId)) {
  125. throw new AppException('Order #' . $this->orderId . ' no exists');
  126. }
  127.  
  128. if (!$this->orderDetails = $this->orderModel->getDetails($this->order)) {
  129. throw new AppException('This type don\'t have JBPrice element');
  130. }
  131. }
  132.  
  133. if (!$this->orderDetails) {
  134. throw new AppException('Order not found');
  135. die;
  136. }
  137.  
  138. // set renderer
  139. $this->renderer = $this->app->renderer->create('basket')->addPath(array(
  140. $this->app->path->path('component.site:'),
  141. $this->template->getPath()
  142. ));
  143. }
  144.  
  145. /**
  146. * Index action
  147. */
  148. function index()
  149. {
  150. if ((int)JFactory::getConfig()->get('debug') == 0) {
  151. //error_reporting(0);
  152. }
  153.  
  154. $this->_init();
  155.  
  156. $totalSumm = $this->orderDetails->getTotalPrice();
  157. $totalSummFormated = $this->orderDetails->getTotalPrice(true);
  158.  
  159. $appParams = $this->app->data->create($this->appParams->get('global.jbzoo_cart_config.', array()));
  160. $this->payments = array();
  161.  
  162. if ($this->orderDetails->getOrderStatus() == ElementJBBasketItems::ORDER_STATUS_PAID) {
  163. throw new AppException('Order has already been paid');
  164. }
  165. if ($totalSumm == 0) {
  166. throw new AppException('To pay for the cost should be greater than zero');
  167. }
  168.  
  169. // robox
  170. if ((int)$appParams->get('robox-enabled', 0)) {
  171. $params = new stdClass();
  172. $params->login = JString::trim($appParams->get('robox-login'));
  173. $params->password1 = JString::trim($appParams->get('robox-password1'));
  174. $params->hash = md5(implode(':', array($params->login, $totalSumm, $this->orderId, $params->password1)));
  175. $params->summ = $totalSumm;
  176. $params->orderId = $this->orderId;
  177. $params->summFormated = $totalSummFormated;
  178. $params->debug = (int)$appParams->get('robox-debug', 0);
  179.  
  180. $this->payments['robox'] = $this->app->data->create($params);
  181. }
  182.  
  183. // ikassa
  184. if ((int)$appParams->get('ikassa-enabled', 0)) {
  185. $params = new stdClass();
  186. $params->shopid = JString::trim($appParams->get('ikassa-shopid'));
  187. $params->summ = $totalSumm;
  188. $params->orderId = $this->orderId;
  189. $params->summFormated = $totalSummFormated;
  190.  
  191. $this->payments['ikassa'] = $this->app->data->create($params);
  192. $params->secretKey = $this->getSecretKey($appParams, $params->summ);
  193. }
  194.  
  195. // manual
  196. if ((int)$appParams->get('manual-enabled', 0)) {
  197. $params = new stdClass();
  198. $params->title = $appParams->get('manual-title');
  199. $params->text = $appParams->get('manual-text');
  200. $params->message = $appParams->get('manual-message');
  201.  
  202. $this->payments['manual'] = $this->app->data->create($params);
  203. }
  204.  
  205. // display
  206. $this->getview('payment')->addTemplatePath($this->template->getPath())->setLayout('payment')->display();
  207. }
  208.  
  209. /**
  210. * @throws AppException
  211. */
  212. public function paymentCallback()
  213. {
  214. $this->_init();
  215.  
  216. if ($this->orderDetails->getOrderStatus() == ElementJBBasketItems::ORDER_STATUS_PAID) {
  217. throw new AppException('Order has already been paid');
  218. }
  219.  
  220. $totalsumm = $this->orderDetails->getTotalPrice();
  221.  
  222. if ($this->systemType == self::TYPE_ROBOX) {
  223.  
  224. if ((float)$totalsumm != (float)$_REQUEST['OutSum']) {
  225. throw new AppException('No valid summ');
  226. }
  227.  
  228. $password2 = JString::trim($this->appParams->get('global.jbzoo_cart_config.robox-password2'));
  229. $crc = strtoupper($_REQUEST["SignatureValue"]);
  230. $myCrc = strtoupper(md5(implode(':', array($_REQUEST['OutSum'], $this->orderId, $password2))));
  231.  
  232. if ($crc === $myCrc) {
  233.  
  234. // get request vars
  235. $args = array(
  236. 'date' => $this->app->date->create()->toSQL(),
  237. 'system' => $this->systemType,
  238. 'additionalState' => null
  239. );
  240.  
  241. // execute callback method
  242. $this->orderDetails->callback('paymentCallback', $args);
  243.  
  244. jexit('OK' . $this->orderId);
  245.  
  246. } else {
  247. throw new AppException('No valid hash');
  248. }
  249.  
  250. } else if ($this->systemType == self::TYPE_IKASSA) {
  251.  
  252. if($this->appParams->get('global.jbzoo_cart_config.ikassa-debug',0 || $this->_jbrequest->get('ik_pw_via', '') === 'test_interkassa_test_xts')){
  253.  
  254. $key = JString::trim($this->appParams->get('global.jbzoo_cart_config.ikassa-key-test',0));
  255. }else{
  256. $key = JString::trim($this->appParams->get('global.jbzoo_cart_config.ikassa-key',0));
  257. }
  258.  
  259. $myCrcData = array(
  260. 'ik_co_id' => $this->_jbrequest->get('ik_co_id', ''),
  261. 'ik_am' => $this->_jbrequest->get('ik_am', ''),
  262. 'ik_co_prs_id' => $this->_jbrequest->get('ik_co_prs_id', ''),
  263. 'ik_inv_id' => $this->_jbrequest->get('ik_inv_id', ''),
  264. 'ik_inv_st' => $this->_jbrequest->get('ik_inv_st', ''),
  265. 'ik_inv_crt' => $this->_jbrequest->get('ik_inv_crt', ''),
  266. 'ik_inv_prc' => $this->_jbrequest->get('ik_inv_prc', ''),
  267. 'ik_trn_id' => $this->_jbrequest->get('ik_trn_id', ''),
  268. 'ik_pm_no' => $this->_jbrequest->get('ik_pm_no', ''),
  269. 'ik_desc' => $this->_jbrequest->get('ik_desc', ''),
  270. 'ik_pw_via' => $this->_jbrequest->get('ik_pw_via', ''),
  271. 'ik_cur' => $this->_jbrequest->get('ik_cur', ''),
  272. 'ik_co_rfn' => $this->_jbrequest->get('ik_co_rfn', ''),
  273. 'ik_ps_price' => $this->_jbrequest->get('ik_ps_price', '')
  274. );
  275.  
  276. ksort($myCrcData, SORT_STRING);
  277. array_push($myCrcData, $key);
  278.  
  279. $sgnString = implode(':', $myCrcData);
  280. $myCrc = base64_encode(md5($sgnString, true));
  281. $crc = $this->_jbrequest->get('ik_sign');
  282. $shopid = $this->appParams->get('global.jbzoo_cart_config.ikassa-shopid');
  283. $requestShopid = $this->_jbrequest->get('ik_co_id');
  284. $totalSumm = (float)$this->orderDetails->getTotalPrice();
  285. $requestAmount = (float)$this->_jbrequest->get('ik_am');
  286.  
  287. if ($crc === $myCrc &&
  288. $totalSumm == $requestAmount &&
  289. $requestShopid === $shopid
  290. ) {
  291. // get request vars
  292. $args = array(
  293. 'date' => $this->app->date->create()->toSQL(),
  294. 'system' => $this->systemType,
  295. 'additionalState' => $this->_jbrequest->get('ik_payment_state')
  296. );
  297.  
  298. // execute callback method
  299. $this->orderDetails->callback('paymentCallback', $args);
  300.  
  301. jexit('OK' . $this->orderId);
  302.  
  303. } else {
  304. throw new AppException('No valid hash');
  305. }
  306.  
  307. } else {
  308. throw new AppException('Unknown system');
  309. }
  310. }
  311.  
  312. /**
  313. * Payment success page
  314. */
  315. public function paymentSuccess()
  316. {
  317. $this->_init();
  318.  
  319. // display
  320. $this->getview('payment_success')->addtemplatepath($this->template->getpath())->setlayout('payment_success')->display();
  321. }
  322.  
  323. /**
  324. * Payment success page (manual)
  325. */
  326. public function paymentManual()
  327. {
  328. $this->_init();
  329.  
  330. $appParams = $this->app->data->create($this->appParams->get('global.jbzoo_cart_config.', array()));
  331.  
  332. if ((int)$appParams->get('manual-enabled', 0)) {
  333.  
  334. $this->manual = $this->app->data->create(array(
  335. 'title' => $appParams->get('manual-title'),
  336. 'text' => $appParams->get('manual-text'),
  337. 'message' => $appParams->get('manual-message'),
  338. ));
  339.  
  340. $this->orderDetails->callback('paymentCallback', array(
  341. 'date' => $this->app->date->create()->toSQL(),
  342. 'system' => self::TYPE_MANUAL,
  343. ));
  344.  
  345. if ($appParams->get('manual-message')) {
  346. $this->app->jbnotify->notice($appParams->get('manual-message'));
  347. }
  348.  
  349. } else {
  350. $this->app->jbnotify->error('Manual paymant is disabled');
  351. }
  352.  
  353. // display
  354. $this->getview('payment_success')->addTemplatepath($this->template->getpath())->setlayout('payment_success')->display();
  355. }
  356.  
  357. /**
  358. * Payment fail page
  359. */
  360. public function paymentFail()
  361. {
  362. $this->_init();
  363. $this->app->document->setTitle(JText::_('JBZOO_PAYMENT_FAIL_PAGE_TITLE'));
  364.  
  365. // display
  366. $this->getview('payment_fail')->addtemplatepath($this->template->getpath())->setlayout('payment_fail')->display();
  367. }
  368.  
  369.  
  370. /**
  371. * Action for success order page without payment
  372. */
  373. public function paymentNotPaid()
  374. {
  375. $this->_init();
  376.  
  377. $appParams = $this->app->data->create($this->appParams->get('global.jbzoo_cart_config.', array()));
  378.  
  379. // check custom success page
  380. $successPage = JString::trim($appParams->get('payment-page-success'));
  381. if (!empty($successPage)) {
  382. $successPage = $this->app->jbrouter->addParamsToUrl($successPage, array('order_id' => $this->order->id));
  383. $this->setRedirect($successPage);
  384.  
  385. return;
  386. }
  387.  
  388. $this->getview('payment_success')->addtemplatepath($this->template->getpath())->setlayout('payment_success')->display();
  389. }
  390.  
  391.  
  392. /**
  393. * @param $appParams
  394. * @param $summ
  395. * @return string
  396. */
  397. public function getSecretKey($appParams, $summ)
  398. {
  399. $arrProp = array(
  400. 'ik_co_id' => JString::trim($appParams->get('ikassa-shopid')),
  401. 'ik_am' => $summ,
  402. 'ik_pm_no' => $this->orderId,
  403. 'ik_desc' => 'Order #' . $this->orderId . ' form ' . JUri::getInstance()->getHost()
  404. );
  405.  
  406. if($appParams->get('ikassa-debug',0)){
  407.  
  408. $key = $appParams->get('ikassa-key-test',0);
  409. }else{
  410. $key = $appParams->get('ikassa-key',0);
  411. }
  412.  
  413. ksort($arrProp, SORT_STRING);
  414. array_push($arrProp, $key);
  415. $signString = implode(':', $arrProp);
  416. $sign = base64_encode(md5($signString, true));
  417. return $sign;
  418.  
  419. }
  420. }
  421.  
После проведения данных манипуляций, интеркасса должна нормально работать с новым API. 
 
Документация нового API: https://new.interkas...ocol.v0.9.5.pdf
Инструкция по подключению: https://new.interkas...cal-integration
 
Нормальная тех. поддержка ИНТЕРКАССЫ, будет осуществляться с января 2014 года. Надеемся, что к тому времени сотрудники доведут сервис "до ума" и избавятся от критических ошибок, а пока, еще раз повторяем:
 
Все изменения вы вносите на свой страх и риск. Администрация проекта JBZoo не несет никакой ответственности, если, по причине некорректной работы ИНТЕРКАССЫ, пользователю будет нанесен прямой или косвенный вред. 
 
Все вопросы, связанные с подключением, можете задавать в данном топике. Чем сможем, попытаемся помочь :)

Сообщение отредактировал SmetDenis: 07 June 2014 - 13:36

  • 2
В мире все совсем не сложно, если самому не усложнять.
Разработка индивидуальных решений для ZOO /JBZoo /Joomla

#2 SmetDenis

SmetDenis

Отправлено 27 December 2013 - 16:03


Так же предлагаю к просмотру познавательное видео о конвертирование существующего магазина



  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#3 andrey.koch

andrey.koch

Отправлено 27 December 2013 - 19:11

Добрый день, почему-то после проведения тестового платежа и перенаправления на страницу с информацией об успешном платеже - ошибка 400.

Когда в настройках интеркассы ставлю тип запроса GET, то в адресной строке вижу: 

  1. http://trytyty.ru/index.php?ik_co_id=52b8809cbf4efc486526f69f&ik_inv_id=20163949&ik_inv_st=success&ik_inv_crt=2013-12-27+20%3A07%3A38&ik_inv_prc=2013-12-27+20%3A07%3A38&ik_pm_no=212&ik_pw_via=test_interkassa_test_xts&ik_am=3290.00&ik_co_rfn=3290.0000&ik_ps_price=3490.37&ik_desc=Order+%23212+form+trytyty.ru

  • 0

#4 joejoker

joejoker

Отправлено 27 December 2013 - 19:53

ankoch сказал(а) 27 Дек 2013 - 18:11:

Когда в настройках интеркассы ставлю тип запроса GET, то в адресной строке вижу: 
Доброго времени суток. Все правильно. Это ответ сервера об успешном совешении платежа, он должен обрабатываться по ссылке, которая предусмотрена для страницы взаимодействия RESULT URL. Скорее всего в настройках кассы, у вас стоит не верная ссылка. 
  • 0
В мире все совсем не сложно, если самому не усложнять.
Разработка индивидуальных решений для ZOO /JBZoo /Joomla

#5 andrey.koch

andrey.koch

Отправлено 28 December 2013 - 08:55

Ссылки формировал в JBZoo:

В "URL успешной оплаты" вводил "Success URL" из JBZoo;

В "URL неуспешной оплаты" вводил "Fail URL" из JBZoo;

В "URL взаимодействия" вводил "Result URL (Status URL)" из JBZoo;

А вот в поле "URL ожидания проведения платежа" ничего не вводил, может в этом причина?


  • 0

#6 joejoker

joejoker

Отправлено 29 December 2013 - 18:15

ankoch сказал(а) 28 Дек 2013 - 07:55:

А вот в поле "URL ожидания проведения платежа" ничего не вводил, может в этом причина?

 

ankoch, доброго времени суток.  Нет, причина не в этом. Вы заполняли поле, в настройках корзины, для тестового ключа? Дело в том, что при проведении тестовых платежей, система использует тестовый ключ для формирования цифровой подписи. Если вводили, то тогда сложно сказать что то конкретное, не видя вашего сайта и кода. Если не получится самостоятельно решить проблему, скиньте мне доступы, в личку, к админке и ftp.


  • 0
В мире все совсем не сложно, если самому не усложнять.
Разработка индивидуальных решений для ZOO /JBZoo /Joomla

#7 andrey.koch

andrey.koch

Отправлено 30 December 2013 - 17:40

joejoker сказал(а) 29 Дек 2013 - 17:15:

Вы заполняли поле, в настройках корзины, для тестового ключа?
 К сожалению, нет, вводил обычный ключ. Сейчас обновил JBZoo до 2.1.2, проделаю все заново и попробую с тестовым ключом.
  • 0

#8 joejoker

joejoker

Отправлено 30 December 2013 - 18:00

В настройках корзины JBZoo, после того как вы сделаете изменения в файле basket.xml, у вас появится новое поле, специально для тестового ключа. Т.е. в настройки, нужно вбить оба ключа, боевой и тестовый.


  • 0
В мире все совсем не сложно, если самому не усложнять.
Разработка индивидуальных решений для ZOO /JBZoo /Joomla

#9 andrey.koch

andrey.koch

Отправлено 30 December 2013 - 18:11

joejoker, спасибо. Проблему так и не удалось решить. Не буду пороть горячку, подожду вашего релиза со стабильно работающей интеркассой.

 

P.S. Оказывается я так и вводил ранее - основной ключ в свое поле, а тестовый - в появившееся тестовое.


Сообщение отредактировал ankoch: 30 December 2013 - 18:13

  • 0

#10 i001

i001

Отправлено 22 January 2014 - 13:53

Будет ли хак для 1.6.1?


  • 0





Темы с аналогичным тегами рецепт

Click to return to top of page in style!