| Services documentés dans cet article

Structure d'échange (WSAbonnement)

Structure d'échange (WSSuspensionTemp)

Structure d'échange (WSMotifSuspensionTemp)

Suppression d'un abonnement (deleteAbonnement)

Visualisation d'un abonnement (getAbonnement)

Liste des abonnements (getAbonnements)

Nombre d'abonnements pour un client (getNbAbonnements)

Liste des abonnements modifiés entre 2 dates (getAbonnementsModifiedBetween)

Nombre d'abonnements modifiés entre 2 dates (getNbAbonnementsModifiedBetween)

Liste des abonnements compris entre 2 PNS (getAbonnementsPNSBetween)

Nombre d'abonnements compris entre 2 PNS (getNbAbonnementsPNSBetween)

Liste des abonnements compris entre 2 DNS (getAbonnementsDNSBetween)

Nombre d'abonnements compris entre 2 DNS (getNbAbonnementsDNSBetween)

Liste des motifs possibles de suspensions temporaires (getMotifsSuspensionTemporaire)

Liste des suspensions temporaires par client (getSuspensionsTemporaires)

Suspendre tous les abonnements d'un client pour une période donnée (suspendClient)

Suspendre un abonnement pour une période donnée (suspendAbonnement)

Supprimer une suspension future via sa référence (deleteSuspensionTemporaire)

Supprimer des suspensions temporaires futures via la référence de l'abonnement (deleteSuspensionTemporaireByRefAbonnement)

Supprimer des suspensions temporaires futures via le code du client (deleteSuspensionTemporaireByCodeClient)

Modifier la date de fin d'une suspension temporaire (updateSuspensionTemporaire)

Statut de l'abonnement (getStatutAbonnement)


| Technologie


|| Protocole

La solution technique mise en place côté AboWeb repose sur des Web Services sans états.

Le protocole utilisé est SOAP 1.1. La couche de transport utilisée est HTTP 1.1.

L’intérêt principal de cette technologie est de pouvoir fournir un moyen d’échange indépendant de la plateforme et du langage de programmation utilisé. Les messages basés sur XML peuvent également être validés par une grammaire et des outils appropriés pour s’assurer que leur structure est correcte avant toute tentative de traitement des données.


|| Sécurité

Les Web Services implémentent la norme WS-Security 1.0 afin de réaliser les fonctions d’authentification des messages échangés.

L’authentification est réalisée à l’aide d’un login et d’un mot de passe crypté avec l’algorithme de hachage SHA-1 en base64 dans l’en-tête des messages. La balise utilisée, à savoir <UsernameToken> est conforme au standard.


Exemple d’en-tête (en rouge) :

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ges="http://www.gesmag.com/">

   


${color}[#ff0000](<soapenv:Header>

          <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">

            <wsse:UsernameToken>

                  <wsse:Username>login</wsse:Username>

                  <wsse:Password>mdp</wsse:Password>

           </wsse:UsernameToken>

        </wsse:Security>

</soapenv:Header>

)

<soapenv:Body>

<ges:getAbonnement>

[…]

      </ges:getAbonnement>

   </soapenv:Body>

</soapenv:Envelope>


La confidentialité et l’intégrité des messages ne sont pas implémentées à ce jour.



|| Point d’accès

Les points d’accès sont contenus dans les fichiers WSDL générés sur les différents environnements.

Sur l’environnement de test, nous avons :


**Service :** gestion des abonnements

**URL :** http://preprod.aboweb.com/aboweb/AbonnementService?wsdl


Le compte utilisateur sur cet environnement sera communiqué par mail.


| Structures d’échange

Ce chapitre présente les structures de données complexes utilisées comme paramètres et valeurs de retour des Web Services. Pour chaque structure, les noms, types et descriptions des paramètres sont fournies. Les valeurs obligatoires en entrée sont indiquées. Les données en lecture seule sont gérées exclusivement dans AboWeb.



|| Nouveautés



||| Nouveauté 2.27.0 : 

Réf. 3682 : Ajout du paramètre <codeRelance> dans la structure d'échange WSAbonnement.


||| Nouveauté 2.23.0 : 

Ajout du paramètre <origineReabonnement> dans la structure d'échange WSAbonnement. Ce paramètre est en lecture seule. Pour rappel, l'origine de réabonnement est renseigné uniquement pour les éditeurs dont les tarifs sont associés à des origines d'abonnements et de réabonnements.

 


||| Nouveauté 2.21.0 : 

Ajout d'une structure d'échange WSSuspensionTemp pour les suspensions temporaires.

Ajout d'une structure d'échange WSMotifSuspensionTemp pour les motifs de suspensions temporaires.

La liste des suspensions temporaires d'un abonnement a été ajoutée dans la structure d'échange WSAbonnement des abonnements.


|| WSAbonnement




|| WSSuspensionTemp


|| WSMotifSuspensionTemp





| Services

Ce chapitre décrit l’ensemble des services nécessaires à la réalisation des cas d’utilisation. Pour chaque service, plusieurs informations sont fournies : le nom du service, la fonctionnalité réalisée, les paramètres en entrée, la valeur de retour et les cas d’erreurs (SOAPFault). Les structures de données complexes sont présentées dans le chapitre "Structures d'échange".

Les informations concernant l’éditeur sont déduites de l’utilisateur authentifié. On considère qu’il n’y a qu’une société.

Pour des raisons de performance, la taille des listes retournée est limitée à 50 objets. Par ailleurs, il faut éviter de réaliser des opérations d’ajout/suppression d’objets pendant le parcourt des listes à moins de savoir gérer le décalage à l’aide de l’attribut « offset ».



|| Suppression d'un abonnement (deleteAbonnement)


|| Visualisation d'un abonnement (getAbonnement)


|| Liste des abonnements (getAbonnements)


|| Nombre d'abonnements pour un client (getNbAbonnements)


|| Liste des abonnements modifiés entre 2 dates (getAbonnementsModifiedBetween)


|| Nombre d'abonnements modifiés entre 2 dates (getNbAbonnementsModifiedBetween)


|| Liste des abonnements compris entre 2 PNS (getAbonnementsPNSBetween)


|| Nombre d'abonnements compris entre 2 PNS (getNbAbonnementsPNSBetween)



|| Liste des abonnements compris entre 2 DNS (getAbonnementsDNSBetween)


|| Nombre d'abonnements compris entre 2 DNS (getNbAbonnementsDNSBetween)


|| Liste des motifs possibles de suspensions temporaires (getMotifsSuspensionTemporaire)


Exemple :

Les motifs de suspensions retournés par ce WS sont ceux présents dans la combo de sélection des motifs de l'écran de saisie des suspensions temporaires de l'application AboWeb.


<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">

   <S:Body>

      <ns2:getMotifsSuspensionTemporaireResponse xmlns:ns2="http://www.gesmag.com/">

         <motifSuspension>

            <codeMotifSuspension>1666</codeMotifSuspension>

            <libMotifSuspension>Vacances</libMotifSuspension>

         </motifSuspension>

         <motifSuspension>

            <codeMotifSuspension>1667</codeMotifSuspension>

            <libMotifSuspension>Divers</libMotifSuspension>

         </motifSuspension>

      </ns2:getMotifsSuspensionTemporaireResponse>

   </S:Body>

</S:Envelope>



|| Liste des suspensions temporaires par client (getSuspensionsTemporaires)




__**Exemple :**__



Si l'on souhaite retourner toutes les suspensions temporaires du client 8971660 sur le titre Humanité quotidien( refTitre= 1) :


<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ges="http://www.gesmag.com/">

   <soapenv:Header/>

   <soapenv:Body>

      <ges:getSuspensionsTemporaires>

         <codeClient>8971660</codeClient>

         <refTitre>1</refTitre>

      </ges:getSuspensionsTemporaires>

   </soapenv:Body>

</soapenv:Envelope>


Cette requête renvoie tous les abonnements de ce titre pour ce client pour lequel on a saisit des suspensions temporaires.


<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">

   <S:Body>

      <ns2:getSuspensionsTemporairesResponse xmlns:ns2="http://www.gesmag.com/">

         <abonnement>

            <aboGratuit>false</aboGratuit>

            <codeClient>8971660</codeClient>

            ...

            <lstSuspension>

               <codeMotifSuspension>0</codeMotifSuspension>

               <creation>2017-05-22T15:40:42+02:00</creation>

               <dateDebut>2017-05-23T00:00:00+02:00</dateDebut>

               <dateFin>2017-05-30T00:00:00+02:00</dateFin>

               <libMotifSuspension/>

               <refAbonnement>35630426</refAbonnement>

               <refAbonnementDest>35630426</refAbonnementDest>

               <refSuspension>4785</refSuspension>

            </lstSuspension>

            <lstSuspension>

               <codeMotifSuspension>1666</codeMotifSuspension>

               <creation>2017-05-22T15:41:51+02:00</creation>

               <dateDebut>2017-05-31T00:00:00+02:00</dateDebut>

               <dateFin>2017-06-02T00:00:00+02:00</dateFin>

               <libMotifSuspension>Vacances</libMotifSuspension>

               <refAbonnement>35630426</refAbonnement>

               <refAbonnementDest>35630426</refAbonnementDest>

               <refSuspension>4786</refSuspension>

            </lstSuspension>

            ...

            <tauxTva>2.1</tauxTva>

         </abonnement>

      </ns2:getSuspensionsTemporairesResponse>

   </S:Body>

</S:Envelope>


Si l'on souhaite retourner toutes les suspensions temporaires du client 8971660 sur tous les titres ( refTitre= -1) :


:


<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ges="http://www.gesmag.com/">

   <soapenv:Header/>

   <soapenv:Body>

      <ges:getSuspensionsTemporaires>

         <codeClient>8971660</codeClient>

         <refTitre>-1</refTitre>

      </ges:getSuspensionsTemporaires>

   </soapenv:Body>

</soapenv:Envelope>



|| Suspendre tous les abonnements d'un client pour une période donnée (suspendClient)


|| Suspendre un abonnement pour une période donnée (suspendAbonnement)


|| Supprimer une suspension future via sa référence (deleteSuspensionTemporaire)



|| Supprimer des suspensions temporaires futures via la référence de l'abonnement (deleteSuspensionTemporaireByRefAbonnement)


|| Supprimer des suspensions temporaires futures via le code du client (deleteSuspensionTemporaireByCodeClient)


|| Modifier la date de fin d'une suspension temporaire (updateSuspensionTemporaire)


|| Statut de l'abonnement (getStatutAbonnement)