Согласно this page, это то, как вы можете скачать счет без необходимости входа в систему.
Создайте файл php, скажем, gen_invoice_pdf.php и поместите его в каталог root 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, посетить URL:
http://whmcs-example.com/gen_invoice_pdf.php?id=5&us=myuser&pw=mypass
Примечание: это будет доступно любому знает URL , вы можете, например, установить соединение с приемом на странице с определенного IP-адреса.
Update:
аутентификации администратора Добавлено WHMCS, работает только для WHMCS> = 5.3.9, проверьте: Admin Password Hashing.
Кажется, что хорошо работает. Но я хотел бы поместить некоторые защиты в этот код, потому что он может быть доступен любому. Можно ли аутентифицировать моего администратора и с успехом аутентификации получить pdfdata? Таким образом, url будет чем-то вроде http://whmcs-example.com/gen_invoice_pdf.php?us=[username];pw=[md5password];id=[idinvoice] – Bruno
Вы имеете в виду пользователя admin WHMCS? или другого пользователя системы? – wesamly
Exacly, пользователь Admin WHMCS. Подобно API WHMCS при создании внешнего вызова. – Bruno