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