Closed nicolasdekaise closed 2 years ago
Hi, As you may have noticed, I made modifications recently for this specific issue. Monetico was noticing me for invalid seal computation on failed payments. Are you facing this for every payment or only for failed ones (like invalid 3DSecure challenge result or another reason)? Did you update to latest release (v2.0.4 ou v2.0.5)?
Hi, Every payment, the money is transfered, all is ok but the seal don't match
I took the last version here on github 2.x branch, is it the correct one ?
Yes, I'm currently using https://github.com/dansmaculotte/monetico-php/commit/409ca19a045927646ed867005cbf70493f43a373 in production.
Can you paste the request payload sent by Monetico (after edition for privacy, of course)?
Okay to be sure I tried with this one, still not working ^^' What do I need to edit for privacy ? (To be sure :-P)
You can change TPE, reference, ipclient, authentication fields. Actually, I need all the field names that are sent, not the values.
Here you are :
DansMaCulotte\Monetico\Responses\PurchaseResponse::__set_state(array( 'eptCode' => 'xxx', 'dateTime' => DateTime::__set_state(array( 'date' => '2022-07-01 13:34:28.000000', 'timezone_type' => 3, 'timezone' => 'Europe/Paris', )), 'amount' => '1EUR', 'seal' => 'xxx', 'cardVerificationStatus' => 'oui', 'cardExpirationDate' => 'xx', 'cardBrand' => 'xx', 'cardCountry' => 'xx', 'cardBIN' => 'xxxx', 'cardHash' => 'xxx', 'cardSaved' => NULL, 'cardMask' => NULL, 'rejectReason' => NULL, 'authorisationRejectReason' => NULL, 'authNumber' => 'xxxx', 'clientIp' => '91.86.56.233', 'transactionCountry' => 'BEL', 'paymentMethod' => 'xx', 'commitmentAmount' => NULL, 'filteredReason' => NULL, 'filteredValue' => NULL, 'filteredStatus' => NULL, 'authentication' => DansMaCulotte\Monetico\Resources\AuthenticationResource::__set_state(array( 'details' => array ( ), 'protocol' => '3DSecure', 'version' => '1.0.2', 'status' => 'authenticated', )), 'authenticationHash' => 'xxx', 'cardType' => 'xx', 'accountType' => 'xx', 'virtualCard' => 'xx', 'returnCode' => 'xx', 'description' => '',
Sorry, I have not been clear enough. I need the actual payload sent you by monetico, in order to check if the code miss a parameter in the seal computation. You can find it in the emails that monetico sends to notify you for the payment failure.
So the mail received on the admin side ? And just to be sure : The payment is not a failure, the payment is going through and the money is on the bank account, but the script can't verify it
Yes I need the payload sent by Monetico after payment confirmation, before it's translated to a PurchaseResponse
.
Don't worry, I have understood that the error is in the seal computation :sweat_smile:
Okay no problem ^^' Sorry I just wanted to be sure :)
Here is the payload : TPE=xxx&date=01%2F07%2F2022_a_13%3A34%3A28&montant=1EUR&reference=xxx&texte-libre=&code-retour=paiement&cvx=oui&vld=xx&brand=VI&numauto=xxx&usage=debit&typecompte=particulier&ecard=non&originecb=BEL&bincb=xxx&hpancb=xxx&ipclient=xxx&originetr=BEL&cbmasquee=xxxx&modepaiement=CB&authentification=xxxx&MAC=xxxxxx
Hi, Is it the data you needed ? Thanks :)
The data are OK, I cannot see where the problem is yet.
Hi, I've got an answer for monetico about a recent change (in french, but I think you spoke french?) :
"Depuis fin mai, la norme ISO qui règlemente la numérotation des cartes et l'enregistrement des BIN à évolué. Le BIN est passé de 6 à 8 positions.
Par conséquence, dans le formulaire retour nous vous envoyons le champ cbmasque. De ce fait le format de votre accusé de réception est version=2 cdr1 au lieu de version 2 cdr0.
Nous vous envoyons ci-joint la documentation relative à l'évolution des BIN ainsi que la documentation technique afin de vous aider à la résolution du problème d'interface retour."
Can this help you ?
Hi. Thank you for the update. Unfortunately, the field cbmasquee
is taken into account while processing the response.
Hi, In the end it was very simple and your code is not the problem, I didn't use cbmasquee before, and it worked like a charm, and then it worked no more, I just added the field and now it's working again. ^^' Thanks for your help and sorry for the lost time ^^'
Great! I guess I can close the issue.
Hello there,
The return functions worked great for at least six months, then the 26th of june, they're not working anymore, without any modification on my side.
So the payments are working on Monetico's side, but the validateSeal function return false because the hash and seal are different (obviously) But I can't pinpoint why.
Do you know of any modifications on Monetico's side ?
Thanks