2016-05-12 110 views
0

我想從WHMCS使用API​​方法將所有WHMCS發票導入到c#應用程序中。我嘗試下載PDF文檔時出現問題。沒有API方法可以做到這一點,我無法在不登錄的情況下調用dl.php頁面。 我無法登錄與WHMCS API方法管理和既不符合客戶端,因爲(顯然)我不知道自己的密碼,我只有自己的MD5密碼。WHMCS獲得發票PDF

有什麼解決方法?

感謝

回答

1

根據this page,這是你可以下載發票,無需登錄。

創建一個PHP文件,比方說,gen_invoice_pdf.php,並將其放置在根目錄WHMCS裏面。

將此代碼添加到文件:

<?php 
include __DIR__ . '/init.php'; 
include __DIR__ . '/includes/invoicefunctions.php'; 

use WHMCS\Auth; 

$user = filter_var($_GET['us'], FILTER_SANITIZE_STRING); 
$pass = filter_var($_GET['pw'], FILTER_SANITIZE_STRING); 
$id = filter_var($_GET['id'], FILTER_SANITIZE_NUMBER_INT); 
$authAdmin = new Auth; 

if ($authAdmin->getInfobyUsername($user) && $authAdmin->comparePassword($pass)) { 
    $isValid = true; 
} else { 
    $isValid = false; 
} 

if (!$isValid) { 
    die('Access Denied'); 
} 


if ($id > 0) { 
    $pdfdata = pdfInvoice($id); 

    header("Content-type:application/pdf"); 
    header("Content-Disposition:attachment;filename=invoice_$id.pdf"); 

    echo $pdfdata; 

} 

下載發票ID:5,請訪問網址:

http://whmcs-example.com/gen_invoice_pdf.php?id=5&us=myuser&pw=mypass

注:這將是任何一個訪問知道網址例如,您可以設置頁面接受來自特定IP地址的連接。

更新:

新增WHMCS管理認證,僅適用於WHMCS> = 5.3.9,請檢查:Admin Password Hashing

+0

它似乎運作良好。但我想在此代碼中加入一些保護措施,因爲它可以從任何人訪問。可以驗證我的管理員用戶,並通過身份驗證成功獲取pdfdata?所以這個網址就像 http://whmcs-example.com/gen_invoice_pdf.php?us=[username];pw=[md5password];id=[idinvoice] – Bruno

+0

你的意思是WHMCS管理員用戶?或另一個系統用戶? – wesamly

+0

Exacly,WHMCS管理員用戶。與創建外部呼叫時的WHMCS的API類似。 – Bruno