0
我想從WHMCS使用API方法將所有WHMCS發票導入到c#應用程序中。我嘗試下載PDF文檔時出現問題。沒有API方法可以做到這一點,我無法在不登錄的情況下調用dl.php頁面。 我無法登錄與WHMCS API方法管理和既不符合客戶端,因爲(顯然)我不知道自己的密碼,我只有自己的MD5密碼。WHMCS獲得發票PDF
有什麼解決方法?
感謝
我想從WHMCS使用API方法將所有WHMCS發票導入到c#應用程序中。我嘗試下載PDF文檔時出現問題。沒有API方法可以做到這一點,我無法在不登錄的情況下調用dl.php頁面。 我無法登錄與WHMCS API方法管理和既不符合客戶端,因爲(顯然)我不知道自己的密碼,我只有自己的MD5密碼。WHMCS獲得發票PDF
有什麼解決方法?
感謝
根據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。
它似乎運作良好。但我想在此代碼中加入一些保護措施,因爲它可以從任何人訪問。可以驗證我的管理員用戶,並通過身份驗證成功獲取pdfdata?所以這個網址就像 http://whmcs-example.com/gen_invoice_pdf.php?us=[username];pw=[md5password];id=[idinvoice] – Bruno
你的意思是WHMCS管理員用戶?或另一個系統用戶? – wesamly
Exacly,WHMCS管理員用戶。與創建外部呼叫時的WHMCS的API類似。 – Bruno