Commande domaine via API

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 :slight_smile: 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