je pourrai créer une structure qui récupère les éléments ci-dessous (...) : comment faire pour accéder à la clé et à la valeur. Je regarde la doc que tu m'as envoyé. MERCI POUR TON AIDE. C'est gentil...
"orderExecutioninformation":{
"date":"2015-04-01T14:38:40",
"amount":15000,
"currency":"XOF",
"service":"SMS_OCB",
"country":"CIV",
"contractId":"211...7-a121-46f2-933c-cd4...67"
}
-
Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !Rejeter la notice
AIDE api orange sms
Discussion dans 'Résolution problème & conseils' créé par FLAV2020, Fev 3, 2020.
comme dit plus haut windev gere les jsons
en gros si tu fais un truc comme ca :
tu pourras appeler ta clef orderExecutioninformationCode (Windev):
montextretourapi est chaine = valeur retour de ton api
monretour est un json
monretour = chaineversjson(montextretourapi)
de la facon suivante :
de même avec jsonversvariantCode (Windev):
trace(monretour.orderExecutioninformation.date) // renverra "2015-04-01T14:38:40
tu déclare un variant au lieu du json
tu peux le faire a l’ancienne avec sérialises.... en déclarant tes structures si tu veux.
l'avantage c'est que l'assistant si tu lui donne le json de retour de proposeras la structure a déclarer.
Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
après ca dépend surtout de ta version de windev
cordialement
Gemini1961 apprécie ceci.
super c'est une bonne piste que tu me donne. J'ai windev 23 mais pour être franc je ne suis pas un habitué du json en windev (en terme d'utilisation).
Du coup grace à cette structure je pourrai accéder aux éléments que je désire...MERCI BEAUCOUP. je reviendrai.
Dit comment as-tu accéder à l'assistant (le menu?). merci
si dans ton code tu tape deserialise( ...windev va te proposer un assistant tu clique dessus
Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
ca reste plus rapide avec la variable json et tu accèdes a tes données comme avec une structure.
tu n'as pas besoin de déclarer de structure avec windev 23
OK je vois, merci!
Bonjour Khalias, j'ai pu essayer le code mais il marche en partie
[windev]vResVariant est un variant
vResVariant = RetourAPI //(retour json de l'URL ---->Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
)
POUR TOUT monElement de vResVariant.purchaseOrders
info (monElement.purchaseOrderId + RC + monElement.mode +RC+ monElement.bundleDescription)
FIN
Lorsque j'essaie de faire le code ci-dessous, il ne marche pas :
POUR TOUT monElement de vResVariant.purchaseOrders
info (monElement.orderExecutioninformation.date + RC + monElement.orderExecutioninformation.amount)
FIN [/windev]
ton retour api est une chaine au format json.
pour moi tu as oublier la commande jsonversvariant.
comme tu ne met pas le code erreur ni le code d e l'appel de l'api (sans les mots de pass bien entendu) c'est plus compliquer.Code (Windev):
valeurretourapi est chaine // ton retour obtenue par ton appel a l'api (rest envoie ou httprequette)
vResVariant est un variant =Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
(valeurretourapi )
POUR TOUT monElement de vResVariant.purchaseOrders
info (monElement.purchaseOrderId + RC + monElement.mode +RC+ monElement.bundleDescription)
FIN
POUR TOUT monElement de vResVariant.purchaseOrders
info (monElement.orderExecutioninformation.date + RC + monElement.orderExecutioninformation.amount)
verifie que le retour de l'api correspond bien a un json valide.
ok merci Khalias. En fait ce qui n’embête actuellement, c'est j'ai pas mon pc où se trouve windev pour te fournir le bon code. Sinon c'est exactement ce que j'ai écrit et j'ai même mis dans une fonction #INFO# qui ne me renvoie rien du tout. En debug, il saut sur le deuxième [....POUR TOUT...]
Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
j'ai créeer un bouton avec cecode :
j'ai utilisé le code brute et j'ai bien les deux infos.Code (Windev):
sTextjson est chaîne =[
{
"purchaseOrders": [
{
"purchaseOrderId":"24031977",
"mode":"OCB",
"bundleId":"bc8cda15-3409-495a-b5ab-87c7017816b1",
"bundleDescription":"Bundle 2 - 500 SMS for 15 000 FCFA)",
"partnerId":"53laht-s1-3r0m-naht-3m0s3wa",
"inputs": [
{
"type":"MSISDN",
"value":"+22557......11"
},
{
"type":"bundleId",
"value":"bc8cda15-3409-495a-b5ab-87c7017816b1"
},
{
"type":"confirmationCode",
"value":"22......10"
},
{
"type":"challengeMethod",
"value":"OTP-SMS-OCB"
}],
"orderExecutioninformation":{
"date":"2015-04-01T14:38:40",
"amount":15000,
"currency":"XOF",
"service":"SMS_OCB",
"country":"CIV",
"contractId":"211.....7-a121-46f2-933c-cd4.....67"
}
}]
}
]
vResVariant est un Variant =Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
(sTextjson )
POUR TOUT monElement DE vResVariant.purchaseOrders
Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
(monElement.purchaseOrderId + RC + monElement.mode +RC+ monElement.bundleDescription)
FIN
POUR TOUT monElement DE vResVariant.purchaseOrders
Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
(monElement.orderExecutioninformation.date + RC + monElement.orderExecutioninformation.amount)
FIN
vérifie donc qu'il n'y ai pas d'erreur de frappe dans le nom des membres appelés et fait un trace de ton json pour voir si il renvois bien des donner pour la clef : orderExecutioninformation
C'est super ! Comme tu l'as dit je VAIS vérifier mon code (j'avoue quand même que j'ai dormi tard à cause ça ---> le cerveau était HS.![]()
). merci pour ton aide. Je te reviendrais
![]()
Hello Kaliass! j'espère que tu vas bien. Juste te dire que le code a fonctionné. J'ai même pu enregistrer les données en base. Merci pour le coup.
merci pour le retour. toujours agréable d'avoir la finalité..![]()
hello khaliassas!
Je te recontacte dès je reprends le projet. En fait je l'avais mis en pause. Pour info, j'obtiens un message d'erreur entre 2 sms envoyés. Je t'envoie une capture dès je suis devant l'écran.
Merci d'avance pour ton aide.
hello khaliassas! je relance le sujet pour le projet orange api sms. En effet, j'obtiens un message d'information à chaque envoie de sms. Le deuxième sms ne va pas. Il faut relancer le projet pour que xa fonctionne.