はthis pageによると、これはあなたがログインすることなく、請求書をダウンロードすることができる方法です。
gen_invoice_pdf.phpという名前のPHPファイルを作成し、それをルートのwhmcsディレクトリに配置します。
ファイルにこのコードを追加します。URLを訪問、5:請求書IDをダウンロードするには
<?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;
}
http://whmcs-example.com/gen_invoice_pdf.php?id=5&us=myuser&pw=mypass
注:これはいずれにもアクセスできるようになりますが、URLを知っていますたとえば、特定のIPアドレスからのページ受け入れ接続を設定することができます。
更新:
追加WHMCS管理者の認証、> = 5.3.9 WHMCSのためにのみ動作し、チェック:Admin Password Hashingを。
うまくいくようです。しかし、私は誰にでもアクセスできるので、このコードにいくつかの保護を入れたいと思います。それは私の管理者ユーザーを認証することが可能であり、認証成功はpdfdataを得るのですか?したがって、URLは次のようになります http://whmcs-example.com/gen_invoice_pdf.php?us=[us=[username];pw=[md5password];id=[idinvoice] – Bruno
WHMCS管理者を意味しますか?または別のシステムユーザーですか? – wesamly
Exacly、WHMCS Adminユーザー。外部呼び出しを作成するときのWHMCSのAPIに似ています。 – Bruno