Project

General

Profile

Paiement

Voir aussi le laïus standard sur le paiement.

Configuration du service de paiement

Cette partie devrait aller dans la documentation Publik de l'administrateur technique.

Dans Combo, dans le menu sur la page d'accueil du /manage/, "Paiement en ligne", ajouter une régie, les paramètres varient d'un fournisseur à l'autre.

PayZen

Pour la recette :

{
  "secret_test": "xxx", 
  "site_id": "xxx", 
  "ctx_mode": "TEST" 
}

Et pour la prod :

{
  "secret_production": "xxx", 
  "site_id": "xxx", 
  "ctx_mode": "PRODUCTION" 
}

SIPSv2 (Atos en Belgique)

{
  "platform": "test", 
  "secret_key": "002001000000001_KEY1", 
  "merchant_id": "002001000000001", 
  "key_version": "1" 
}

Ingenico (ex Ogone)

Attention ils demandent configuration dans leur backoffice de l'adresse de callback. (https://combo.example.net/lingo/callback/<numéro de la régie>/).

Dans leur backoffice également, il faut choisir « Vente » sous l’onglet « Paramètres de transaction globaux », dans la rubrique « Code d’opération par défaut » de la page d’Information technique. (sinon la notification annonce les paiements comme "acceptés" et non "payés" et ils ne sont pas pris en compte).

{
  "sha_out": "XXX", 
  "environment": "TEST", 
  "sha_in": "XXX", 
  "pspid": "XXX" 
}

(environment est à mettre à "PROD" pour utiliser leur environnement de production)

PayFiP Régie / Régie web-service (ex-TIPI)

La collectivité (le régisseur ou son service financier) doit prendre contact avec le correspondant monétique de la trésorerie dont elle dépend, suite à la signature d'une convention ils obtiendrons un identifiant, le NUMCLI.

Il y a uniquement du paramétrage à faire dans lingo; le paramétrage à mettre en place est :
  • en test
    {
      "saisie": "T",
      "numcli": "XXXXX" 
    }
  • en activation (phase avant mise en prod)
    {
      "saisie": "X",
      "numcli": "XXXXX" 
    }
  • en production
    {
      "saisie": "W",
      "numcli": "XXXXX" 
    }

Workflow de paiement dans w.c.s.

Cette partie devrait aller dans la documentation Publik de l'administrateur fonctionnel (en cours).

Il faut dans le workflow une étape "en attente de paiement" qui contienne :

  • un appel webservice,
    • url : [portal_url]/api/lingo/add-basket-item?NameId=[form_user_name_identifier_0] (optionnellement, &regie_id=xxx)
    • Clé de signature de la requête : laisser vide, ça sera déterminé automatiquement
    • Méthode : POST (JSON)
    • Envoyer les données du formulaire : oui (ou non si on veut gérer un libellé différent pour l'entrée dans le panier)
    • Données à envoyer (POST):
      • amount : le montant du paiement
      • éventuellement cancellable=no si on ne veut pas permettre à l'usager d'annuler le paiement depuis son panier
      • (si on décide de ne pas envoyer les données du formulaire) :
        • url: =form_url
        • display_name: =form_var_number (c'est le nom de la variable du formulaire qui stocke le numéro de la facture)
    • Type de réponse : JSON
    • Nom de variable : panier (ou autre, c'est utisé pour l'annulation)
  • un saut sur déclencheur ("trigger"),
    • Déclencheur : paid
    • Rôles autorisés : laisser vide
    • Statut : le statut avec la suite du workflow devant s'exécuter une fois le paiement fait.

Le montant du paiement est calculé en prenant dans l'URL les paramètres "amount" (on pourrait donc ajouter &amount=[form_var_amount]) et le paramètre "amount" qui peut être présent dans "Données à envoyer (POST)", les différents montants sont additionnés.

Pour avoir un workflow unique associé à des demandes dont le montant varie, on peut passer par une variable de workflow, qui sera ensuite configurée formulaire par formulaire.

Pour permettre à l'usager d'annuler depuis le panier (ce qui par défaut est autorisé, cf cancellable=no plus haut pour le refuser), il faut également un saut sur le déclencheur adéquat ("cancelled").

  • Déclencheur : cancelled
  • Rôles autorisés : laisser vide
  • Statut : le statut avec la suite du workflow devant s'exécuter une fois l'élément retiré du panier

Pour retirer un élément du panier :

  • un appel webservice
    • url : [portal_url]/api/lingo/remove-basket-item?NameId=[form_user_name_identifier_0]
    • Clé de signature de la requête : laisser vide, ça sera déterminé automatiquement
    • Méthode : POST (JSON)
    • Envoyer les données du formulaire : non
    • Données à envoyer (POST):
      • basket_item_id : [panier_response_id] (panier c'est le nom utilisé dans l'appel d'ajout)
    • Type de réponse : JSON

Also available in: PDF HTML TXT