forum.bitel.ru
http://forum.bitel.ru/

[6.2] Интеграция с внешней формой
http://forum.bitel.ru/viewtopic.php?f=39&t=11059
Страница 1 из 1

Автор:  borisk [ 02 ноя 2015, 16:56 ]
Заголовок сообщения:  [6.2] Интеграция с внешней формой

Добрый день!

Интересует вопрос интеграции модуля с внешней формой. Например на нашем официальном сайте мы предоставляем форму для заполнения реквизитов платежа, отправляем ее (у нас aurispay) с помощью Arius API, а ответ получаем в биллинг и он проводит платеж. Возможно ли такое? Или только через какой-то буфер вроде Arius API <-- наш скрипт --> Card?

Автор:  Artur [ 02 ноя 2015, 18:31 ]
Заголовок сообщения:  Re: [6.2] Интеграция с внешней формой

В нашем ЛК при обращении к серверу биллинга перед отправкой запроса к arius формируется идентификатор платежа, который отправляется в arius и затем приходит от них при уведомлении о статусе платежа. Биллинг по нему находит транзакцию, меняет статус и заносит платеж на договор. Вашу схему возможно сделать тремя вариантами:
1) Вызвать ActionBVCom, передав ему набор параметров. Наш ЛК так и делает
2) Создать некий, как вы выразились "буфер", который будет с помощью нашего апи добавлять транзакцию модуля в БД.
3) Вставить самим с помощью sql-запроса в таблицу bvcom_transaction_<mid> запись с суммой и кодом договора. id вставленной записи нужно будет передать в arius, предварительно отформатировав (см. доку)

Автор:  borisk [ 02 ноя 2015, 19:49 ]
Заголовок сообщения:  Re: [6.2] Интеграция с внешней формой

Цитата:
1) Вызвать ActionBVCom, передав ему набор параметров. Наш ЛК так и делает

Вот здесь можно чуть подробнее. Что это, как вызывать из внешнего приложения или где прочитать подробнее?

Автор:  dimOn [ 02 ноя 2015, 22:21 ]
Заголовок сообщения:  Re: [6.2] Интеграция с внешней формой

о чём почитать?
вызывается экшен ActionBVCom по урлу, как это делается на странице в ЛК

Автор:  borisk [ 02 ноя 2015, 22:50 ]
Заголовок сообщения:  Re: [6.2] Интеграция с внешней формой

Вот про это и прочитать. Какой набор параметров требуется передать. В какой последовательности. Или делать реверс инжиниринг?

Автор:  skn [ 03 ноя 2015, 02:17 ]
Заголовок сообщения:  Re: [6.2] Интеграция с внешней формой

borisk писал(а):
Вот про это и прочитать. Какой набор параметров требуется передать. В какой последовательности. Или делать реверс инжиниринг?


это внутрений механизм, он ни где не описан и его постоянство при обновлениях не гарантируется.
более того при обращение к этому акшену сервер затребует авторизацию клиента (будет выведена страница авторизации ЛК)

Автор:  borisk [ 03 ноя 2015, 04:38 ]
Заголовок сообщения:  Re: [6.2] Интеграция с внешней формой

Ясно, то есть нам не подходит.
А вариант 3 - насколько реально его использование?

Автор:  skn [ 03 ноя 2015, 04:50 ]
Заголовок сообщения:  Re: [6.2] Интеграция с внешней формой

borisk писал(а):
А вариант 3 - насколько реально его использование?


в принципе реально, только как то надо разрулить переход обратно с сайта ПС

Автор:  borisk [ 03 ноя 2015, 14:53 ]
Заголовок сообщения:  Re: [6.2] Интеграция с внешней формой

И не только переход. Кроме заполнения, собственно, таблицы bvcom надо же еще изменить таблицы, отвечающие за баланс, и, самое главное, каким-то образом выстрелить события о приходе платежа и изменении баланса :/

Автор:  skn [ 03 ноя 2015, 15:29 ]
Заголовок сообщения:  Re: [6.2] Интеграция с внешней формой

borisk писал(а):
И не только переход. Кроме заполнения, собственно, таблицы bvcom надо же еще изменить таблицы, отвечающие за баланс, и, самое главное, каким-то образом выстрелить события о приходе платежа и изменении баланса :/


от платежной системы приходит уведомление на сервлет биллинга о платеже, при этом происходит изменение статуса транзакции, занесение платежа, и обновление баланса и статусов

меня больше другой вопрос интересует, как вы хотите авторизовать клиента в этой внешней форме?

Автор:  borisk [ 03 ноя 2015, 16:15 ]
Заголовок сообщения:  Re: [6.2] Интеграция с внешней формой

По IP, сравнивая с информацией о текущей сессии в биллинге

Автор:  skn [ 03 ноя 2015, 17:38 ]
Заголовок сообщения:  Re: [6.2] Интеграция с внешней формой

borisk писал(а):
По IP, сравнивая с информацией о текущей сессии в биллинге


понятно

Автор:  borisk [ 05 ноя 2015, 15:50 ]
Заголовок сообщения:  Re: [6.2] Интеграция с внешней формой

Хорошо, господа, а если нам пойти по пути
http://docs.bitel.ru/display/BGBILLING62/Web+API

Или для bvcom это пока тоже все глухо?

Автор:  borisk [ 05 ноя 2015, 16:06 ]
Заголовок сообщения:  Re: [6.2] Интеграция с внешней формой

Цитата:
2) Создать некий, как вы выразились "буфер", который будет с помощью нашего апи добавлять транзакцию модуля в БД.


А вы здесь про какой API говорите? Какую доку смотреть?

Автор:  Artur [ 05 ноя 2015, 19:11 ]
Заголовок сообщения:  Re: [6.2] Интеграция с внешней формой

borisk писал(а):
Цитата:
2) Создать некий, как вы выразились "буфер", который будет с помощью нашего апи добавлять транзакцию модуля в БД.


А вы здесь про какой API говорите? Какую доку смотреть?


Посмотрите вот эту тему.

Автор:  borisk [ 16 ноя 2015, 17:06 ]
Заголовок сообщения:  Re: [6.2] Интеграция с внешней формой

Господа, а можно получить описание BVComTransactionManager/BVComTransation? Точнее именно этапы прохождения транзакции. Как это делается в ЛК.

Автор:  skn [ 16 ноя 2015, 18:08 ]
Заголовок сообщения:  Re: [6.2] Интеграция с внешней формой

borisk писал(а):
Господа, а можно получить описание BVComTransactionManager/BVComTransation? Точнее именно этапы прохождения транзакции. Как это делается в ЛК.


а платежная система не предоставляет описание протокола?

Автор:  borisk [ 16 ноя 2015, 21:02 ]
Заголовок сообщения:  Re: [6.2] Интеграция с внешней формой

Предоставляет. Изучаю.
Но, если я правильно понял, BVComTransactionManager не имеет никакого отношения к платежной системе? То есть он с платежной системой не взаимодействует, а просто помещает данные о тразакции в БД и изменяет баланс соответсвующим образом. Правильно? А непосредственно с платежной системой у вас взаимодействует какой-то свой класс, в последствии вызывающий BVComTransactionManager с заполненным соответсвующим образом BVComTransaction

Автор:  skn [ 17 ноя 2015, 00:59 ]
Заголовок сообщения:  Re: [6.2] Интеграция с внешней формой

borisk писал(а):
Предоставляет. Изучаю.
Но, если я правильно понял, BVComTransactionManager не имеет никакого отношения к платежной системе? То есть он с платежной системой не взаимодействует, а просто помещает данные о тразакции в БД и изменяет баланс соответсвующим образом. Правильно? А непосредственно с платежной системой у вас взаимодействует какой-то свой класс, в последствии вызывающий BVComTransactionManager с заполненным соответсвующим образом BVComTransaction


да, есть акшен формирующий страницу для ЛК и он же взаимодействует с ПС регистрируя транзакцию в ПС и перенаправляя клиента на сайт ПС
после оплаты ПС делает запрос на специальный сервлет в биллинге с результатами платежа (сервлет изменяет статус транзакции, заносит платеж и обновляет баланс)

Автор:  maxst-net [ 31 июл 2017, 17:29 ]
Заголовок сообщения:  Re: [6.2] Интеграция с внешней формой

Автору темы удалось продвинуться в данном вопросе? А то у нас тоже возникла такая же необходимость.

Автор:  maxst-net [ 31 июл 2017, 17:41 ]
Заголовок сообщения:  Re: [6.2] Интеграция с внешней формой

skn писал(а):
borisk писал(а):
Предоставляет. Изучаю.
Но, если я правильно понял, BVComTransactionManager не имеет никакого отношения к платежной системе? То есть он с платежной системой не взаимодействует, а просто помещает данные о тразакции в БД и изменяет баланс соответсвующим образом. Правильно? А непосредственно с платежной системой у вас взаимодействует какой-то свой класс, в последствии вызывающий BVComTransactionManager с заполненным соответсвующим образом BVComTransaction


да, есть акшен формирующий страницу для ЛК и он же взаимодействует с ПС регистрируя транзакцию в ПС и перенаправляя клиента на сайт ПС
после оплаты ПС делает запрос на специальный сервлет в биллинге с результатами платежа (сервлет изменяет статус транзакции, заносит платеж и обновляет баланс)


Подскажите, как вызвать акшен НЕ из личного кабинета. (Если это вообще возможно)

Автор:  skn [ 31 июл 2017, 19:06 ]
Заголовок сообщения:  Re: [6.2] Интеграция с внешней формой

для вызова акшена требуется логин и пароль от ЛК клиента....

Автор:  maxst-net [ 31 июл 2017, 19:23 ]
Заголовок сообщения:  Re: [6.2] Интеграция с внешней формой

skn писал(а):
для вызова акшена требуется логин и пароль от ЛК клиента....

Допустим имеются у меня логин: test123, пароль:456789 и cid 20305. Каким образом и куда их отправить что бы пользователя перекинуло на сайт оплаты?

Автор:  skn [ 01 авг 2017, 11:52 ]
Заголовок сообщения:  Re: [6.2] Интеграция с внешней формой

а что в ЛК не видно запроса?

Автор:  maxst-net [ 01 авг 2017, 12:24 ]
Заголовок сообщения:  Re: [6.2] Интеграция с внешней формой

skn писал(а):
а что в ЛК не видно запроса?

К великому сожалению не знаю как это посмотреть.

Автор:  skn [ 01 авг 2017, 12:42 ]
Заголовок сообщения:  Re: [6.2] Интеграция с внешней формой

например в access.log сервера биллинга

Автор:  maxst-net [ 16 авг 2017, 14:41 ]
Заголовок сообщения:  Re: [6.2] Интеграция с внешней формой

Может кому пригодится.
Код:
<?php

$url = 'http://[IP_SERVER]:[PORT_SERVER]/bgbilling/executer/json/ru.bitel.bgbilling.modules.bvcom/[MODULE_ID]/BVComService';

$data = array(
          'method'     =>  'beginTransaction',
          'user'       =>  array('user'   => '[BGB_USER]',
                            'pswd'   => '[PSWD_USER]'),
          'params'     =>  array('contractId'   =>   [CID], 
                            'amount'  =>  [SUMMA],
                            'params'  => array('map'  => 
                       array('ipAddress'  =>  '127.0.0.1', 'resultUrl'  =>  '[REDIRECT_URL]')))
);

$content = json_encode($data);

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER,array("Content-type: application/json"));
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $content);
$json_response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);

if ( $status != 200 ) {
    die("Error:");
}

curl_close($curl);

$response = json_decode($json_response, true);
header ('Location:'.$response['data']['url']);
                
?>


Код:
[IP_SERVER] - ip Вашего БГБилинг сервера
[PORT_SERVER] - его порт
[MODULE_ID] - id модуля BVCom
[BGB_USER] - пользователь БГБиллинга
[PSWD_USER] - его пароль
[CID] - cid договора который хотим пополнить
[SUMMA] - сумма пополнения
[REDIRECT_URL] - url для перехода при успешном пополнении

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/