lostyazilim
tr.link

Php Api Yapımı – SMM Panellerin Api Mantığı

9 Mesajlar 3.544 Okunma
lstbozum
tr.link

Creatingz Creatingz Creatingz | Dijital Ajans Kullanıcı
  • Üyelik 12.02.2017
  • Yaş/Cinsiyet 26 / E
  • Meslek Dijital Ajans
  • Konum Ankara
  • Ad Soyad C** S**
  • Mesajlar 740
  • Beğeniler 454 / 169
  • Ticaret 40, (%100)
Herkese yeniden merhaba bu gün sizlere sosyal medya panellerinde kullanılan php apiler hakkında bilgi verip nasıl php api yapılabileceğini ve kodları ile beraber detaylı bir şekilde anlatıp kodlarını sizlerle paylaşacağım . Öncelikle smm panellerde kullanılan api şöyle çalışır ;

Bir üyeler tablosu düşünelim bu tablonun adı uyeler olsun .



Gördüğünüz gibi tabloda id , kadi, sifre , api ve bakiye alanları bulunuyor . Bizim burada kullanacağımız veya bize gereken alan sadece api bölümü .

Not: Veritabanı Bağlantısı Yapmayı Unutmayın !

try {
$db = new PDO("mysql:host=localhost;dbname=veritabani", "ibrahimozdemir", "sifre"); } catch ( PDOException $e ){ print $e->getMessage();
}
?>


Şimdi öncelikle sizlere mantığı anlatacağım . Mantık basit bir get sisteminden ibaret . Örneğin bir veriyi silerken id den get yaparak o id yi siliyorsunuz işte aynı mantık api işlemi içinde geçerli .

$query = $db->prepare("DELETE FROM uyeler WHERE uye_id = :id");
$delete = $query->execute(array( 'id' => $_GET['id'] ));

Yukarıda vermiş olduğum kodu üye işlemlerinde üyeyi silmek için kullanabilirsiniz . ?id=1 mesela 1 id li kullanıcıyı siler .
'' Bizim bu kodda işimize yarayan şey ne ? '' Diyebilirsiniz . Ben size mantıkları anlatıyorum . Böyle basit kodlarda veya büyük projelerde eğer mantığı önceden düşünüp işe öyle başlarsanız sorunsuz bir proje ortaya çıkarırsınız . Şimdi api bölümünde üyeye random bir kod atayalım

$sayi_tut=rand(1,1000000000000000000);

Bu kod sayesinde üye işlemleri gerçekleşirken api tablosuna random bir sayı oluşturabilirsiniz . Zaten smm panellerde api kodunuzu kimseyle paylaşmayın demelerinin sebebide bu . Hiç bir ip güvenlik önlemi olmadığından dolayı api ye gelen her get veya post işlemi rahatlıkla yapılabiliyor .

$sonbakiye = '50';
$sql = "UPDATE uyeler SET bakiye=? WHERE api='{$_GET['api']}'";
$query = $db->prepare($sql);
$sorgu = $query->execute(array($sonbakiye));
echo $sorgu;


$sonbakiye değişkenini siz belirlersiniz mesela veya bu apiyi kullanarak insert işlemi yaparsınız yeni ürün sipariş verdirebilirsiniz .

SET bakiye=? WHERE api='{$_GET['api']}

bu kodda anlatmak istediği ise bakiye alanını seçiyor , (WHERE) ama nerdeki ? bundan bahsediyor bu kod .

mesela yukarıdaki kodu api.php dosyasına eklerseniz ?api=kullaniciapisi şeklinde gelen tüm isteklerde üyenin bakiyesi güncellenir. Ve ekrana id si yazdırılır . Aslında mantık bu kadar basittir . Şimdilik sadece update işlemini gerçekleştirdim eğer istek olursa insert işlemleri ile sipariş ve önerilerinizi göz önüne alarak isteklerinize göre konular üretebilirim .

Saygılar.

Kaynak : https://www.ibrahimozdemir.net/php-api-yapimi-smm-panellerin-api-mantigi/
 

 

wmaraci
reklam

alperenyld alperenyld Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 11.09.2016
  • Yaş/Cinsiyet 29 / E
  • Meslek Bilgisayar Mühendisi
  • Konum İstanbul Anadolu
  • Ad Soyad A** Y**
  • Mesajlar 1302
  • Beğeniler 331 / 227
  • Ticaret 34, (%97)
Hazır yapılmış varmi
Creatingz

kişi bu mesajı beğendi.

Creatingz Creatingz Creatingz | Dijital Ajans Kullanıcı
  • Üyelik 12.02.2017
  • Yaş/Cinsiyet 26 / E
  • Meslek Dijital Ajans
  • Konum Ankara
  • Ad Soyad C** S**
  • Mesajlar 740
  • Beğeniler 454 / 169
  • Ticaret 40, (%100)

alperenyld adlı üyeden alıntı

Hazır yapılmış varmi

Burada anlatım var , sadece mantık ve kodları verdim smm panel satışı forumda bir çok kişi tarafından yapılmaktadır.
 

 

MehmetMasa MehmetMasa WM Aracı Kullanıcı
  • Üyelik 05.10.2016
  • Yaş/Cinsiyet 26 / E
  • Meslek Yazılımcı
  • Konum İzmir
  • Ad Soyad M** M**
  • Mesajlar 1946
  • Beğeniler 552 / 554
  • Ticaret 40, (%100)
Hocam ellerinize sağlık ama kendi yazdığım api olmasına rağmen anlatmak istediğinizi kafamda canlandıramadım. Bu işlere yeni başlayanlar için çok yetersiz kalmış diyebilirim.

Not : Kullanıcı sisteme kayıt edilirken ona özel MD5 ile şifrelenmiş api key tanımlanır.
Sonra istenilen bilgileri çekeceğiniz ( POST ) ile alacağınız kendi apinizi yazarsınız.

POST gönderme işlemi için siteler size PHP kodu sağlarlar.
ÖRN :

------------- ! CODE ! ----------------

class Api
{
public $api_url = 'https://www.mmbayi.com/api'; // API URL
public $api_key = '4bfdcfb04c9569b44238f6gf96d28594'; // Your API key

public function order($data) { // add order
$post = array_merge(array('key' => $this->api_key, 'action' => 'add'), $data);
return json_decode($this->connect($post));

}

public function status($order_id) { // get order status
return json_decode($this->connect(array(
'key' => $this->api_key,
'action' => 'status',
'order' => $order_id,
)));
}

private function connect($post) {
$_post = Array();
if (is_array($post)) {
foreach ($post as $name => $value) {
$_post[] = $name.'='.urlencode($value);
}
}

$ch = curl_init($this->api_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
if (is_array($post)) {
curl_setopt($ch, CURLOPT_POSTFIELDS, join('&', $_post));
}
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)');
$result = curl_exec($ch);

if (curl_errno($ch) != 0 && empty($result)) {
$result = false;
}
curl_close($ch);
return $result;
}
}

------------- ! CODE ! ----------------

Şeklinde sağlanan php kodunu kullanarak istenen siteye post gönderme işlemi yapılır.
Gönderilen post işleminde ;

------------- ! CODE ! ----------------

public function order($data) { // add order
$post = array_merge(array('key' => $this->api_key, 'action' => 'add'), $data);
return json_decode($this->connect($post));

------------- ! CODE ! ----------------


Sipariş ekleme bölümü burasıdır. Yani api key ve $data bölümüne gönderdiğiniz bilgileri url'ye post eder. URL bölümünde bu bilgiler alınır ve işlemler yapılır.
İlk olarak gönderilen post hangi işlemi yapacağı kontrol edilir (Sipariş verme, Bakiye sorgulama, Sipariş durumu sorgulama vs)
Örneğin sipariş verme diyelim. Api'den kullanıcı bulunur ve bütün kullanıcı bilgileri çekilir. Sonra servis id'ye göre servis bulunur gerekli bilgiler alınır, miktarlar servisin miktarlarına uygun mu diye kontrol edilir, kullanıcının bakiyesi var mı diye kontrol edilir eğer sipariş girmesi için bir sorun yoksa sipariş alınır ve bakiyesi güncellenir.

Üst tarafta bahsettiğim kod;
------------- ! CODE ! ----------------

if ( $actionType == 'add' ) # Sipariş Ekleme
{
$user_control = $baglanti->prepare("SELECT count(user_id) FROM user WHERE ApiKey = ?", array($apiKey));
if ($user_control > 0)
{

------------- ! CODE ! ----------------
Post işlemleri aldıktan sonra bu şekilde sipariş işlemlerine göre algortmayı kurmalısınız.
 

 

wmaraci
wmaraci

Creatingz Creatingz Creatingz | Dijital Ajans Kullanıcı
  • Üyelik 12.02.2017
  • Yaş/Cinsiyet 26 / E
  • Meslek Dijital Ajans
  • Konum Ankara
  • Ad Soyad C** S**
  • Mesajlar 740
  • Beğeniler 454 / 169
  • Ticaret 40, (%100)

mehmetmasa adlı üyeden alıntı

Hocam ellerinize sağlık ama kendi yazdığım api olmasına rağmen anlatmak istediğinizi kafamda canlandıramadım. Bu işlere yeni başlayanlar için çok yetersiz kalmış diyebilirim.

Not : Kullanıcı sisteme kayıt edilirken ona özel MD5 ile şifrelenmiş api key tanımlanır.
Sonra istenilen bilgileri çekeceğiniz ( POST ) ile alacağınız kendi apinizi yazarsınız.

POST gönderme işlemi için siteler size PHP kodu sağlarlar.
ÖRN :

------------- ! CODE ! ----------------

class Api
{
public $api_url = 'https://www.mmbayi.com/api'; // API URL
public $api_key = '4bfdcfb04c9569b44238f6gf96d28594'; // Your API key

public function order($data) { // add order
$post = array_merge(array('key' => $this->api_key, 'action' => 'add'), $data);
return json_decode($this->connect($post));

}

public function status($order_id) { // get order status
return json_decode($this->connect(array(
'key' => $this->api_key,
'action' => 'status',
'order' => $order_id,
)));
}

private function connect($post) {
$_post = Array();
if (is_array($post)) {
foreach ($post as $name => $value) {
$_post[] = $name.'='.urlencode($value);
}
}

$ch = curl_init($this->api_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
if (is_array($post)) {
curl_setopt($ch, CURLOPT_POSTFIELDS, join('&', $_post));
}
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)');
$result = curl_exec($ch);

if (curl_errno($ch) != 0 && empty($result)) {
$result = false;
}
curl_close($ch);
return $result;
}
}

------------- ! CODE ! ----------------

Şeklinde sağlanan php kodunu kullanarak istenen siteye post gönderme işlemi yapılır.
Gönderilen post işleminde ;

------------- ! CODE ! ----------------

public function order($data) { // add order
$post = array_merge(array('key' => $this->api_key, 'action' => 'add'), $data);
return json_decode($this->connect($post));

------------- ! CODE ! ----------------


Sipariş ekleme bölümü burasıdır. Yani api key ve $data bölümüne gönderdiğiniz bilgileri url'ye post eder. URL bölümünde bu bilgiler alınır ve işlemler yapılır.
İlk olarak gönderilen post hangi işlemi yapacağı kontrol edilir (Sipariş verme, Bakiye sorgulama, Sipariş durumu sorgulama vs)
Örneğin sipariş verme diyelim. Api'den kullanıcı bulunur ve bütün kullanıcı bilgileri çekilir. Sonra servis id'ye göre servis bulunur gerekli bilgiler alınır, miktarlar servisin miktarlarına uygun mu diye kontrol edilir, kullanıcının bakiyesi var mı diye kontrol edilir eğer sipariş girmesi için bir sorun yoksa sipariş alınır ve bakiyesi güncellenir.

Üst tarafta bahsettiğim kod;
------------- ! CODE ! ----------------

if ( $actionType == 'add' ) # Sipariş Ekleme
{
$user_control = $baglanti->prepare("SELECT count(user_id) FROM user WHERE ApiKey = ?", array($apiKey));
if ($user_control > 0)
{

------------- ! CODE ! ----------------
Post işlemleri aldıktan sonra bu şekilde sipariş işlemlerine göre algortmayı kurmalısınız.


Ben iphone 6 yı tanıtmışım siz 6s yi tanıtmışsınız . Ortada pek fark yok ben sizin kodlarıda anladım . Sizin anlayamamanız garip ...
 

 

MehmetMasa MehmetMasa WM Aracı Kullanıcı
  • Üyelik 05.10.2016
  • Yaş/Cinsiyet 26 / E
  • Meslek Yazılımcı
  • Konum İzmir
  • Ad Soyad M** M**
  • Mesajlar 1946
  • Beğeniler 552 / 554
  • Ticaret 40, (%100)
Creatingz Kodlar gayet açık zaten anlamanız çok normal birşey.
Sizin yaptığınıza yanlış demedim veya kötülemedim daha anlaşılır yazabilirdiniz bende konuya kendimden bir parça eklemek istedim.

Öncelikle
" $sonbakiye değişkenini siz belirlersiniz mesela veya bu apiyi kullanarak insert işlemi yaparsınız yeni ürün sipariş verdirebilirsiniz ." Bu bölümü anlamadım. Siz konunuzda iphone 6 telefondur ekranı açıp kullanırsınız demişsiniz ama nasıl kullanılcağını söylememişsiniz :)

Farklı konulardan örnek vermek yerine apinin bir kısmını yazmak veya algoritmasını kurup adım adım anlatmak çok daha yararlı olacaktır.
Sildirme, ekleme gibi sql cümlelerini herkes yazdırabilir önemli olan yapılacak işlemlerin sırası.
Creatingz Gencpanel

kişi bu mesajı beğendi.

salihx1983 salihx1983 WM Aracı Kullanıcı
  • Üyelik 13.02.2014
  • Yaş/Cinsiyet 41 / E
  • Meslek Serbest meslek
  • Konum Ankara
  • Ad Soyad S** E**
  • Mesajlar 152
  • Beğeniler 29 / 9
  • Ticaret 0, (%0)
Merhabalar sitede ücretsiz satılan bir script var ona api ekleme konusunda üçretli yardımcı olurmusunuz
 

 

KamilHanci KamilHanci WM Aracı Kullanıcı
  • Üyelik 18.07.2019
  • Yaş/Cinsiyet 27 / E
  • Meslek Web Tasarım / Programlama
  • Konum İzmir
  • Ad Soyad K** H**
  • Mesajlar 553
  • Beğeniler 29 / 172
  • Ticaret 4, (%100)
Anlamıcak bişey yok ki arkadaşlar, kullanıcı kayıt, api key ile işlemler.
İnsert ile eğer bakiye yeterli ise sipariş al :
bakiyeyi kontrol et eğer yeterli ise bakiye den düşüp islemler tablosuna İnsert yap.
Bir tane cron tanımla 2 dakikada bir işlemleri kontrol edip gönderim sağlasın 🤫
Creatingz

kişi bu mesajı beğendi.

arda24 arda24 Sosyal Medya Kullanıcı
  • Üyelik 02.05.2020
  • Yaş/Cinsiyet 21 / E
  • Meslek Sosyal Medya
  • Konum İstanbul Avrupa
  • Ad Soyad U** K**
  • Mesajlar 70
  • Beğeniler 8 / 9
  • Ticaret 0, (%0)

MehmetMaşa adlı üyeden alıntı

Creatingz Kodlar gayet açık zaten anlamanız çok normal birşey.
Sizin yaptığınıza yanlış demedim veya kötülemedim daha anlaşılır yazabilirdiniz bende konuya kendimden bir parça eklemek istedim.

Öncelikle
" $sonbakiye değişkenini siz belirlersiniz mesela veya bu apiyi kullanarak insert işlemi yaparsınız yeni ürün sipariş verdirebilirsiniz ." Bu bölümü anlamadım. Siz konunuzda iphone 6 telefondur ekranı açıp kullanırsınız demişsiniz ama nasıl kullanılcağını söylememişsiniz :)

Farklı konulardan örnek vermek yerine apinin bir kısmını yazmak veya algoritmasını kurup adım adım anlatmak çok daha yararlı olacaktır.
Sildirme, ekleme gibi sql cümlelerini herkes yazdırabilir önemli olan yapılacak işlemlerin sırası.

Hocam merhaba örnek atabilirmisiniz nasıl yapıcam tam karar veremedim yani nasıl scripte uyarlayacağım?
 

 

Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al