Un paiement peut-être authentifié par code OTP ou via un lien de redirection

Lien de redirection

Les providers suivants permettent l’authentification d’un paiement via un lien de redirection:

  • Wave
  • Ecobank CI
  • Orange CI/SN

Pour récupérer l’URL de redirection, veuillez regarder dans l’objet nextAction, il ressemblerait à ceci:

{
    "nextAction": {
        "type": "redirection",
        "message": "mm_wave_live.redirection",
        "data": {
            "url": "https://pay.wave.com/c/mauvaiseUrlPourDemo",
            "method": "get",
            "headers": {},
            "data": {}
        }
    }
}

Toutes les informations nécessaires pour effectuer proprement la redirection se trouvent dans le champ nextAction.data

Important

Dans cet exemple, cela serait une requête vers GET https://pay.wave.com/c/mauvaiseUrlPourDemo.

HUB2 retournera l’objet paiement Payment et mettra le statut à jour après avoir contacté l’opérateur.

Authentifier un paiement via OTP

Lorsque l’action nextAction est de type otp, il faudra authentifier le paiement à l’aide du point de terminaison dédié à cela et du code de confirmation confirmationCode fourni par le client final.

Authentifier un paiement

Note: Cette requête peut être envoyée directement par l’application cliente en utilisant le jeton JWT token.

curl --location --request POST 'https://api.hub2.io/payment-intents/pi_tffiDaXyWQu203rIXhujW/authentication' \
--header 'Content-Type: application/json' \
--data-raw '{
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbnRlbnRJZCI6InBpX3RmZmlEYVh5V1F1MjAzcklYaHVqVyIsIm1lcmNoYW50SWQiOiIzIiwibW9kZSI6InNhbmRib3giLCJpYXQiOjE2NTgxMjYxMjV9.1eB6ifC2ldfRw5UstnVa-bQqIdx9_IGLRdwWyXzZR4o",
    "confirmationCode": "4567"
}'

Orange CI & OTP

Lors d’une tentative de paiement utilisant la méthode OTP vers le fournisseur Orange CI, Orange aura un délai d’expiration de 10 minutes.

Le paiement sera expiré après ce délai, ce qui peut provoquer une mauvaise expérience utilisateur pour les clients.

La bonne pratique ici pour éviter ce cas de figure est de demander l’OTP au client au préalable, avant d’effectuer une tentative de paiement.

Lorsque le client fourni l’OTP, appelez le point de terminaison d’HUB2 pour effectuer la tentative de paiement en fournissant directement l’OTP dans le corps de la requête, de la sorte :

curl --location --request POST 'https://api.hub2.io/payment-intents/pi_tffiDaXyWQu203rIXhujW/payments' \
--header 'Content-Type: application/json' \
--data-raw '{
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbnRlbnRJZCI6InBpX3RmZmlEYVh5V1F1MjAzcklYaHVqVyIsIm1lcmNoYW50SWQiOiIzIiwibW9kZSI6InNhbmRib3giLCJpYXQiOjE2NTgxMjYxMjV9.1eB6ifC2ldfRw5UstnVa-bQqIdx9_IGLRdwWyXzZR4o",
    "paymentMethod": "mobile_money",
    "country": "CI",
    "provider": "orange",
    "mobileMoney": {
        "msisdn": "00000001",
        "otp": "1234"
    }
}'

HUB2 contactera alors Orange avec toutes les informations et le paiement sera traité immédiatement, sans que l’étape d’authentification ne soit nécessaire.