2016-05-12 12 views
0

私はWHMCSからAPIメソッドを使用してすべてのWHMCS請求書をC#アプリケーションにインポートしようとしています。 PDF文書をダウンロードしようとすると問題が発生します。これを行うAPIメソッドはありません。私はログインせずにdl.phpページを呼び出すことはできません。 WHMCS APIメソッドを使用して管理者としてログインすることはできません。クライアントとはどちらも、自分のパスワードを知らず、自分のMD5パスワードしか持っていないため、クライアントでもログインできません。WHMCS請求書を取得PDF

解決策はありますか?

おかげ

答えて

1

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を。

+0

うまくいくようです。しかし、私は誰にでもアクセスできるので、このコードにいくつかの保護を入れたいと思います。それは私の管理者ユーザーを認証することが可能であり、認証成功はpdfdataを得るのですか?したがって、URLは次のようになります http://whmcs-example.com/gen_invoice_pdf.php?us=[us=[username];pw=[md5password];id=[idinvoice] – Bruno

+0

WHMCS管理者を意味しますか?または別のシステムユーザーですか? – wesamly

+0

Exacly、WHMCS Adminユーザー。外部呼び出しを作成するときのWHMCSのAPIに似ています。 – Bruno

関連する問題