PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → WD Acces Chorus Pro
WD Acces Chorus Pro
Iniciado por Francis Guillochon, jun., 28 2019 3:41 PM - 18 respostas
Publicado em junho, 28 2019 - 3:41 PM
Bonjour,

J'essaye d'exécuter l'exemple de la LST 115 pour essayer de comprendre le fonctionnemen,t et adapter mon applicatif pour le 01/01/2020 avec cette fonctionnalité et je bute à la première requête RESTEnvoie()

J'ai acheté le certificat comme indiqué, fais les raccordement aux API et lorsque j'exécute le bouton "Consulter Compte Utilisateur" j'ai l'erreur suivante :

Appel WL :
Traitement de 'Procédure globale ConsulterCompteUtilisateur' (COL_ChorusPro.ConsulterCompteUtilisateur), ligne 46

Fonction 'RESTEnvoie', syntaxe 0

Que s'est-il passé ?
L'élément 'GV INFORMATIQUE - CHORUSPRO' n'a pas été trouvé.

Code erreur : 1025
Niveau : erreur fatale

Dump de l'erreur du module 'wd240vm.dll' (24.0.478.3).
Identifiant des informations détaillées (.err) : 1025
Informations de débogage :

Chargement de la partie execution d'un objet
Nom physique : GV INFORMATIQUE - CHORUSPRO
Type cherche : 0
Fonction (10,424)
Informations supplémentaires :
EIT_PILEWL :

Procédure globale ConsulterCompteUtilisateur (COL_ChorusPro.ConsulterCompteUtilisateur), ligne 46
Clic sur BTN_Consulter_les_infos_du_compte (FEN_TEST_CHORUS.BTN_Consulter_les_infos_du_compte), ligne 2
EIT_DATEHEURE : 28/06/2019 15:37:05
EIT_TYPE_WDFILE : <7>
EIT_IDCODE : <458752>

Une bonne âme pourrait-elle 'aider à comprendre pourquoi le nom de mon certificat pose problème (ci-joint l'image de la structure JSON)

Bien cordialement
Francis


Membro registado
940 mensagems
Popularité : +66 (68 votes)
Publicado em junho, 28 2019 - 4:40 PM
bonjour Francis,

à l'époque où j'ai développé notre interface Chorus non n'avions pas WD24 donc pas de requête rest avec certificat.
Cependant, normalement vous devriez avoir l'empreinte numérique de votre certificat et non le nom ,

HTTPListeCertificat() vous donne le nom + tabulation + le fournisseur + tabulation et enfin l'empreinte numérique
c'est c'est élément qu'il faut transmettre je pense

( sur mon interface en wd21 avec des HTTP requêtes en tout cas c'est le cas )


Par contre, je ne sais pas si vous êtes au courant, mais Chorus va passer à l'authentification oAuth2 via PISTE.

Je pense qu'il serait intéressant que vous y jetiez un coup d'oeil, histoire de ne pas développer un système qui risque d'être obsolète !


=> https://communaute.chorus-pro.gouv.fr/documentation/presentation-de-la-plateforme-piste/


bon dèv
Publicado em junho, 28 2019 - 4:55 PM
Bonjour Christophe,

Merci pour cette réponse,

J'ai essayé avec l'empreinte numérique et cela me donne le même résultat.
L'idée que le certificat Certinomis que je viens d'acheter à 300€ ne marche pas longtemps ne me réjouis guère.

Ce qui est bizarre, c'est que l'exécution en HTTP semble fonctionner.

Bon weekend
Publicado em junho, 29 2019 - 9:23 AM
Bonjour,

A toutes fins utiles pour ceux qui chercherai comme moi.

En fait si l'élément n'est pas trouvé, c'est que cette élément est de type Certificat et qu'il faut donc le charger au préalable avec les instructions suivantes :

// Chargement à partir d'un fichier
certificat_utilise est une chaine = Nom du fichier certificat sur disque

tabCertificat est un tableau de Certificats
MonCertificat est un Certificat

tabCertificat = CertificatCharge(certificat_utilise, GetMDPCertificat())
MonCertificat = tabCertificat[1]

Bon weekend
Publicado em setembro, 09 2019 - 1:59 PM
Bonjour,

avez-vous réussi à aller jusqu'au bout de l'exemple de la LST 115 ?

De mon côté, j'ai bien passé les étapes d'achat et d'utilisation du certificat.
J'arrive à appeler les premières fonctions ChorusPro données dans l'exemple :
- Consulter les informations du comptes,
- Consulter les informations fournisseur,
- Consulter les informations du service,
- Consulter les taux de TVA,
- Consulter la liste des engagements (sans et avec IHM),

Cependant depuis ce dernier IHM, je bloque sur le dépôt de la facture.

Il est probable que ma difficulté soit uniquement lié au type d'engagement et à son état courant.
J'ai bien vu le message "Attention : dans le matelas de données, les engagements peuvent être liés à des services ne permettant pas le dépôt de facture. Il faut il faut alors indiquer ci-dessous un service adapté", a priori confirmé par le code retour 20014 : GDP_MSG_11.084 : la sélection du service par défaut pour une demande de paiement n'est pas autorisée";

Le problème c'est que j'ai la même chose avec tous les exemples disponibles dans le matelas de données, et je n'arrive pas à déterminer ce qu'il conviendrait d'indiquer comme service.

Si une âme charitable voulait bien m'éclairer sur le contexte nécessaire au fonctionnement de l'exemple en terme de type d'engagement / Etat courant / informations service, j'aurais bien voulu pouvoir faire fonctionner cette partie de l'exemple avant de m'attaquer à la suite des développements.

D'avance merci !

Dominique Ferrand
Publicado em setembro, 11 2019 - 10:00 AM
Bonjour,

Oui j'ai réussi a faire un dépôt de facture.

Je suis en déplacement jusqu'à mardi prochain mais on peu se contacter en privé àprès

Cordialement
Membro registado
8 mensagems
Publicado em outubro, 01 2019 - 7:04 PM
Bonjour,

J'ai un problème identique sur l'accès à Chorus Pro. J'ai eu la mauvaise idée de passer par Certeurope qui m'a facturé 320 € HT la clef Chorus Pro sans être capable de me conseiller sur sa mise en place. Je me retrouve avec 3 fichiers : un fichier Local.cer que j'ai transformé avec internet Explorer en .p7b (Cf. instruction site Chorus pro), un fichier CSR et un fichier KEY.

J'ai renseigné local.p7b est le site Chorus pro qualification et le site l'a accepté.

La liste 115 précise deux instructions :

cRestRequete.CertificatClient="GetCerticat()"
cRestRequete.MotDePasseCertificatClient="GetMDPCerticat()"

Que doit-on renseigner dans GestCertificat() et GetMDPCerticat() car j'ai tout essayé : Local.p7b, l'empreinte,... bref rien y fait.

Sur les codes qui sont présents dans le forum, il semble que l'on renvoie à des variables, mais que contiennent celles-ci : un chemin pour trouver les fichiers p7b et la KEY ou autre chose ?

Par ailleurs, savez-vous comment peut-on vérifier que la clef publique est bien paramétrée ? Je bute sur le sujet depuis plusieurs jours et un retour d'expérience serait le bienvenue.

Enfin, comme je ne suis pas certain que Certeurope ait fait correctement le paramétrage clef publique/clef privé et qu'ils refusent de répondre à mes questions sans repayer à nouveau, pourriez-vous m'indiquer un organisme de certification compétent sur Chorus Pro au cas où je dois refaire une nouvelle authentification.

Merci à tous par avance.

Olivier.
Mensagem modificada, outubro, 01 2019 - 7:15 PM
Publicado em outubro, 03 2019 - 4:18 PM
Bonjour, j'ai rencontré le même problème aujourd'hui avec le paramètre CertificatClient d'une variable restRequête,
Impossible d'utiliser le certificat contenu dans le store personnel ou celui de la machine. Ni par l'empreinte ni par le nom...

La solution de Francis indiquant l'utilisation de CertificatCharge ne marchait pas chez moi.

Par désespoir j'ai indiqué directement le chemin vers le certificat .p12 (pfx) ainsi que le mot de passe, et là ça a fonctionné...
Il est aussi possible de fournir directement un buffer, pratique si vous enregistrez le certificat dans votre base de données.

Il n'est donc pas nécessaire d'installer le certificat sur le poste.

L'aide de Windev à ce niveau est du coup complètement à côté de la plaque..

En espérant que ça en dépanne certains.

Cordialement.
Membro registado
8 mensagems
Publicado em outubro, 03 2019 - 10:47 PM
Bonsoir,

Merci pour ta réponse.

J'ai essayé avec ta solution mais çà bloque toujours. Toujours le message sur le certificat. Un cauchemar entre le site Chorus, l'organisme de certification, openssl et WinDev déjà 10 jours que je souffre et pas de solution pourtant çà devait prendre 59 secondes sur la vidéo... J'ai pris la routine standard et pourtant rien y fait. Si tu t'appuies sur le même code que le mien, est-ce que tu vois un écart qui justifierait le plantage.

Merci d'avance.

Olivier






PROCÉDURE FactureDeposerPDF

sFichierFacture est une chaîne
nIDutilisateur est un entier
FormatDepot est une chaîne
nIDutilisateur=1
sFichierFacture="c:\societeABC.pdf"
FormatDepot="PDF_NON_SIGNE"

cRestRequete est une restRequête

// API correspondante : https//communaute.chorus-pro.gouv.fr/deposer-pdf-facture/

sUrlAppel est une chaîne="https://chorus-pro.gouv.fr : 5443/service-qualif/factures/deposer/pdf"

//Construction des paramètres
ParametreEntree est un JSON <description="DeposerPDFFacture_M8_V0_input">
ParametreEntree.idUtilisateurCourant=nIDutilisateur
ParametreEntree.fichierFacture=Remplace(Encode(fChargeBuffer(sFichierFacture),encodeBASE64),RC,"")
ParametreEntree.nomFichier = sFichierFacture
ParametreEntree.formatDepot=FormatDepot

//Construction des paramètres de base
cRestRequete.URL=sUrlAppel
cRestRequete..Méthode=httpPost
cRestRequete.ContentType="application/json"

//Fourniture des paramètres d'entrée
cRestRequete.Contenu=ParametreEntree

//code de l'utilisateur technique du matelas de données Chorus
cRestRequete.Utilisateur="cRestRequete.Utilisateur(USER1_SOCIETE999999@cpp2017.fr)"
cRestRequete.MotDePasse="GetMDPUtilisateurTechnique(XYZabc1234])"

//Mon certificat et mot de passe en format chaine ; j'ai essayé en pfx et p12
cRestRequete.CertificatClient="GetCerticat(C:\moncertifchorus.pfx)"
cRestRequete.MotDePasseCertificatClient="GetMDPCerticat(motdepasse)"

//Exécution de l'API REST
Crestreponse est une restRéponse
Crestreponse = RESTEnvoie(cRestRequete)

//on force la conversion du résultat
ResultatAPI est un JSON <description="DeposerPDFFacture_M8_V0_output">
ResultatAPI = Crestreponse.Contenu
ResultatAPI = Crestreponse.Entête
ResultatAPI = Crestreponse.CodeEtat
RENVOYER ResultatAPI
Publicado em outubro, 04 2019 - 9:15 AM
Bonjour c'est,
cRestRequete.CertificatClient="C:\moncertifchorus.pfx" et non pas cRestRequete.CertificatClient="GetCerticat(C:\moncertifchorus.pfx)"

Cordialemennt,
Membro registado
8 mensagems
Publicado em outubro, 04 2019 - 10:48 AM
Merci Sylvain,

Plus d'anomalie à la connexion. Alors j'ai essayé de voir s'il y avait quelque chose sur la qualif chorus pro, mais je ne vois rien.

J'ai mis un bout de code pour alimenter des champs de saisie disponible sur un écran en retour (sai_cadre et sai_modepaiement)…
résultat vide.

As-tu réussi ?

en plus ce qui est bizarre c'est qu'avec resultatAPI. …. on a accès à des données en retour que l'on a pas rempli : par exemple resultatAPI.montantTVA

J'ai eu la hotline Chorus ...ils cherchent. Un vrai parcours de combattant !

ResultatAPI est un JSON <description="DeposerPDFFacture_M8_V0_output">
ResultatAPI = Crestreponse.Contenu
SAI_CADRE=ResultatAPI.codeFournisseur
SAI_MODEPAIEMENT=ResultatAPI.pieceJointeId
RENVOYER ResultatAPI
Membro registado
6 mensagems
Publicado em janeiro, 27 2020 - 6:27 PM
Bonsoir à tous,
je viens de recevoir le certificat que j'ai commandé auprès de certigna. J'ai essayé de tester l'exemple LST 115. j'ai essayé pas mal de pistes mais en-vain.
la réponse 403 qui s'affiche



Je ne sais pas si le passage à l'authentification oAuth2 via PISTE peut être à l'origine de ce blocage du certificat.
Si quelqu'un peut m'aider à ce niveau je vous serai tellement reconnaissante.
:)
Publicado em janeiro, 28 2020 - 9:15 AM
Bonjour,

Je travaille en mode certificat. Je n'ai pas ouvert de compte sur piste car le fonctionnement en mode certificat fonctionne jusqu'à fin 2020. Mon compte était opérationnel depuis juillet 2019 ce qui explique qu'il a été maintenu sur l'ancienne version. L'accès en mode test/certificat à mon avis pour les nouveaux entrants est bloqué et le mode jeton s'impose. Sur ce dernier mode comme toujours on ne comprend rien aux explications données par l'AIFE et je n'ai pas encore exploré.
En plus certaines API ont été supprimées, il faut se reporter au mail envoyé par Chorus pro et la documentation n'a pas été mise à jour sur le portail.
Pour les API, il faut savoir ce que vous souhaitez faire : envoyer des factures, recevoir des factures. En plus, il faut capter les référentiels indispensables les Id techniques de Chorus pro via les API en output. A titre d'exemples, ceux-ci sont données dans le matelas de données en deux zones : les gestfour (fournisseur) et les gestdest (entité publique). Je n'ai pas traité des API travaux trop complexes.
J'espère avoir répondu à vos questions.
Bon courage … j'y travaille depuis septembre.
Cdl
OR
Membro registado
6 mensagems
Publicado em janeiro, 28 2020 - 10:25 AM
Merci Olivier Rochefort pour réponse si rapide et constructive.
Vous avez tout à fait raison, les guides proposé par l'AIFE ne font que perturber. Aussi, PISTE fournit deux guides qui ne sont pas clair non plus.
Le problème est que certigna ne m'a pas preuve pour ça et on a payé 360£ pour rien.
En tout cas merci beaucoup encore une fois et bon courage dans tout ce que vous faites!
Publicado em janeiro, 28 2020 - 4:16 PM
Bonjour,

Mon appli fonctionnait sans problème avec un certificat CERTINOMIS depuis le mois de novembre.
Visiblement la dernière version de Chorus Pro installée il y a une quinzaine de jours à mis ce type authentification en rideau.
Au dire de la personne que j'ai eu au téléphone, il semblerai que le problème est impacté un bon nombre de compte
Il semblerait qu'une mise à jour est lieu demain après-midi. En espérant qu'elle réglera le problème
L'assistance PC SOFT que j'avais contacté il y a quelques temps m'a indiqué que l'exemple de la LST 115 serait modifié lors d'une MAJ future pour intégrer l’authentification OAuth.

Cordialement
Membro registado
6 mensagems
Publicado em janeiro, 28 2020 - 5:38 PM
merci Francis pour cette explication ça m'a beaucoup soulagée. Donc, le certificat que j'ai commandé ne sert plus à rien? Je sais pas s'il vont accepter la rétraction. On va attendre donc qu'est ce que ça va donner la mise à jour qui aura lieu demain.
Je vous tiendrai informés si je trouverai la bonne solution.
Bien à vous!
Publicado em janeiro, 30 2020 - 3:22 PM
Bonjour,

La mise à jour ne concernait pas notre problème.
J'ai réussi à avoir quelques infos par téléphone, et le problème viens que la procédure "ConsulterCompteUtilisateur_output"
n'existe plus et est à l'origine du message d'erreur concernant le certificat !!!
L'ID Utilisateur est une valeur facultative donc vous pouvez la renseigner avec une valeur 1234567890

En ce qui concerne le détail des lignes, un contrôle supplémentaire impose une désignation des produits ne dépassant pas 40 caractères

Apres ces modifications tout refonctionne correctement.

Bien à vous
Membro registado
6 mensagems
Publicado em janeiro, 30 2020 - 6:07 PM
Bonjour,
Merci Francis pour votre retour!
je pense pas que c'est l'origine de mon problème car le message d'erreur se déclenche juste avant l'appel de la procédure "ConsulterCompteUtilisateur_output". c'est plutôt au moment de l'appel REST de la procédure "ConsulterCompteUtilisateur_input"








Je pense plutôt que c'est lié à l'authentification en mode certificat qui n'est plus possible pour les nouveaux partenaires.
J'espère que PcSoft puisse nous générer la MAJ chorus au plutôt.
A bientôt avec un retour positif j'espère! ;)
Mensagem modificada, janeiro, 30 2020 - 6:08 PM
Publicado em fevereiro, 03 2020 - 7:52 AM
Bonjour,

Non l'authentification par certificat fonctionne toujours,
Les fonctions Input et Ouput marche de paire.
Supprimer dans votre programme tout ce qui concerne "ConsulterCompteUtilisateur" et attribuer une valeur à l'IDUtilisateur et vous verrez que tout fonctionne

Bon courage
Francis