Traiter le résultat du paiement

Différents contrôles sont réalisés par la plateforme de paiement lors de la réception de votre requête createPayment.

Ces contrôles peuvent donner lieux à:
  • des exceptions (SOAP Fault Exception)
  • des erreurs applicatives

En cas d'exception, la réponse contiendra un objet Fault détaillant l'erreur rencontrée (erreur de format etc..).

Exemple de réponse lorsque la boutique ne dispose pas des options nécessaires au paiement Google Pay :

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"/>
   <soap:Body>
      <soap:Fault>
         <faultcode xmlns:ns1="http://www.w3.org/2003/05/soap-envelope">ns1:Sender</faultcode>
         <faultstring>
              bad.shopId: The shop with shopId 12345678 is not allowed to call the Web Service
         </faultstring>
         <detail>
            <requestId>f269ff49-3b8a-4314-b999-24b39ce03287</requestId>
         </detail>
      </soap:Fault>
   </soap:Body>
</soap:Envelope>

Si la requête est valide, alors la réponse contient l'objet commonReponse.

Le champ commonReponse.responseCode donne une indication sur le traitement de la requête.

Lorsque responseCode est valorisé à 0 dans la réponse, la transaction a été créée.

Toute autre valeur de responseCode indique que la requête a été rejetée avant le paiement.

Le champ responseCodeDetail donne le détail de l'erreur rencontrée.

Pour vérifier le statut du paiement, vous devez analyser la valeur du champ commonResponse.transactionStatusLabel

Les seuls status pouvant garantir un paiement accepté sont les suivants:

  • CAPTURED
  • AUTHORIZED
  • AUTHORIZED_TO_VALIDATE

Lorsque transactionStatusLabel est valorisé à REFUSED, vous devez vérifier la présence du champ paymentError dans l'objet paymentResponse.

Ce champ donne des indications sur la raison du refus.

Si paymentError n'est pas valorisé, analysez le champ result de l'objet authorizationResponse pour connaître le motif de refus du paiement.

Consultez le Guide d'implémentation - API Webservices SOAP v5 pour obtenir la liste complète des erreurs possibles.

Exemple de réponse renvoyée en cas de paiement accepté

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/ 
   xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
   xmlns:ns1="http://v5.ws.vads.lyra.com/"
   xmlns:ns2="http://v5.ws.vads.lyra.com/Header/" ">
<SOAP-ENV:Header>
   <shopId>12345678</shopId>
   <requestId>8bb621fa-8512-45cc-b695-a30fe104cb06</requestId>
   <timestamp>2018-07-11T09:51:00Z</timestamp>
   <mode>TEST</mode>
   <authToken>Le5sPmTnoE8xh3qtU7F1SxhaieO3rh9uLxQpy/4bEu4=</authToken>
</SOAP-ENV:Header>
<soap:Body>
   <ns2:createPaymentResponse>
      <createPaymentResult>
         <requestId>8bb621fa-8512-45cc-b695-a30fe104cb06</requestId>
         <commonResponse>
            <responseCode>0</responseCode>
            <responseCodeDetail>Action successfully completed</responseCodeDetail>
            <transactionStatusLabel>AUTHORISED</transactionStatusLabel>
            <shopId>91335531</shopId>
            <paymentSource>EC</paymentSource>
            <submissionDate>2018-07-11T11:51:00.749+02:00</submissionDate>
            <contractNumber>5555555</contractNumber>
         </commonResponse>
         <paymentResponse>
            <transactionId>927452</transactionId>
            <amount>2990</amount>
            <currency>978</currency>
            <expectedCaptureDate>2018-07-11T11:51:00.791+02:00</expectedCaptureDate>
            <operationType>0</operationType>
            <creationDate>2018-07-11T11:51:00.791+02:00</creationDate>
            <liabilityShift>NO</liabilityShift>
            <transactionUuid>3257eebe44ab4b409315022735c45c2a</transactionUuid>
            <sequenceNumber>1</sequenceNumber>
            <paymentType>SINGLE</paymentType>
         </paymentResponse>
         <orderResponse>
            <orderId>myOder</orderId>
         </orderResponse>
         <cardResponse>
            <number>411111XXXXXX1111</number>
            <scheme>VISA</scheme>
            <brand>VISA</brand>
            <country>GB</country>
            <bankCode>0169</bankCode>
            <expiryMonth>12</expiryMonth>
            <expiryYear>2023</expiryYear>
         </cardResponse>
         <authorizationResponse>
            <mode>FULL</mode>
            <amount>2990</amount>
            <currency>9788</currency>
            <date>2018-07-11T11:51:00.791+02:00</date>
            <number>3fe3c2</number>
            <result>0</result>
         </authorizationResponse>
         <captureResponse/>
         <customerResponse>
            <billingDetails>
               <language>fr_FR</language>
            </billingDetails>
            <shippingDetails/>
            <extraDetails/>
         </customerResponse>
         <markResponse/>
         <threeDSResponse>
            <authenticationResultData>
            <transactionCondition>COND_SSL</transactionCondition>
            </authenticationResultData>
         </threeDSResponse>
         <extraResponse/>
         <fraudManagementResponse>
            <riskControl>
            <name>CARD_FRAUD</name>
            <result>OK</result>
         </riskControl>
         </fraudManagementResponse>
      </createPaymentResult>
   </ns2:createPaymentResponse>
</soap:Body>
</soap:Envelope>