Tests d'éligibilité
Prérequis
Présentation
Le test d’éligibilité est asynchrone, une fois la demande envoyée vous obtenez un identifiant qui vous permet de suivre le traitement de la requête et d’obtenir les résultats quand celle-ci sera terminée.
participant Client as client
participant PrizzAPI as prizz
entity EligibilityProcess as elig
database SIG as sig
group Create query
client -> prizz : CreateEligibility
prizz -> elig : create process
activate elig
prizz -> client : return eligibility_id
end
group Fetch #1
client -> prizz : q1
prizz -> client : answer with pending status
end group
elig -> sig : query
sig -> elig : results
elig -> elig : make offers
deactivate elig
group Fetch #2
client -> prizz : q2
prizz -> client : answer with done status and results
end group
Première étape : connaître son ID client
Pour faire un test nous avons besoin de savoir pour quel client il est effectué. Votre token pouvant être associé à plusieurs entreprises. Cela nous permet de trouver les bon contrats et tarifs associés.
Vous devez donc connaître l’id
de votre client, pour cela vous pouvez interroger cette route.
foreach ($prizzTelecom->getClientLegalEntities()->getItems() as $legalEntity) {
echo $legalEntity->getName() . " - " . $legalEntity->getId() . "\n";
}
// output :
// PRIZZ TELECOM - 32
//
// l'id a utiliser est 32
curl --request GET \
--location "${url_api}/external-api/v2/client_legal_entities" \
--header "Authorization: Token ${token}" \
| jq '.items[]|{name:.name, id:.id}'
# output:
# {
# "name": "PRIZZ TELECOM",
# "id": 32
# }
Parcourez le tableau items
de la réponse afin de localiser le client pour lequel vous souhaitez effectuer un test d’éligibilité, notez son id
(que nous appellerons {id_client}
pour la suite de cet exemple).
Vous pouvez en faire un élément de configuration de votre projet, cet identifiant est stable.
Créer un test d’éligibilité par adresse
Vous pouvez maintenant créer un nouveau test d’éligibilité. L’adresse, est au format texte. Elle doit être la plus précise possible et avoir un numéro dans la voie.
$eligResult = $prizzTelecom->createEligibility(
"111 Rue Réaumur, 75002 Paris",
$legalEntity->getId() // 32
);
// Output :
// Array
// (
// [0] => 43
// )
export address="111 Rue Réaumur, 75002 Paris";
export id_client=32;
curl --request POST \
--location "${url_api}/external-api/v2/eligibility" \
--header "Authorization: Token ${token}" \
--header "Content-Type: application/json" \
--data "{\"address\": \"${address}\", \"clientId\": ${id_client}}"
Vous devriez récupérer l’id
du test effectué dans la partie responses
, 43
dans le cas présent.
Obtenir un id ne dit pas que l’adresse est éligible, mais qu’elle va être testée.
Créer un test d’éligibilité par latitude et longitude
Pour faire un test avec des coordonnées longitude, latitude il suffit de ne pas remplir le paramètre address
mais lon
et lat
.
$eligResult = $prizzTelecom->createEligibility(
client_id: $myClientLegalEntity->getId(),
lon: 2.326099666185542,
lat: 48.867587467406395
);
// Output :
// Array
// (
// [0] => 43
// )
lon="2.326099666185542";
lat="48.867587467406395"
id_client=32;
curl --request POST \
--location "${url_api}/external-api/v2/eligibility" \
--header "Authorization: Token ${token}" \
--header "Content-Type: application/json" \
--data "{\"lon\": \"${lon}\", \"lat\": \"${lat}\", \"clientId\": ${id_client}}"
Obtenir le résultat du test
Comme indiqué précédemment, les tests d’éligibilité étant asynchrones, vous n’aurez pas le résultat lors de la création de la requête d’éligibilité. Il vous faut faire appel cette méthode pour obtenir le résultat : méthode.
$resp = $prizzTelecom->getEligibility(45);
foreach ($resp->getResponse() as $resp) {
echo $resp->getCode() .
" : " . $resp->getRcMin() / 100 .
" -> " . $resp->getRcMax() / 100 . " " .
"pricelist #" . $resp->getPriceListId() . "\n";
}
// Output :
// FON EVENTS : 5400 -> 5400 pricelist #4
// FON MAN : 350 -> 400 pricelist #7
// L2 Basique : 99 -> 200 pricelist #13
// L2 EVENT : 4500 -> 5050 pricelist #18
// L2 PREMIUM : 119 -> 699 pricelist #20
curl --request GET \
--location "${url_api}/external-api/v2/eligibility/${id_test}" \
--header "Authorization: Token ${token}"
En cas de succès, vous trouverez le résultat de l’éligibilité dans la partie response
du retour.