BeT API - Подключение корзины и расчета ставок
Важная информация перед интеграцией расчета ставок в нашей системе.
Некоторые разъяснения:
Ставка - это набор данных на 1 исход в матче, который сделал пользователь. Ставка может входить в состав как одинара, так и экспресса.
Купон - это набор ставок или исходов, которые ставит игрок. Купон состоит из отдельных ставок. Если в купон входит 1 ставка - значит это одинар. Если в купон входит более одной ставки - это экспресс.
Чтобы подключить расчет ставок в нашей системе вам необходимо выполнить следующие шаги:
1. Попросить ИД партнера, и зарегистрировать своего личного пользователя в нашей системе. Регистрация пользователя следует регистрировать в таком виде:
Регистрация для сервера тестового (где будет проводиться интеграция)
или для рабочего сервера, где будет работать ваша система
2. После того как пользователь успешно зарегистрирован, Вам нужно авторизоваться в нашей системе с теми данными, которые вы указали при регистрации. Успешной авторизацией является факт, если Вам вернулся объект с ИД вашего пользователя:
{"d":{"UserId":"1344225"}}
Так же при успешной авторизации в ответ приходит кукис и сессия. Эти данные нужно передавать для того, чтобы сохранить ставку у нас.
3. После того как вы авторизовались в нашей системе, вы можете отправлять нам данные, чтобы сохранить ставку или купон.
4. После того как произойдет расчет ставки - Вам будет отправлен результат по КУПОНУ (выигрыш, проигрыш или возврат ставки). Обратите внимание - Мы присылаем результат общий по купону, мы не присылаем результат по конкретной ставке. Если Вам необходимо получить данные - Вы можете их взять самостоятельно по АПИ в любой момент времени.
Список параметров для API
Папарметр | Описание |
---|---|
{HOST_API} | Урл, на который нужно отправлять запросы. Можно получить у администратора. |
{PARTNER_ID_API} | Номер, который выдется для влядельца апи. Этот номер партнера, индифицирует Вас в шаней системе. Можно получить у администратора. |
Авторизация пользователя:
Url на который отправляется запрос:
{HOST_API}/WebServices/BCService.asmx/LogIn/
Тип отправки данных: POST
Данные для отправки:
Параметр | Описание |
---|---|
login |
Логин пользователя |
password |
Пароль пользователя |
Внимание! Во время авторизации, в ответ приходит cookies
, эту куку нужно сохранить, и при последующих запросах ее нужно отправлять.
В ответ приходит объект:
{"d":{"UserId":"1344225"}}
Внутри него лежит ИД пользователя если авторизация была успешно. Если же авторизация не удалась то, объект будет пустой.
{"d":{}}
$dataSend = array(
"login"=>'[email protected]',
"password"=>"tq354j533ge"
);
$request = WGet::post_request('{HOST_API}/WebServices/BCService.asmx/LogIn/',json_encode($dataSend));
Сохранение купона
Обращаем Ваше внимание, что мы не застявляем слать в купоне реальные суммы ставок. Вы можете указать статическое число, если Вам это необходимо. Например "realAmount"=>"1", всегда будет приходить нам в размере 1USD. Хотя пользователь поставил совершенно другую сумму ставки.
Url на который отправляется запрос:
{HOST_API}/bet/place/
Параметр | Описание |
---|---|
list_bets |
Бетпоинтеры ставок - Что такое бетпоинтер |
realAmount |
Сумма ставки |
currency |
Валюта купона |
lang |
Язык на котором сохраняем ставку |
remote_host |
Url на который мы потом будем отсылать результаты расчета купона |
rate_mode |
Вариант приема купона, в зависимости от изменения коэффициента. reject - не принимать при изменении коэффициента. accept - принимать в любом случаи. По умолчанию accept. |
Обратите внимание, что нужно указать хост вашего сайта (тестового или рабочего, именно на этот урл будут отправляться результаты по ставке.)
remote_host - нужно указывать без слеша, просто урл сайта.
Отправка будет осуществляться на урл: hostUrl/api/bet/result
Пример отправки данных для ОДИНАРА:
$dataSend = array(
"data"=>array(
"list_bets"=>array('live#187183313|17|9|0.5#1.02'),
"realAmount"=>"150",
"currency"=>"USD",
"lang"=>"ru",
"remote_host"=>"http://Yoursite.name.com",
"rate_mode"=>"accept"
)
);
$request = WGet::post_request('{HOST_API}/bet/place/',json_encode($dataSend));
Пример отправки данных для ЕКСПРЕССА:
$dataSend = array(
"data"=>array(
"list_bets"=>array('live#187183313|17|9|0.5#1.02', 'line#217118313|1|1|0#3.12'),
"realAmount"=>"150",
"currency"=>"USD",
"lang"=>"ru",
"remote_host"=>"http://Yoursite.name.com",
"rate_mode"=>"accept"
)
);
$request = WGet::post_request('{HOST_API}/bet/place/',json_encode($dataSend));
Ответ по присланной ставке ОДИНАР
ВАЖНО!!!
Вы можете сохранить данные на свое усмотрение, но главное сохранить: betCode
, именно по нему и будет приходить статус ставки
{
"betCode": "607vtec620",
"status": 1,
"errorCode": 0,
"fullErrorCode": 0,
"d": {
"BetHeadDetail": {
"LiveType": "Обычный",
"AmountOut": 30.85,
"CoefOrig": 1.99,
"BetCode": "607vtec620",
"BetDate": 1581249549000,
"Bet": 15.5,
"Status": 1,
"CountEvents": 1,
"BetId": "607vtec620",
"Coef": 1.99,
"IsLive": false,
"PosWin": 30.85
}
},
"__type": "BR.Web.BLL.Objects.Bets.BetInfo",
"BetsContentDataList": [
{
"LinesId": 224751652,
"CountResults": 0,
"Outcome": 1,
"TournamentName": "Чемпионат Испании. Примера",
"IsBonus": false,
"CoefOrig": 1.99,
"Coef": 1.99,
"BetName": "П1",
"Result": "Ещё нет результата",
"SportId": 1,
"IsLive": true,
"EventDate": 1581245100000,
"Teams": "Эспаньол - Мальорка"
}
],
"errorMessage": ""
}
Ответ по присланной ставке ЕКСПРЕСС
ВАЖНО!!!
Вы можете сохранить данные на свое усмотрение, но главное сохранить: betCode
, именно по нему и будет приходить статус ставки
{
"betCode": "76r9i02g9x",
"status": 1,
"errorCode": 0,
"fullErrorCode": 0,
"d": {
"BetHeadDetail": {
"LiveType": "Обычный",
"AmountOut": 1843.5,
"BetCode": "76r9i02g9x",
"BetDate": 1597146488000,
"Bet": 150,
"Status": 1,
"CountEvents": 2,
"BetId": "76r9i02g9x",
"Coef": 12.29,
"PosWin": 1843.5
}
},
"__type": "BR.Web.BLL.Objects.Bets.BetInfo",
"BetsContentDataList": [{
"LinesId": 250614983,
"Outcome": 1,
"TournamentName": "Чемпионат Китая",
"Coef": 4.82,
"BetName": "Тотал (2.5) Б",
"Result": "Ещё нет результата",
"SportId": 1,
"IsLive": true,
"EventDate": 1597139100000,
"Teams": "Шицзячжуан Эвер Брайт - Тяньцзинь Тэда",
}, {
"LinesId": 250612386,
"Outcome": 1,
"TournamentName": "КВО. Чемпионат Южной Кореи",
"Coef": 2.55,
"BetName": "Фора 1 (-4.5)",
"Result": "Ещё нет результата",
"SportId": 5,
"IsLive": true,
"EventDate": 1597138200000,
"Teams": "Дусан Беарс - Самсунг Лайонс",
}],
"errorMessage": ""
}
Описание полей при ответе:
Параметр | Описание |
---|---|
betCode |
Уникальный номер ставки в нашей системе |
errorCode |
Это поле может принимать два значения.
|
fullErrorCode |
Если поле "errorCode" принимает значение 1. Вы можете проверить поле fullErrorCode. Это поле может принимать разные значения.
|
errorMessage |
Хранятся метки системных ошибок в текстовом фомате error_exist_bet - такого исхода больше нет error_repeat_bet_data - ставки из одного матча на разные ивенты. Например, П2 и Тотал больше 1 добавлены в экспресс с одного и того же матча. error_block_bet_data - на данный момент ставка временно заблокирована для приема. |
AmountOut - PosWin |
Сумма выигрыша купона |
betCode - BetId |
Уникальный номер ставки в нашей системе |
Bet |
Сумма ставки пользователем |
CountEvents |
Количество ставок в купоне |
Coef |
Коэфициент на исход |
IsLive |
Где была сделана ставка. В линии или в Лайве. Может принимать значения: false или true |
LinesId |
Айди матча |
EventDate |
Дата матча |
Отправка результатов расчета и статусов по купону
Когда добавлена ставка в нашу систему бедет расчитана, Вам отправляется результат по КУПОНУ. Обратите внимание, Вам приходит РЕЗУЛЬТАТ или СТАТУС ПО КУПОНУ. Если Вам необходимы данные по ставкам из купона, смотрите АПИ ниже.
Пример отправки данных:
{
"remote_host": "https://sitepartner_url.com",
"Heads": [{
"KeyHead": {
"Id": "344143",
"BarCode": "x9c52i8411"
},
"Status": 2,
"ExtStatus": 0,
"AmountOut": 11130,
"DateRecive": "1597075782"
}]
}
ЕСЛИ НЕСКОЛЬКО СТАВОК:
{
"remote_host": "https://sitepartner_url.com",
"Heads": [{
"KeyHead": {
"Id": "313",
"BarCode": "75vz48t935"
},
"Status": 2,
"ExtStatus": 0,
"AmountOut": 19.85,
"DateRecive": "1592937968"
}, {
"KeyHead": {
"Id": "312",
"BarCode": "77i0r6e15t"
},
"Status": 2,
"ExtStatus": 0,
"AmountOut": 12.51,
"DateRecive": "1592937280"
}]
}
Вам нужно проверить поля <Status> и при необходимости ExtStatus.
Это поле <Status> может принимать разные значения.
- 2 - купон выигран
- 4 - купон рассчитывается как проигрыш
Это поле <ExtStatus> может принимать два значения.
- 0 - купон не имеет изменений.
- 1 - Одна или несколько игр в купоне рассчитываются с изменением коэффициента.
ExtStatus = 1.
Например, это происходит, когда игра была отменена. Игра будет рассчитываться с коэффициентом 1.
Подводим итог по статусам:
Status = 2 и ExtStatus = 0 - Выигрыш;
Status = 4 и ExtStatus = 0 - Проигрыш;
Status = 2 и ExtStatus = 1 - Возврат (по умолчанию указываем коэфициент 1)
ВАЖНО!!!
Вам нужно пересчитать купон, если мы отправим новый статус.
Например. Мы отправили статус 4. А позже мы можем отправить статус 2. Вам нужно добавить деньги пользователю.
А также. Мы отправили статус 2. А позже мы можем отправить статус 4. Вам следует списать деньги пользователя. Это связано с тем, что иногда приходит не верный счет матча. В таком случаи мы в ручном режиме выполняем пересчет
Параметр | Описание |
---|---|
Id |
ИД ставки в нашей системе, можно не брать во внимание. |
BarCode |
Уникальный номер купона |
Status |
Статус купона. Может быть Выигрыш = 2, Проигрыш = 4, Возврат. |
ExtStatus |
Статус отпределения купона, если был возврат. МОжет принимать два значения. 0 и 1. |
AmountOut |
Сумма возможного выигрыша |
DateRecive |
Дата и время расчета |