
نوشته اصلی توسط
amirlord
خوشحالم که به این موضوع پی بردید !
External برای دسترسی به API از خارج از فایل های whmcs هست و Internal هم دسترسی برای داخل هست مثلا برای ماژول هاش ... ؛ به جای این که بیاد کلاس تعریف کنه تا توسعه راحت تر باشه این مسخره بازی هارو در اورده .
این رو هم نگاه کنید مثال زده :
API:Example Usage - WHMCS Documentation
در افتضاح بودن API این سیستم و همچنین خودش شکی نیست . برای همین تلاش برای خارج کردن استفاده کنندگان از این سیستم ، توسعه ی اون به حساب نمیاد ... .
واویلا... این واقعا مزخرفترین حالت و سبک کد نویسی هست ! (این کد ها نشانگر این هستند که سیستم کاملا دیمییییی نوشته شده و هدف فقط به فروش رسوندنش هست :| )
زیاد با این سبک آشنا نیستم شاید از نظر شما خوب و مورد استفاده باشه ولی از نظر من برای استفاده باید این کد ها به صورت Class و Function در بیاد...
درضمن هماهنگ سازی با سیستم WHMCS کار درستی نیست و ارزش وقت گذاشتن نداره...ولی خب برای اینکه سیستم خودمون رو توسعه بدیم مجبوریم قابلیت هایی بزاریم مانند (SYNC) برای Convert کردن اطلاعات برای کاربرای علاقهمند به WHMCS...
کد PHP:
<?php $url = "http://www.yourdomain.com/whmcs/includes/api.php"; # URL to WHMCS API file $username = "Admin"; # Admin username goes here $password = "demo"; # Admin password goes here $postfields["username"] = $username; $postfields["password"] = md5($password); $postfields["action"] = "addinvoicepayment"; #action performed by the [[API:Functions]] $postfields["invoiceid"] = "1"; $postfields["transid"] = "TEST"; $postfields["gateway"] = "mailin"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 100); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields); $data = curl_exec($ch); curl_close($ch); $data = explode(";",$data); foreach ($data AS $temp) { $temp = explode("=",$temp); $results[$temp[0]] = $temp[1]; } if ($results["result"]=="success") { # Result was OK! } else { # An error occured echo "The following error occured: ".$results["message"]; } ?>