WHMCS获得发票PDF

时间:2016-05-12 15:58:39

标签: c# pdf filestream whmcs invoices

我正在尝试使用API​​方法从WHMCS导入所有WHMCS发票的c#应用程序。我尝试下载PDF文档时出现问题。没有API方法可以做到这一点,我不能在没有登录的情况下调用dl.php页面。 我无法使用WHMCS API方法以管理员身份登录,也无法使用客户端登录,因为(显然)我不知道他们的密码,而且我只有他们的MD5密码。

有什么解决方案吗?

由于

1 个答案:

答案 0 :(得分: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,请访问网址:

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

注意:任何人都可以访问这个知道网址,例如,您可以设置页面接受来自特定IP地址的连接。

更新

添加了WHMCS管理员身份验证,仅适用于WHMCS&gt; = 5.3.9,请检查:Admin Password Hashing