2016-05-12 20 views
0

Ich versuche, von WHMCS zu einer C# -Anwendung alle meine WHMCS-Rechnungen mit API-Methoden zu importieren. Beim Versuch, PDF-Dokumente herunterzuladen, tritt ein Problem auf. Es gibt keine API-Methode, um das zu tun, und ich kann die Seite dl.php nicht ohne Login aufrufen. Ich kann nicht als Admin mit WHMCS-API-Methoden anmelden, und auch nicht mit Client, weil (offensichtlich) ich kenne ihr Passwort nicht und ich habe nur ihr MD5-Passwort.WHMCS Rechnung erhalten PDF

Es gibt irgendwelche Lösungen?

Dank

Antwort

1

Nach this page, das ist, wie Sie die Rechnung ohne die Notwendigkeit anmelden herunterladen.

Erstellen Sie eine PHP-Datei, sagen wir, gen_invoice_pdf.php, und legen Sie sie in das Root-WHMCs-Verzeichnis.

Fügen Sie diesen Code in die Datei:

<?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; 

} 

Rechnung id herunter: 5, besuchen Sie die URL:

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

Hinweis: Dies wird zu einem zugänglich kennt die URL können Sie die Seite akzeptieren Verbindungen von bestimmten IP-Adresse, zum Beispiel.

Update:

Added WHMCS Admin-Authentifizierung funktioniert nur für WHMCS> = 5.3.9, überprüfen: Admin Password Hashing.

+0

Es scheint gut zu funktionieren. Aber ich möchte einige Schutzmaßnahmen in diesen Code einfügen, da er für jeden zugänglich sein kann. Es ist möglich, meinen Admin-Benutzer zu authentifizieren und mit Authentifizierungserfolg erhalten Sie die pdfdata? Also die URL wird so etwas wie http://whmcs-example.com/gen_invoice_pdf.php?us=[username];pw=[md5password];id=[idinvoice] – Bruno

+0

Sie meinen WHMCS admin user? oder ein anderer Systembenutzer? – wesamly

+0

Exacly, WHMCS Admin Benutzer. Ähnlich der API von WHMCS, wenn Sie einen externen Anruf erstellen. – Bruno