Entegrasyon Özeti
Bu doküman, iframe ile Sportsbook ve Live sayfalarının açılışını, gerekli sorgu parametrelerini, veritabanı şemasını ve kupon limitleri JSON formatını açıklar.
İçindekiler
1) Hızlı Başlangıç
Varsayılan bir Sportsbook açılışı için iframe:
<?php
$ch = curl_init();
$params = [
"site" => "domain.com",
"username" => "test",
"site_id" => "api_id",
"theme" => "theme_1",
"page" => "sportsbook",
"system" => "desktop",
"snows" => "0"
];
$url = "https://alvarontech.com/sportsbook_api/generate_token.php?" . http_build_query($params);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
?>
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no,maximum-scale=1,viewport-fit=cover">
<title>Betting</title>
<style>
html, body {
margin: 0;
padding: 0;
height: 100%;
width: 100%;
}
iframe {
width: 100%;
height: 100%;
border: none;
}
</style>
</head>
<body>
<iframe src="<?=$response?>" frameborder="0"></iframe>
</body>
</html>
2) İframe Parametreleri
| Parametre | Gerekli | Tür | Örnek | Açıklama |
|---|---|---|---|---|
?site |
Evet | string | abc.com |
Alan adınız. https:// veya http:// dahil edilmez. |
?username |
Evet | string | Test123 |
Siteye giriş yapmış üyenin kullanıcı adı. Oturum sisteminize göre değişir. |
?site_id |
Evet | string | 123 |
API tarafından size atanan site kimliği. |
?theme |
Evet | string | theme_1 … theme_4 |
Ön tanımlı temalar. |
?page |
Evet | string | live & sportsbook |
Doğrudan Live & sportsbook sayfası açılışı. |
?system |
Evet | string | desktop & mobile |
Doğrudan Masaüstü & Mobil sayfası açılışı. |
?snows |
Evet | string | 1 |
Kar efekti etkinleştirir (snows=1). |
3) Veritabanı Şeması
users tablosunu oluşturun. İçerisinde username, balance ve coupon sütunları bulunmalıdır.
-- MySQL 5.7+ (JSON destekli) örnek şema
CREATE TABLE users (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(64) NOT NULL UNIQUE,
balance DECIMAL(18,2) NOT NULL DEFAULT 0,
coupon JSON NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- JSON desteği olmayan sistemlerde coupon alanını TEXT olarak da tutabilirsiniz:
-- coupon TEXT NOT NULL4) Kupon Limitleri JSON
coupon sütununun içinde aşağıdaki JSON mutlaka bulunmalıdır (anahtar adları sözleşmenin bir parçasıdır):
{"minodds":"1.20","maxodds":"500","minbalence":"2","maxbalence":"999999999","minmatches":"1","maxmatches":"10","maxgain":"999999999","betcoupon":"Evet"}
Uyarı: Anahtar adları
minbalence/maxbalence şeklindedir. API sözleşmesi gereği aynen bu şekilde kullanın ("balance" değil).
| Anahtar | Tür | Örnek | Açıklama |
|---|---|---|---|
minodds | string (katsayı) | "1.20" | Minimum oran. |
maxodds | string (katsayı) | "500" | Maksimum oran. |
minbalence | string (miktar) | "2" | Kupon için minimum bakiye. |
maxbalence | string (miktar) | "999999999" | Kupon için maksimum bakiye. |
minmatches | string (adet) | "1" | Kupondaki minimum maç sayısı. |
maxmatches | string (adet) | "10" | Kupondaki maksimum maç sayısı. |
maxgain | string (miktar) | "999999999" | Maksimum kazanç limiti. |
betcoupon | string (Evet/Hayır) | "Evet" | Kullanıcı bahis yapabilirmi. |
5) Geçerleme Kuralları
- Alan adınız
siteparametresinde http(s) olmadan gelmelidir (abc.comgibi). - username değeri giriş yapmış kullanıcıya karşılık gelmelidir.
- site_id API tarafından tanımlanmış olmalıdır.
- theme için yalnızca
theme_1…theme_4kabul edilir. - live/sportsbook adreslerinden yalnızca biri kullanılmalıdır.
- coupon JSON’u eksiksiz ve doğru anahtar adlarıyla kayıtlı olmalıdır.
6) Örnek Entegrasyonlar
login.php — Zorunlu API Ucu
Api json çıktıları aynı olmalıdır.
users tablosunu oluşturun. İçerisinde username, balance ve coupon sütunları bulunmalıdır.
$ip = "localhost";
$user = "test";
$password = "şifre";
$db = "test";
try{
$db = new PDO("mysql:host=$ip;dbname=$db",$user,$password);
$db->exec("SET CHARSET UTF8");
}catch(PDOException $e){
die ("404");
}
if (isset($_GET['login'])) {
headers();
$username=$_GET['username'];
$query = $db->query("SELECT * FROM users WHERE username = '$username' ",PDO::FETCH_ASSOC);
$login=$query->fetch();
if(!$login){
$successlogin="Yanlış kullanıcı adı veya parola";
}
if ($login){
$coupon=$login['coupon'];
$successlogin="Giriş Başarılı";
$data=array(
"id"=>$login['id'],
"username"=>$login['username'],
"balance"=>$login['balance'],
);
}
$s[]=array("login"=>$successlogin,"userdata"=>$data,"couponsettings"=>$coupon);
$json = json_encode($s, JSON_UNESCAPED_UNICODE);
print_r($json);
}
if (isset($_GET['coupon'])) {
headers();
$username = $_GET['username'];
$balance = $_GET['balance'];
$query = $db->query("SELECT * FROM users WHERE username = '$username' ",PDO::FETCH_ASSOC);
$login=$query->fetch();
if($balance>$login['balance']){
die("yetersizbakiye");
}
$db->query("update users set balance = balance - '$balance' where username ='$username'");
}
if (isset($_GET['coupon_win'])) {
headers();
$username = $_GET['username'];
$balance = $_GET['balance'];
$db->query("update users set balance = balance + '$balance' where username ='$username'");
}
if (isset($_GET['agent'])) {
headers();
//agent kodlarınızzı burada yazabilirsiniz. Agent dağıtımı yapmak için iletişime geçin.
//die("agentbalanceno");
//die("kullanıcıbulunamadı");
}
function headers(){
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST');
header("Access-Control-Allow-Headers: X-Requested-With");
}
7) Tema Kullanımı
Aşağıdaki değerlerden birini gönderin: theme_1, theme_2, theme_3, theme_4
theme_1
theme_2
theme_3
theme_4
8) Güvenlik & Ek Notlar
- Domain kilidi: İmkan varsa iframe
srctarafındasitedoğrulaması yapın. - Oturum güvenliği:
usernamedeğerini sunucu tarafında üretin; istemci tarafında manipüle edilmesine izin vermeyin.
Her şey hazır! Parametreleri doğru ve eksiksiz girdiğinizde sistem sorunsuz çalışacaktır.