Bonjour à tous
Je cherche à commander un domaine expiré, qui va être dispo vers décembre.
Je faisais ça il y a longtemps, via soapi qui est abandonné.
J'ai un peu la flemme de regarder la doc API ovh, pour commander un domaine.
Quelqu'un a-t-il un script tout prêt ou presque (en PHP), utilisant l'API ovh ?
Y a-t-il des limites sur le nombre de tentatives d'achat du domaine via l'API ?
Merci d'avance pour ceux qui ont ça sous la main.
Bonjour,
En soap, cela doit dater pas mal
Tu as un wrapper php pour l'api ovh https://github.com/ovh/php-ovh Le github
Amicalement
En soap, cela doit dater pas mal
vi, ça date !! J'achetai à l'époque des domaines expirés pour un client.
Comme j'en faisais pas mal, j'avais potassé la doc, pour pouvoir faire ça correctement.
Là, j'avais pas trop envie de lire toute la doc, passer toutes les étapes, (genre comment récupérer l'état du domaine expiré, pour voir si je lance l'achat ou pas)...
D'où ma question, pour un script prêt à l'emploi, ou très rapidement adaptable.
Mais je sens que je vais devoir me coltiner un peu de doc, pour faire ça. Et comme toujours, le temps est le nerf de la guerre.
++ et merci quand même.
Bonjour,
Si besoin tu peux t'aider de ce petit remider des routes que tu devra utiliser (si je ne me trompe pas)
## Les domaines
Pour récupérer la liste de tes domaines :
GET /domain
Pour récupérer le statut et la date de renewal de ton domaine:
/domain/{domainName}/serviceInfos
Ce qui vas t'intéresser c'est le champ status qui prend les valeurs
["expired","inCreation", "ok","pendingDebt","unPaid"]
Le champ expiration qui as pour valeur une date au format YYYY-MM-DD
## Les paniers
Pour créer un panier
POST /order/cart
Verifier la disponibilité d'un domaine
GET /order/cart/{cartId}/domain
Ce qui vas t'intéresser c'est le champ orderable qui prend un boolean comme valeur. Attention si le domaine est éligible à plusieurs type de pack la route retourne plusieurs tableau contenant ce boolean. Le champ action te permettra de savoir s'il est achetable, transférable etc (d’ailleurs la doc de ce paramètre est manquant)
Mettre le domaine au panier
POST /order/cart/{cartId}/domain
Verifier le contenu du panier
GET /order/cart/{cartId}
Ce qui vas t'intéresser c'est le champ items qui liste les produits du panier, utilise pour verifier ta commande avant de la lancer
Vérifier un élément du panier
/order/cart/{cartId}/item/{itemId}
Assigner le panier à ton compte client
POST /order/cart/{cartId}/assign
Verifier que le panier à bien été assigné à ton compte
GET /order/cart
Vérification de la commande
GET /order/cart/{cartId}/checkout
Validation de la commande
POST /order/cart/{cartId}/checkout
Ce qui vas t'intéresser c'est le champ url qui te donne l'url du bon de commande et le champ orderId avec l'id du bon de commande
## Les bon de commandes
Verifier que le bon de commande est bien edité
/me/order/{orderId}
Lister les moyens de paiements disponible pour ce bon de commande
GET /me/order/{orderId}/availableRegisteredPaymentMean
$ Passe à la caisse $
POST /me/order/{orderId}/payWithRegisteredPaymentMean
Par contre je n'ai pas pas pu tester cette route là, je n'avais rien à acheter lors de l'écriture de ce tuto, désole.
En espérant que cela t'aidera
Bonne soirée
merci à toi, je vais essayer de regarder ça d'ici la fin de semaine.
Et mettre au moins un truc en test.
Merci pour les infos que tu as mises, ça me fait gagner énormément de temps.
Par contre, lorsque je teste sur le domaine que je vise, je vois ça :
[description] => Demande de transfert d'un domaine .com
Hors, c'est un domaine expiré.
Je ne veux pas un transfert, je veux juste l'acheter dès qu'il est disponible !
Y a-t-il un truc que j'ai raté ?
Mon script actuel :
include 'zzconf.php';
/
* First, download the latest release of PHP wrapper on github
* And include this script into the folder with extracted files
*/
require DIR . '/vendor/autoload.php';
use \Ovh\Api;
/
* Instanciate an OVH Client.
* You can generate new credentials with full access to your account on
* the token creation page
*/
$ovh = new Api( $appKey, // Application Key
$appSecret, // Application Secret
'ovh-eu', // Endpoint of API OVH Europe (List of available endpoints)
$consKey); // Consumer Key
//je crée mon panier
$result = $ovh->post('/order/cart', array(
'description' => 'achat', // Description of your cart (type: string)
'expire' => date('Y-m-d').'T23:59:59+01:00', // Time of expiration of the cart (type: datetime)
'ovhSubsidiary' => 'FR', // OVH Subsidiary where you want to order (type: nichandle.OvhSubsidiaryEnum)
)
);
$idCart = $result['cartId'];
//vérifie la dispo d'un domaine
$result = $ovh->post('/order/cart/'.$idCart.'/domain', array(
'domain' => $domain, // Domain name requested (type: string)
));
//print_r( $result );
//vérifie le contenu du panier
$result = $ovh->get('/order/cart/'.$idCart);
//print_r( $result );
//assigne le panier à la commande
$result = $ovh->post('/order/cart/'.$idCart.'/assign');
//vérification de la commande
$result = $ovh->get('/order/cart/'.$idCart.'/checkout');
//validation de la commande
$result = $ovh->post('/order/cart/'.$idCart.'/checkout');
$idOrder = $result['orderId'];
$urlOrder = $result['url'];
print_r( $result );
//Vérifier que la commande est bien éditée
$result = $ovh->get('/me/order/'.$idOrder);
Je vois que si je passe par le manager, je peux payer le transfert du domaine…
Galère… Bon, faut que je trouve la commande qui indique le statut du domaine.
Tu peux me communiquer le nom du domaine ? En MP si ca t'arrange que le nom ne soit pas public.
Quelle route te retourne une description ?
pour le domaine, je ne veux vraiment pas le donner.
Je vais en chercher un tout à l'heure, expiré, pour l'exemple.
Pas compris la question sur le route qui retourne une description.
++
Par contre, lorsque je teste sur le domaine que je vise, je vois ça :
[description] => Demande de transfert d'un domaine .com
Quelle route à tu utilisé ?
//vérifie la dispo d'un domaine
$result = $ovh->post('/order/cart/'.$idCart.'/domain', array(
'domain' => $domain, // Domain name requested (type: string)
));
C'est automatique.
Si je passe par une commande manuelle OVH, le même domaine expiré est indiqué transférable.
Si je teste chez d'autres registres, c'est la même chose. Pas logique pour moi (mais ça doit être logique quand même quelque part, mais je vois pas bien où)
Je précise que le domaine (.com) est expiré depuis 15 jours seulement. Donc pas encore achetable.
qu'y a t il dans le whois?
dans les lignes * status: il devrait y avoir redemptionPeriod?
https://www.icann.org/resources/pages/epp-status-codes-2014-06-16-en#redemptionPeriod
s'il est indiqué transférable, c'est qu'il a encore un proprio, ce n'est pas étonnant, par contre transférable pendant une redemption le serait effectivement
Pour l'instant, le domaine est : clientHold
Domain Status: clientHold http://www.icann.org/epp#clientHold
Mais je trouve bizarre qu'on puisse acheter le transfert, sachant que le propriétaire actuel ne pourra sans doute pas valider ? et/ou le registre actuel car domaine expiré ?
oui, c'est curieux
hold c'est litige? pas encore en redemption donc?
par exemple, ovh avec leur contrat à tacite reconduction doivent mettre en hold (supposition) retardant le processus?
Verifier la disponibilité d'un domaine
GET /order/cart/{cartId}/domain
Tu as fait un post non ?
sur un get, il me sort :
[duration] => Array
(
[0] => P1Y
)
[pricingMode] => default
[offer] => gold
[quantityMax] => 1
[deliveryTime] =>
[phase] =>
[offerId] => com-transfer
[configurations] => Array
(
)
[productId] => domain
[action] => transfer
[orderable] => 1
S'il est expiré peut être qu'il y a un délai pendant lequel le détenteur du domaine peut encore le récupérer ? Ce qui expliquerai qu'il est juste transférable
Je ne crois pas qu'on puisse transférer un domaine expiré. Mais peut-être que si finalement, puisque j'ai fait le test chez plusieurs registres, et ils proposent tous le transfert.
Mais du coup, c'est très pénible, car je dois tester l'état, avant d'envoyer l'achat !
Car si je paie pour un transfert qui n'aura finalement jamais lieu… je sens que j'aurai énormément de mal à me faire rembourser.
tu n'as pas dit qu'il était en hold ?
après il doit passer en redemption
j'l'ai pas dit, j'l'ai écrit un peu plus haut.
Bonjour,
Des avancées dans ton développement
Amicalement