WHMCS получить счет PDF

Я пытаюсь импортировать из WHMCS в приложение aC# все мои счета WHMCS, используя методы API. При попытке загрузить документы PDF возникла проблема. Для этого не существует метода API, и я не могу вызвать страницу dl.php без входа в систему. Я не могу войти в систему как администратор с помощью методов API WHMCS, и ни с клиентом, потому что (очевидно) я не знаю их пароль, и у меня есть только их пароль MD5.

Есть какие-то решения?

Спасибо

1 ответ

Решение

Согласно этой странице, вы можете загрузить счет без необходимости входа в систему.

Создайте файл 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;  

}

Чтобы загрузить номер счета-фактуры: 5, перейдите по ссылке:

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

Примечание: это будет доступно любому, кто знает URL, вы можете настроить страницу, например, принимать соединения с определенного IP-адреса.

Обновить:

Добавлена ​​аутентификация администратора WHMCS, работает только для WHMCS >= 5.3.9, проверьте: Хэширование пароля администратора.

Другие вопросы по тегам