Общая информация

Важная информация перед интеграцией расчета ставок в нашей системе.

Некоторые разъяснения:

Ставка - это набор данных на 1 исход в матче, который сделал пользователь. Ставка может входить в состав как одинара, так и экспресса.

Купон - это набор ставок или исходов, которые ставит игрок. Купон состоит из отдельных ставок. Если в купон входит 1 ставка - значит это одинар. Если в купон входит более одной ставки - это экспресс.

 

Чтобы подключить расчет ставок в нашей системе вам необходимо выполнить следующие шаги:

1. Попросить ИД партнера, и зарегистрировать своего личного пользователя в нашей системе. Регистрация пользователя следует регистрировать в таком виде:

Регистрация для сервера тестового (где будет проводиться интеграция)

[email protected] 

[email protected]

или для рабочего сервера, где будет работать ваша система

[email protected]

[email protected]

 

2. После того как пользователь успешно зарегистрирован, Вам нужно авторизоваться в нашей системе с теми данными, которые вы указали при регистрации. Успешной авторизацией является факт, если Вам вернулся объект с ИД вашего пользователя:

{"d":{"UserId":"1344225"}}

Так же при успешной авторизации в ответ приходит кукис  и сессия. Эти данные нужно передавать для того, чтобы сохранить ставку у нас.

 

3. После того как вы авторизовались в нашей системе, вы можете отправлять нам данные, чтобы сохранить ставку или купон.

 

4. После того как произойдет расчет ставки - Вам будет отправлен результат по КУПОНУ (выигрыш, проигрыш или возврат ставки). Обратите внимание - Мы присылаем результат общий по купону, мы не присылаем результат по конкретной ставке. Если Вам необходимо получить данные - Вы можете их взять самостоятельно по АПИ в любой момент времени.

Параметры API

Список параметров для 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

Это поле может принимать два значения.

  • 0 - хорошо. Купон принят.
  • 1 - неудача
fullErrorCode

Если поле "errorCode"  принимает значение 1. Вы можете проверить поле fullErrorCode.

Это поле может принимать разные значения.

  • 0 - хорошо. Купон принят.
  • 1 - Невозможно получить итоговые данные или данные повреждены.
  • 3 - Результат не существует.
  • 99 - Неизвестная ошибка
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 Дата и время расчета