|
DIALOGUER PAR SOCKET AVEC UN TPE VERIFONE VX 520C |
Iniciado por CHRISTIAN DURIX, nov., 09 2015 12:29 PM - 18 respostas |
| |
| | | |
|
| |
Membro registado 25 mensagems |
|
Publicado em novembro, 09 2015 - 12:29 PM |
Bonjour à tous,
Je dialogue avec ce TPE en série (avec ce tpe ou les tpe Sagem Monetel) J'ai besoin de dialoguer par Socket, sachant que le tpe est bien configurer avec le logiciel CAISSE sur PORT ETHERNET Verifone m'a envoyé un petit programme qui test la liaison par SOCKET et ca fonctionne bien. Ils m'ont expliqué que c'est la même chose que lorsqu'on travaille en série, sauf qu'on travaille par Socket MAIS CA NE MARCHE PAS. La connexion fonctionne, l'écriture aussi (a priori) mais pas de lecture (partie //attente réponse du code ci dessous) ???? Quelqu'un a t'il une idée car je tourne en rond
Merci pour votre aide, Christian
Voici le code :
ligne est une chaîne lemontant est une chaîne ChaineLRC est un entier j est un entier TailleAsc est un entier NBEssai est un entier=0 sEnvoiParam est une chaîne ucCaratere est un entier LigneCom1 est un booléen compteur est un entier A_STX est une chaîne=Caract(2) A_ETX est une chaîne=Caract(3) A_EOT est une chaîne=Caract(4) A_ENQ est une chaîne=Caract(5) A_ACK est une chaîne=Caract(6) A_NAK est une chaîne=Caract(15)
// protocole E ligne="01" // numero de caisse lemontant=NumériqueVersChaîne(Montant,"10,2f") lemontant=Remplace(lemontant,",","") lemontant=Remplace(lemontant," ","") lemontant=Droite("00000000"+lemontant, ligne=ligne+lemontant //ligne=ligne+"00001000" // montant ligne=ligne+"1" // champ reponse 2 = pas de retour 1 - une reponse ligne=ligne+"0" // cheque (1 pour CB) (C cheque) (autre = terminal demande) ligne=ligne+"0" // traitement du debit ligne=ligne+"978" // devise = EURO //ligne=ligne+"0000000000" // priv ????? ligne=ligne+Complète(" ",10) // privé
TailleAsc=Taille(ligne) SI SocketConnecte("TPE",portip,adresseip) = Faux ALORS Erreur("Erreur de connexion " + ErreurInfo(errMessage)) RETOUR FIN // MODIFICATION MODE COMMUNICATION SI SocketChangeModeTransmission("TPE", SocketSansMarqueurFin) = Faux ALORS Info("Impossible de modifier le mode de transmission") FIN
// LA CHAINE A ENVOYER AU TERMINAL SAGEM MONETEL EFTSMART est de la forme // 1 caractere STX puis le chaine LIGNE puis un caractere ETX puis un carctere LRC // //Calcul du LRC // LRC = octet de controle, c'est un ou exclusif sur 7 bits de tous les octetes du message (sans prendre le stx mais en prenant le etx
ChaineLRC=0 POUR j =1 A TailleAsc ucCaratere = Asc(Milieu(ligne,j,1)) ChaineLRC=OUExclusifBinaire(ChaineLRC,ucCaratere) FIN ChaineLRC=OUExclusifBinaire(ChaineLRC,3)
//Réveil TPE sEnvoiParam=A_ENQ SI PAS SocketEcrit("TPE",sEnvoiParam) ALORS Erreur(ErreurInfo(errComplet)) SocketFerme("TPE") RETOUR FIN
//Attente Réponse TPE compteur=0 RetChaine est une chaîne="" RetChaine=SocketLit("TPE",Faux,delaireponseip) IF RetChaine="" OU RetChaine<>A_ACK ALORS Info("Le terminal n'est pas disponible") SocketFerme("TPE") RETOUR FIN
SI RetChaine=A_ACK ALORS //Construction DE LA CHAINE A ENVOYER sEnvoiParam=A_STX sEnvoiParam+=ligne sEnvoiParam+=A_ETX sEnvoiParam+=Caract(ChaineLRC) //Envoi DE LA LIGNE SI PAS SocketEcrit("TPE",sEnvoiParam) ALORS Erreur(ErreurInfo(errComplet)) SocketFerme("TPE") RETOUR FIN //Attente Réponse TPE RetChaine=SocketLit("TPE",Faux,delaireponseip) IF RetChaine="" OU RetChaine<>A_ACK ALORS Info("Le terminal n'est pas disponible") SocketFerme("TPE") RETOUR FIN //Réponse OK SI RetChaine=A_ACK ALORS //Fin de Transmission sEnvoiParam=A_EOT SocketEcrit("TPE",sEnvoiParam) SINON //Fin de Transmission sEnvoiParam=A_EOT SocketEcrit("TPE",sEnvoiParam) Erreur("Impossible d'ecrire sur le terminal bancaire.") FIN SINON Erreur("Impossible d'ecrire sur le terminal bancaire.") FIN
//Fermeture du port SocketFerme("TPE") |
| |
| |
| | | |
|
| | |
| |
Membro registado 25 mensagems |
|
Publicado em novembro, 16 2015 - 11:42 AM |
Bonjour à tous,
J'ai trouvé la solution que je transmets à ceux qui en ont besoin :
Contrairement aux informations transmises par le service informatique de Verifone, on n'applique pas le protocole CONCERT dans son intégralité. Il n'y a aucun caractère de contrôle à envoyer au TPE. le programme se résume à se connecter sur le TPE, à modifier le dialogue, à envoyer le montant sous la forme prescrite dans le protocole concert (n° de caisse,....) et de fermer le socket
Pour voir le dialogue SOCKET avec le TPE, j'ai utilisé le petit programme CAISSE fourni par Verifone et j'ai utilisé le programme WD TRACE SOCKET dans les exemples de PCSOFT qui m'a permis de voir les échanges....très simple.
Voici le code (que j'ai simplifié pour ici) :
ligne est une chaîne lemontant est une chaîne
// protocole E ligne="01" // numero de caisse lemontant=NumériqueVersChaîne(Montant,"10,2f") lemontant=Remplace(lemontant,",","") lemontant=Remplace(lemontant," ","") lemontant=Droite("00000000"+lemontant, ligne=ligne+lemontant ligne=ligne+"0" // champ reponse 0 = pas de retour 1 - une reponse ligne=ligne+"0" // cheque (1 pour CB) (C cheque) (autre = terminal demande) ligne=ligne+"0" // traitement du debit ligne=ligne+"978" // devise = EURO ligne=ligne+Complète(" ",10) // privé
// CONNECTION AU TPE SI SocketConnecte("TPE", portip, adresseip) = Faux ALORS Erreur("Erreur de connexion " + ErreurInfo(errMessage)) RETOUR FIN // MODIFICATION MODE COMMUNICATION SI SocketChangeModeTransmission("TPE", SocketSansMarqueurFin) = Faux ALORS Info("Impossible de modifier le mode de transmission") FIN
//Envoi DE LA LIGNE SI PAS SocketEcrit("TPE",ligne) ALORS Erreur(ErreurInfo(errComplet)) SocketFerme("TPE") RETOUR FIN
//Fermeture du port SocketFerme("TPE") |
| |
| |
| | | |
|
| | |
| |
Publicado em março, 07 2018 - 9:07 AM |
Bonjour Christian,
Vu la date des messages j'ai peu d'espoir d'obtenir une réponse mais je tente le coup tout de même.
Je suis dans le même cas que vous, à savoir dialoguer avec un TPE vx520 par socket afin d'afficher le montant de la transaction directement sur le TPE depuis la caisse.
Ma problématique est la suivante, je n'arrive pas à ouvrir le socket sur le tpe...
J'obtiens une erreur 53 en retour, je suppose que le problème vient de l'IP ou du port.
J'utilise l'IP du TPE sur mon réseau local et un port que j'ai ouvert sur le routeur. Est ce la bonne démarche ?
Merci |
| |
| |
| | | |
|
| | |
| |
Membro registado 25 mensagems |
|
Publicado em março, 07 2018 - 11:51 AM |
Bonjour Etienne
Effectivement, ca fait un bout de temps que j'ai pas touché à cela. Avez vous configurer correctement le numéro de port sur le TPE. la manip est un peu special car il faut désactiver le logiciel "Caisse" du TPE, configurer l'adresse IP et le numéro de port du TPE puis relancer le programme CAISSE. J'ai une documentation concernant la config du TPE. Si ca vous intéresse, je peux vous l'envoyer par Mail ? Je peux également vous envoyer notre petite fenêtre WinDev qui gère cela (c'est en WinDev 22).
Cordialement, Christian |
| |
| |
| | | |
|
| | |
| |
Publicado em março, 07 2018 - 2:04 PM |
Bonjour Christian,
Merci beaucoup pour votre retour, oui je veux bien la petite doc mais si je laisse mon mail sur le forum y'a un gros risque que je me retrouve spamer par tout et n'importe quoi lol |
| |
| |
| | | |
|
| | |
| |
Publicado em julho, 20 2018 - 11:48 AM |
Bonjour,
Ingenico et Verifone implémente le protocole Caisse Concert de la même manière. J'ai une documentation officielle de chez Ingenico qui explique comment implémenter le protocole.
Vous pouvez m'envoyer un mail et je vous envérrai en pièce jointe le PDF. Bonne continuation. |
| |
| |
| | | |
|
| | |
| |
Publicado em outubro, 12 2018 - 5:48 PM |
bonjou, je serais tres interessé par la doc du protocole également ... si vous pouviez me l'envoyer, ca serait super en vous remerciant bon we ! |
| |
| |
| | | |
|
| | |
| |
Publicado em dezembro, 07 2018 - 1:27 AM |
Bonjour,
Effectivement, c'est vraiment impossible de communiquer avec un VERIFONE VX520, même avec le protocole CONCERT.
Je parvient bien à afficher le montant sur un INGENICO ICT250 en connexion USB (Emulation série).
Le VERIFONE ne bronche pas !!! Aucune documentation trouvée à ce jour…
Y aurait il une âme charitable possédant un vrai bout de code qui fonctionne ou une documentation sur ce fameux VERIFONE ? |
| |
| |
| | | |
|
| | |
| |
Publicado em março, 28 2019 - 12:26 PM |
Bonjour,
Je suis tombé sur ce sujet car je cherche à utiliser le Concert 3.0. Et du coup je viens répondre aux problèmes sur le Verifone 520. Honnêtement, je ne sais pas quelle version ils utilisent, mais voila comment je le fais fonctionner : 1. Il y a une chose très importante par laquelle vous devez commencer : il faut changer un paramètre sur le TPE. Pour le Verifone 520 : 3. Système > 1.Réglages > 4. Caisse > 8. Mode réponse > OUI
2.Ensuite vérifier l'ip et le port : - IP : 3. Système > 1.Réglages > 2.Communication > 1.Acces principal > 2.Ethernet > 4. Imprimer Config - PORT : 3. Système > 1.Réglages > 2.Communication > 4. Caisse > 2.Afficher Config
3. Enfin le code : - Ouverture de socket - Envoyer la commande de montant : En java, c'est un simple string construit de la manière suivante (et qui est convertit ensuite en tableau de byte) : <n°caisse> + <montant> + "10" + <mode> + <devise> + "0000000000" Avec : - n°caisse : un nombre entre 01 et 99 ( 2 digits) - montant : le montant en centimes sur 8 digits. Exemple : 25,99€ : "00002599" - mode : "0" pour un débit, "1" pour un crédit - devise : "978" pour Euros, la liste est facilement trouvable sur le net (3 digits)
- Lire le résultat : En java, je reçois un tableau de byte. J'ai réussi à définir qu'il faut lire le 3ème byte et le traiter de la manière suivante : - Si b == 48, la transaction est un succès - Si b == 55, la transaction est un échec
J'espère que j'ai rien oublié. Bon courage parce que franchement il y en a aucun qui fonctionne pareil entre les Ingenico, Verifone, Nepting ... 1 protocole et chacun le fait a sa sauce.. |
| |
| |
| | | |
|
| | |
| |
Publicado em abril, 24 2019 - 4:44 PM |
Bonjour,
Dans la lignée des échanges précédents, je souhaiterais obtenir le pdf d'Ingenico... pourriez-vous svp me l'envoyer?
Je vous dis un grand merci par avance.
Alexandre |
| |
| |
| | | |
|
| | |
| |
Membro registado 1 mensagem |
|
Publicado em abril, 29 2019 - 4:41 PM |
Bruno S. a écrit :
Bonjour,
Effectivement, c'est vraiment impossible de communiquer avec un VERIFONE VX520, même avec le protocole CONCERT.
Je parvient bien à afficher le montant sur un INGENICO ICT250 en connexion USB (Emulation série).
Le VERIFONE ne bronche pas !!! Aucune documentation trouvée à ce jour…
Y aurait il une âme charitable possédant un vrai bout de code qui fonctionne ou une documentation sur ce fameux VERIFONE ?
Bonjour
Pouvez-vous me transmettre la documentation d'ingenico svp car je n'arrive pas à faire communiqué mon logiciel et le TPE ICT250 en USB.
Pouvez-vous sinon me dire où est le problème? je n'ai aucun message d'erreur mais rien n’apparaît sur le TPE
sEnvoi est une chaîne nTPE_Port est un entier = numportcomtpe
NumCaisseOpen est un numérique = 1 sEnvoi = NumériqueVersChaîne(Val(NumCaisseOpen),"02d")
sEnvoi += NumériqueVersChaîne(Arrondi(montanttpe,2)*100,"08d")
sEnvoi += "1"
sEnvoi += "1"
SI montanttpe < 0 ALORS sEnvoi += "1" SINON sEnvoi += "0" FIN
sEnvoi += "978"
sEnvoi += Complete("",10,"0")
strMessage est une chaîne = sEnvoi ChaineLRC est un entier j est un entier TailleAsc est un entier=Taille(sEnvoi) nNBEssai est un entier=0 ucCaratere est un entier sEnvoiParam est une chaîne repfichier est une chaîne = MonDisk+"Test\" sMessageAttente est une chaîne = "Initialisation TPE" Texte = sMessageAttente Texte..CouleurFond = RVB(255, 215, 215)
sMessageEnvoi est une chaîne = "Transaction en cours" sMessageValide est une chaîne = "Transaction valide" sMessageEchec est une chaîne = "Transaction échouée" sMessageTempo est une chaîne = ".................."
nTempo est un entier = 10 nTempoMessage est un entier
nTTempo est un entier = Val(INILit("TPE", "TEMPO", "10", ComplèteRep(repfichier) + "WDCaisse.ini")) nBoucleMax est un entier = 600 i est un entier
A_STX est une chaîne = Caract(2) A_ETX est une chaîne = Caract(3) A_EOT est une chaîne = Caract(4) A_ENQ est une chaîne = Caract(5) A_ACK est une chaîne = Caract(6) sA_NAK est une chaîne= Caract(15)
RetChaine est une chaîne="" nPORT_cb est un entier = nTPE_Port
SI PAS sOuvre(nPORT_cb, 9600, 9600, sTimeoutDéfaut, Faux) ALORS Erreur("Connexion au TPE impossible !", "Veuillez vérifier s'il est sous tension et bien connecté à la caisse.", "", ErreurInfo(errMessage)) Texte = "" bValRetour=Faux GOTO FinTraitement FIN SI PAS sFixeParamètre(nPORT_cb,9600,1,8,0) ALORS Erreur("Impossible fixer paramètres du port COM"+nPORT_cb) Ferme FIN SI nPORT_cb > 0 ALORS
ChaineLRC=0 POUR j =1 A TailleAsc ucCaratere = Asc(Milieu(sEnvoi,j,1)) ChaineLRC=OUExclusifBinaire(ChaineLRC,ucCaratere) FIN ChaineLRC=OUExclusifBinaire(ChaineLRC,3) SI sDansFileEntrée(1) >0 ALORS RetChaine=sLit(nPORT_cb, sDansFileEntrée(nPORT_cb)) FIN sEnvoiParam=A_STX sEnvoiParam+=sEnvoi sEnvoiParam+=A_ETX sEnvoiParam+=Caract(ChaineLRC) sEcrit(nPORT_cb,A_ENQ+sEnvoiParam) Texte = "Attente paiement client" Texte..CouleurFond = RVB(252, 224, 91)
nTempoMessage=0 BOUCLE Multitâche(nTTempo) SI ToucheEnfoncée(teEchap) ALORS SI OuiNon("Interruption du traitement ?") = Oui ALORS bValRetour=Faux GOTO FinTraitement FIN FIN
i++ nTempoMessage++ RetChaine=sLit(nPORT_cb,sDansFileEntrée(nPORT_cb)) SI i>nBoucleMax ALORS SORTIR A FAIRE TANTQUE RetChaine="" i=1 SI Position(RetChaine,A_ACK,1)>0 ALORS nTempoMessage=0 DebutBoucle: SI sDansFileEntrée(1) >0 ALORS RetChaine=sLit(nPORT_cb, sDansFileEntrée(nPORT_cb)) FIN BOUCLE Multitâche(nTTempo) SI ToucheEnfoncée(teEchap) ALORS SI OuiNon("Interruption du traitement ?") = Oui ALORS bValRetour=Faux GOTO FinTraitement FIN FIN
i++ nTempoMessage++ SI i>nBoucleMax ALORS SORTIR RetChaine=sLit(nPORT_cb,sDansFileEntrée(nPORT_cb)) A FAIRE TANTQUE RetChaine="" SI RetChaine[[1]]=A_ENQ ALORS sEnvoiParam=A_ACK sEcrit(nPORT_cb,sEnvoiParam) GOTO DebutBoucle FIN RetChaine=ExtraitChaîne(RetChaine,2,A_STX) SI RetChaine[[3]]="0" ALORS sEnvoiParam=A_EOT sEcrit(nPORT_cb,sEnvoiParam) Texte = "Paiement client effectué !" Texte..CouleurFond = VertFoncé bValRetour=Vrai SINON sEnvoiParam=A_EOT sEcrit(nPORT_cb,sEnvoiParam) Texte = "Echec paiement client !" Texte..CouleurFond = RougeClair bValRetour=Faux FIN SINON bValRetour=Faux Texte = "Echec paiement client !" Texte..CouleurFond = RougeClair FIN SINON Texte = "" Texte..CouleurFond = Transparent Erreur("Erreur d'ouverture de COM" + nPORT_cb) bValRetour=Faux FIN
FinTraitement:
sFerme(nPORT_cb) |
| |
| |
| | | |
|
| | |
| |
Publicado em maio, 24 2019 - 5:41 AM |
Bonjour Christian Effectivement, le post date un petit peu, mais je suis confronté au problème aujourd'hui. Avez vous la doc du verifone ? et si vous avez la fenêtre, ce serait un gros gain de temps. mon email: bacchus@mail.pf Merci d'avance Michel |
| |
| |
| | | |
|
| | |
| |
Publicado em agosto, 03 2020 - 7:48 PM |
Bonjour Olivier,
Je serai très intéressé par le fichier pdf sur l'implémentation du protocole Caisse Concert par Ingenico. J'ai besoin de développer sous Windev un accès aux TPE de la marque.
Je vous remercie d'avance.
Rida HAKIM |
| |
| |
| | | |
|
| | |
| |
Publicado em agosto, 04 2020 - 12:09 PM |
Bonjour,
j'avais lancé le sujet il y a maintenant plusieurs années mais il semble impossible aujourd'hui de se procurer le protocole CONCERT qui est passé en version 3, sauf de payer 950 € pour la licence d'utilisation + 475€ pour obtenir les modifications éventuelles du protocole.
La normalisation du protocole CONCERT est maintenant géré par une association qui s'appelle ASSOCIATION DU PAIEMENT. Tous les TPE qui utilisent ce protocole doivent se déclarer à cette association. Tous ceux qui veulent utiliser ce protocole dans leur logiciel doivent acheter la licence d'utilisation et se référencer auprès de cette association.
Nous avons personnellement refusé ce "vole". Imaginez que quand vous achetez une imprimante, on vous demande 950 € pour installer le driver de cette imprimante sur votre Pc.
Nous avons signalé à nos clients que nous ne pouvons plus pour l'instant envoyer le montant à régler sur le TPE. Nous avons demandé a nos clients de manifester leur mécontentement auprès des banques.
Christian Durix |
| |
| |
| | | |
|
| | |
| |
Publicado em agosto, 19 2020 - 11:28 AM |
Bonjour Christian, je suis confronté au problème que vous connaissez depuis longtemps (la communication avec un TPE). Je dois communiquer sur le port Ethernet, y a t-il une adresse IP en particulier à utiliser ? Le terminal a déjà une adresse en 91.237.xx.xx, est-ce cette adresse que je dois changer ? Il indique en passerelle un protocole RFC 1086 + SSL, faut-il se connecter avec SocketConnecteSSL ? Merci de votre retour. JP |
| |
| |
| | | |
|
| | |
| |
Publicado em agosto, 19 2020 - 1:56 PM |
Votre TPE comporte un menu permettant de vérifier/configurer la connexion Ethernet. Vous pouvez donc trouver l'adresse IP du TPE. Par contre, il vous faut également le numéro de port. Pour trouver le n° de port du dernier TPE que nous avons utilisé, nous avons installé sur un PC le petit programme gratuit Advanced_Port_Scanner_2.5.3869.exe qui est vraiment génial. Il faut connecter le TPE sur le réseau et lancer ce programme sur un PC également connecté au réseau. Ce programme va détecter toutes les machines connectées sur le réseau et vous donner le n° de port de chaque machine. (pour nous c'était le port 8000)
Donc une fois que vous avez l'adresse Ip et le n° de port, vous pouvez utiliser les SOCKET de WinDev. Mais il faut également envoyer les infos au format CONCERT 3. Et la je ne peux plus vous aider puisque pour obtenir ce protocole, il faut payer 950 € (voir mon post précèdent)
Cordialement, Christian |
| |
| |
| | | |
|
| | |
| |
Publicado em agosto, 28 2020 - 9:53 AM |
Bonjour Olivier,
Je serai très intéressé par le fichier pdf sur l'implémentation du protocole Caisse Concert par Ingenico. J'ai besoin de développer un accès aux TPE de la marque (DESK5000) .
Je vous remercie d'avance.
TERRIEN Arnaud |
| |
| |
| | | |
|
| | |
| |
Publicado em outubro, 01 2021 - 10:09 PM |
Bonjour, pouvez vous m'envoyer l'implantation de protocole concert
merci d'avance
Cordialement |
| |
| |
| | | |
|
| | |
| |
Membro registado 1 mensagem |
|
Publicado em outubro, 27 2021 - 2:39 PM |
Bonjour, Pourriez-vous également m'envoyer ce pdf d'Ingenico s'il vous plait? merci! |
| |
| |
| | | |
|
| | | | |
| | |
|