2016-05-12 10 views
0

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

Есть решения?

Благодаря

ответ

1

Согласно 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.

+0

Кажется, что хорошо работает. Но я хотел бы поместить некоторые защиты в этот код, потому что он может быть доступен любому. Можно ли аутентифицировать моего администратора и с успехом аутентификации получить pdfdata? Таким образом, url будет чем-то вроде http://whmcs-example.com/gen_invoice_pdf.php?us=[username];pw=[md5password];id=[idinvoice] – Bruno

+0

Вы имеете в виду пользователя admin WHMCS? или другого пользователя системы? – wesamly

+0

Exacly, пользователь Admin WHMCS. Подобно API WHMCS при создании внешнего вызова. – Bruno

 Смежные вопросы

  • Нет связанных вопросов^_^