ik heb een vraag is de WHMCS Module / Api al klaar
??
gr gerrit
Onderwerp: WHMCS Api - Pagina 3
De WHMCS API is klaar en staat in BETA. Mocht je geïnteresseerd zijn dan kan ik je de BETA toesturen en kun je het inbouwen in jouw eigen WHMCS omgeving om te testen en te gebruiken! Contacteer me dan op m.mulder@vimexx.nl.
Waar staat de documentatie van de WHMCS API?
Als antwoord op mijn vraag....
https://developers.whmcs.com/api/
WHMCS plugin zou idd erg handig zijn. Ik wil graag Vimexx gebruiken, maar omdat er geen plugin beschikbaar is gebruik ik een andere registrar.
Beste,
Ik ga er vanuit dat je met 'plugin' de API bedoelt?
Deze is namelijk tegenwoordig gewoon beschikbaar en terug te vinden in het klantenpaneel.
Zowel de download als een handleiding voor het instellen kan je terugvinden onder API.Hier vind je ook downloads voor de WeFact API terug.
Met vriendelijke groet,
Arnoud Rutgers
Medewerker Klantenservice
Allereerst, bedankt voor jullie inzet team Vimexx!
Ik zie dat WeFact en WHMCS betaalde omgevingen zijn, waarbij als je daar een account hebt (waarvoor je moet betalen) gebruik kan gaan maken van de Vimexx API module voor deze sites.
Is er ook een manier om zelf te communiceren met https://api.vimexx.nl?
Daar zie ik helaas geen documentatie of mogelijkheden voor, klopt dat?
Alvast bedankt voor jullie tijd!
Goedemorgen,
Ik sluit me aan bij de vraag van Arnold.
Alvast dank.
Hi,
Ik heb me de afgelopen dagen even bezig gehouden met de Vimexx API. Je kan deze weldegelijk aanspreken zonder gebruik te maken van de WHMCS of WEFACT software/betaalpakketten. Het enige dat je moet doen is een credential profiel aanmaken op https://www.vimexx.nl/api.
Dit profiel wordt namelijk gebruikt bij de authenticatie op https://api.vimexx.nl/auth/token. Dmv een POST naar deze pagina krijg je een Bearer token terug, die je dan moet gebruiken in de WHMCS of WEFACT API van Vimexx.
Vergeet in de header de juiste content-type niet mee te sturen: "Content-Type: application/x-www-form-urlencoded"
De body van de request verwacht volgende keys/values:
grant_type: password
client_id: de client id die je in de API pagina (zie hierboven) ziet na het aanmaken vd credentials
client_secret: de client secret die je in de API pagina ziet na het aanmaken vd credentials
username: je vimexx username (mail adres)
password: je vimexx password
scope: whmcs-access
In de response krijg je zoals reeds gezegd een Bearer "access_token" terug, die je moet gebruiken als authorization in de volgende stappen.
Voor mij was het de bedoeling om de DNS records op te zoeken en aan te passen. Dit kan door respectievelijk een POST en een PUT call te doen naar https://api.vimexx.nl/api/v1/whmcs/domain/dns
In de header wordt zoals reeds gezegd de Bearer token verwacht die je in de vorige stap kreeg. Deze Bearer token heeft tevens ook een "expires_in" value van 1 jaar. Om niet telkens een nieuwe token aan te vragen store ik deze lokaal in een file, en kijk ik na of deze nog geldig is.
De body van de POST call dient er zo uit te zien:
{"body":{"sld":"jouwdomein","tld":"landcode"},"version":"7.7.1-release.1"}
Voor trololoo.nl bijvoorbeeld is ds sld "trololoo" en de tld "nl". Het vinden van de juiste version heeft me enkele uren gekost, maar dit stond eigenlijk letterlijk op de API pagina van Vimexx:
Voor WHMCS: Ondersteunde versies: '7.7.1-release.1', '7.6.1-release.1', '7.5.2-release.1'
Je moet dus één van deze versies meegeven..
Als resultaat krijg je een json response die al de DNS records bevat.
Nog een hint voor Vimexx zelf: jullie sturen het antwoord met de verkeerde Content-type terug! (namelijk "text/html; charset=UTF-8"). Dit zou eigenlijk application/json moeten zijn :-)
De volgende stap (het updaten van de DNS records) is een PUT call naar https://api.vimexx.nl/api/v1/whmcs/domain/dns
Het verschil met de POST call is dat de body naast de sld en tld ook nog een "dns_records" key bevat, dit is een array van alle records (die je terugkreeg in de POST call). Let wel dat de POST geen ttl terugstuurt, die moet je zelf nog toevoegen aan alle records. En een onbestaande prio ("null") laat je ook beter volledig weg.
Je kan ook geen individuele record aanpassen. In de PUT call moet je ALLE records tegelijkertijd meesturen. Eén enkele record meesturen heeft als gevolg dat alle anderen verwijderd worden :-)
Klein voorbeeldje van de body die verwacht wordt:
{
"body": {
"sld": "trololoo",
"tld": "nl,
"dns_records": [
{
"content": "10.0.0.10
"type": "A",
"name": "bla1.trololoo.nl.",
"ttl": "86400"
},
{
"content": "10.0.0.20",
"type": "A",
"name": "bla2.trololoo.nl.",
"ttl": "86400"
}
]
},
"version": "7.7.1-release.1"
}Ter info: ik vond deze info in de broncode van de WHMCS zipfile, die zich op de API pagina bevindt. Je kan naast DNS aanpassingen ook nog heel wat andere zaken doen met de API.
Veel succes ermee!
Leuke bijdrage Peter,
Zie hier een uitgewerkte versie die alle API call's ondersteund én waarmee je snel kan wisselen tussen de beschikbare clients en versies máár ook bruikbaar is zónder WeFact óf WHMCS: Github Gist
Simpel voorbeeld:
$vimexx = (new \Vimexx([account], 'wefact'));
var_dump($vimexx->post('/domains'));
var_dump($vimexx->client('whmcs')->post('/domain/dns', ['sld' => 'achterstraat', 'tld' => 'com']));
var_dump($vimexx->client('wefact')->post('/domain/available', ['sld' => 'achterstraat', 'tld' => 'com']));