|
PROFESSIONAL NEWSGROUPS WINDEV, WEBDEV and WINDEV Mobile |
| | | | | |
Utilisation WebServices Chorus |
Started by MathDev, Oct., 19 2020 4:11 PM - 16 replies |
| |
| | | |
|
| |
Posted on October, 19 2020 - 4:11 PM |
Bonjour à tous, Je me casse les dents sur Chorus. J'ai bien réussi à créer mon compte / application sur PISTE J'ai bien réussi à créer mon compte sur Chorus pro.
J'arrive à générer un Token sur le webservice
Par contre je coince vraiment pour appeler un webservice comme dans l'exemple fourni sur le site de Chorus : curl -k -H "content-type: application/json; charset=UTF-8" -H "Authorization:Bearer <access_token>" -H "cpro-account:<logintechnique:password encodée en base 64>" --data '{votre_body_json}' –X POST https://sandbox-api.aife.economie.gouv.fr/{votre_API}
J'ai "traduis" l'appel en curl par ce code :
http_REQ est une httpRequest http_REP est une httpResponse
bufJson_SORTIE est un Buffer
sMsg_Err est une chaîne
JSON_RETOUR est un JSON psToken_Url est une chaîne = "https://sandbox-api.aife.economie.gouv.fr/"+xxxxxxxxxxxx (mon APP)
http_REQ..Method = httpPost http_REQ..URL = psToken_Url http_REQ..AuthToken = ? http_REQ..ContentType = "application/json" http_REQ..Content = ChaîneVersUTF8("cpro-account:"+Glob_Base64_Tech) http_REP = HTTPEnvoie(http_REQ) SI ErreurDétectée ALORS sMsg_Err = "Erreur de l'utilisation de l'API"+RC+RC+ErreurInfo(errMessage) SINON bufJson_SORTIE = http_REP..Contenu JSON_RETOUR = ChaîneVersJSON(bufJson_SORTIE) Jeton = JSON_RETOUR.access_token FIN
J'arrive bien à générer un access token, mais je n'arrive pas à l'exploiter : {"access_token":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX","token_type":"Bearer","expires_in":3600,"scope":"openid resource.READ"}
Idem le Data en json je ne vois pas trop quoi mettre... Si une bonne âme pouvait m'éguiller sur ce casse tête de Chorus...
D'avance... Merci |
| |
| |
| | | |
|
| | |
| |
Registered member 939 messages Popularité : +66 (68 votes) |
|
Posted on October, 20 2020 - 9:29 AM |
bonjour,
Perso je procède ainsi, avec une requête REST , en ajoutant juste 'Authorization' dans l'entête, çà devrait être identique avec une HTTPRequete...
_rest_req_api..Méthode=httpPost _rest_req_api..URL=_url _rest_req_api..Entête["Authorization"]="Bearer "+_current_token _rest_req_api..Entête["cpro-account"]=_auth_base64 _rest_req_api..ContentType="application/json" _rest_req_api..Contenu=_data _rest_reponse=RESTEnvoie(_rest_req_api)
bon dèv |
| |
| |
| | | |
|
| | |
| |
Posted on October, 20 2020 - 10:17 AM |
D'accord, merci beaucoup je vais partir comme ça.
Juste 2 petites question complémentaires (si ça te déranges pas ): - Pourrais tu me montrer la tête de ton _url ? - Idem pourrais tu me montrer à quoi ressemble le _data ?
D'avance, merci. |
| |
| |
| | | |
|
| | |
| |
Registered member 939 messages Popularité : +66 (68 votes) |
|
Posted on October, 20 2020 - 11:23 AM |
| |
| |
| | | |
|
| | |
| |
Posted on October, 20 2020 - 12:33 PM |
Arf je crois que je vais devenir fou ! Je bloque vraiment sur chaque étape
Le retour du RestEnvoie me renvoie ça :
HTTP/1.1 401 Unauthorized Date: Tue, 20 Oct 2020 10:30:20 GMT Server: Content-Length: 0 X-CorrelationID: Id-3cbc8e5fa68386bb2394f28e 0 WWW-Authenticate: Bearer realm="DefaultRealm",error="invalid_token",error_description="Unable to find the access token in persistent storage." Keep-Alive: timeout=5, max=297 Connection: Keep-Alive X-Xss-Protection: 1; mode=block Content-Security-Policy: default-src 'self' data: java: java.com local-trust.com w3.org; connect-src *; font-src 'self' data: *; frame-src *; img-src 'self' data:; script-src 'self' 'unsafe-eval' 'unsafe-inline' *; style-src 'self' 'unsafe-inline' * Referrer-Policy: no-referrer X-Permitted-Cross-Domain-Policies: none Expect-CT: max-age=86400, enforce, report-uri=https://example.com/ct-report
Je ne comprends pas car le jeton est bien généré (avec la validité et tout), mais malgré ça j'ai ce message désobligeant
En tout cas, merci beaucoup pour ton aide Christophe.
Cordialement, |
| |
| |
| | | |
|
| | |
| |
Posted on October, 20 2020 - 1:36 PM |
Rraaa je vais m'arracher les cheveux ! Quand j'utilise ta méthode, j'ai une erreur 401...
J'envoie ça (grâce à ta précieuse aide) :
_rest_req_api est un restRequête _rest_reponse est un restRéponse
_url est une chaîne = "https://api.aife.economie.gouv.fr/cpro/factures/v1/consulter/historique" _data est un JSON = "{idfacture = QUAL_00000001682305}"
_rest_req_api..Méthode = httpPost _rest_req_api..URL = _url _rest_req_api..Entête["Authorization"] = "Bearer "+Jeton _rest_req_api..Entête["cpro-account"] = Glob_Base64_Tech _rest_req_api..ContentType = "application/json" _rest_req_api..Contenu = _data _rest_reponse = RESTEnvoie(_rest_req_api)
Voici le message (désobligeant de l'api :
HTTP/1.1 401 Unauthorized Date: Tue, 20 Oct 2020 10:34:05 GMT Server: Content-Length: 0 X-CorrelationID: Id-1dbd8e5f81d7468b5b71fcbc 0 WWW-Authenticate: Bearer realm="DefaultRealm",error="invalid_token",error_description="Unable to find the access token in persistent storage." Keep-Alive: timeout=5, max=289 Connection: Keep-Alive X-Xss-Protection: 1; mode=block Content-Security-Policy: default-src 'self' data: java: java.com local-trust.com w3.org; connect-src *; font-src 'self' data: *; frame-src *; img-src 'self' data:; script-src 'self' 'unsafe-eval' 'unsafe-inline' *; style-src 'self' 'unsafe-inline' * Referrer-Policy: no-referrer X-Permitted-Cross-Domain-Policies: none Expect-CT: max-age=86400, enforce, report-uri=https://example.com/ct-report
Pourtant le jeton est bon car bien généré, la base 64 que je passe aussi... C'est un casse tête Chorus !
En tous les cas Christophe merci beaucoup pour ton aide : |
| |
| |
| | | |
|
| | |
| |
Registered member 939 messages Popularité : +66 (68 votes) |
|
Posted on October, 20 2020 - 2:16 PM |
| |
| |
| | | |
|
| | |
| |
Posted on October, 20 2020 - 3:23 PM |
Merci beaucoup pour ton aide. J'arrive à récupérer les informations (à priori ) Tu es bien plus efficace que toute l'équipe de bras cassés qui sont censés t'aider sur la plateforme Chorus ! |
| |
| |
| | | |
|
| | |
| |
Posted on October, 20 2020 - 5:16 PM |
Du coup j'ai une question subsidiaire, maintenant que j'arrive bien à envoyer une facture au format pdf, comment faire pour qu'elle soit "scannée" par chorus pour que le ttc, la date... soient alimentés automatiquement ? Quel webservice utiliser une fois que la facture est uploadée ? |
| |
| |
| | | |
|
| | |
| |
Registered member 939 messages Popularité : +66 (68 votes) |
|
Posted on October, 20 2020 - 6:01 PM |
| |
| |
| | | |
|
| | |
| |
Posted on October, 20 2020 - 6:02 PM |
Merci infiniment Je vais ériger une statue en ton honneur |
| |
| |
| | | |
|
| | |
| |
Posted on October, 21 2020 - 1:54 PM |
Bonjour (Christophe? )
Hier je pouvais voir ma facture dans Chorus, et là quand je refais un test, plus rien ne se passe...
Auriez vous une idée?
De plus, l'envoi de la facture me retourne les informations (montant, date...)
_rest_req_api est un restRequête _rest_reponse est un restRéponse
_url est une chaîne = "https://sandbox-api.aife.economie.gouv.fr/cpro/factures/v1/deposer/pdf"
sFichier est une chaîne
sFichier = fSélecteur("", "", "Sélectionnez un fichier...", "PDF" + TAB + "*.pdf", "*.pdf")
ParamEntree est un JSON ParamEntree.nomFichier = fExtraitChemin(sFichier, fFichier + fExtension) ParamEntree.fichierFacture = Encode(fChargeBuffer(sFichier),encodeBASE64SansRC) ParamEntree.formatDepot = "PDF_NON_SIGNE"
_rest_req_api..Méthode = httpPost _rest_req_api..URL = _url _rest_req_api..Entête["Authorization"] = "Bearer "+Jeton _rest_req_api..Entête["cpro-account"] = Glob_Base64_Tech _rest_req_api..ContentType = "application/json" _rest_req_api..Contenu = VariantVersJSON(ParamEntree) _rest_reponse = RESTEnvoie(_rest_req_api)
Info(_rest_reponse..Contenu)
Et le retour de _rest_rponse :
{<10> "codeRetour" : 0,<10> "libelle" : "GCU_MSG_01_000",<10> "numeroFacture" : "FC2005001",<10> "dateFacture" : "2020-04-30",<10> "codeFournisseur" : "44854198700013",<10> "codeDeviseFacture" : "EUR",<10> "typeFacture" : "FACTURE",<10> "typeTva" : "TVA_SUR_ENCAISSEMENT",<10> "montantAPayer" : 1.89,<10> "montantHtTotal" : 158.16,<10> "montantTVA" : 31.63,<10> "pieceJointeId" : 8311928<10>}
Je pense qu'il manque des informations dans l'envoi, mais je ne vois pas quoi, surtout qu'il n'y a pas d'erreurs dans le retour...
Merci pour vos réponses. |
| |
| |
| | | |
|
| | |
| |
Posted on October, 21 2020 - 5:47 PM |
Christophe a écrit :
Merci Christophe, j'ai un petit soucis dans mon soumettreFacture.
Le webservice semble fonctionner, cependant j'ai ça comme retour.
Vous auriez une idée?
Je pense que c'est l'idfournisseur qui n'est pas bon, mais je ne sais pas trop quoi mettre...
D'avance, merci,
|
| |
| |
| | | |
|
| | |
| |
Registered member 834 messages Popularité : +13 (13 votes) |
|
Posted on November, 09 2020 - 6:21 AM |
Bonjour, J'ai vue vos échanges sur chorus et c'est moi qui me casse les dents maintenant !
J'ai bien réussi à créer mon compte / application sur PISTE J'ai bien réussi à créer mon compte sur Chorus pro.
Il faut se raccorder sur une structure, et la je coince !
Créer un raccordement Oauth2 sur l’environnement de qualification Chorus Pro, pour plus d’informations, vous pourrez vous référer à la page suivante : https://communaute.chorus-pro.gouv.fr/documentation/aides-aux-developpeurs-api-en-mode-oauth2
Doc : comprends pas
-- Synchronize Systems International LTD Développement d'outils de gestion
Environnements AS400 – Windows Langages GAP III – CL – Visual Basic - Visual Adélia - Adélia - Windev
Bangkok / Pattaya |
| |
| |
| | | |
|
| | |
| |
Registered member 939 messages Popularité : +66 (68 votes) |
|
Posted on November, 09 2020 - 9:13 AM |
bonjour Jean-Michel,
normalement ce n'est pas très compliqué, mais il faut dans un premier temps ajouter les menus pour effectuer le raccordement. De mémoire je crois que par défaut il n'y a pas les espaces 'EDI API'.
si vous n'avez pas ce menu sur votre compte de qualif :
il faudra se rendre dans le menu 'Activité du gestionnaire' Modifier votre structure. ( le petit crayon ) vous aurez liste des espaces de votre structure, et cochez raccordement EDI API en modification.
Une fois validé, il vous faudra peu être vous reconnecter , vous devriez avoir le menu raccordement EDI API. Cliquez dessus et en haut à droite, vous aurez gérer raccordement API. Puis dessous, déclarer un raccordement PISTE.
Bon dèv |
| |
| |
| | | |
|
| | |
| |
Registered member 2 messages |
|
Posted on April, 12 2021 - 9:36 AM |
Bonjour, personnellement le serveur me renvoie une erreur 500, auriez vous une idée d'où cela puisse venir ? |
| |
| |
| | | |
|
| | |
| |
Registered member 939 messages Popularité : +66 (68 votes) |
|
Posted on April, 12 2021 - 12:47 PM |
Antonin Morez a écrit : > Bonjour, personnellement le serveur me renvoie une erreur 500, auriez vous une idée d'où cela puisse venir ?
bonjour Antonin,
normalement les erreurs 500 indique des soucis côté serveur. Essayez de refaire un test dans l'après midi, ou bien demain, la plateforme Chorus a peu être des soucis.
Ou bien, la donnée que vous envoyez ne lui plait pas du tout |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|