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 ...