mirror of
https://github.com/mewebstudio/pos.git
synced 2026-04-26 01:45:55 +03:00
[GH-ISSUE #268] Garanti "Guvenlik Kodu hatalı" Hatası #142
Labels
No labels
PayFlexV4
TROY
akbankpos
bug
duplicate
enhancement
garanti
help wanted
isbank
kuveyt
payten
posnet
pull-request
vakifbank
ziraat
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/pos#142
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @yorulmazsinan on GitHub (Apr 18, 2025).
Original GitHub issue: https://github.com/mewebstudio/pos/issues/268
Laravel paketinizi kullanarak, entegrasyonumuz tamamlandı. get3DFormData() ile aşağıdaki URL’ye form gönderiyoruz:
🔗 https://sanalposprov.garanti.com.tr/servlet/gt3dengine
Ancak form gönderimi sonrası 3D Secure ekranı hiç açılmadan mdstatus=7 ve "Guvenlik Kodu hatalı" hatası alıyoruz.
Kart bilgileri %100 doğru, farklı kartlarla denememize rağmen sonuç aynı.
get3DFormData() çıktısı ise şu şekilde:
Array
(
[gateway] => https://sanalposprov.garanti.com.tr/servlet/gt3dengine
[method] => POST
[inputs] => Array
(
[secure3dsecuritylevel] => 3D
[mode] => PROD
[apiversion] => 512
[terminalprovuserid] => PROVAUT
[terminaluserid] => PROVAUT
[terminalmerchantid] => ******
[terminalid] => ********
[txntype] => sales
[txnamount] => 100
[txncurrencycode] => 949
[txninstallmentcount] =>
[orderid] => ade62f70f9793f64c7
[successurl] => https://.com/payment-status?orderId=ade62f70f9793f64c7
[errorurl] => https://.com/payment-status?orderId=ade62f70f9793f64c7
[customeripaddress] => ...
[cardnumber] => ****************
[cardexpiredatemonth] => **
[cardexpiredateyear] => **
[cardcvv2] => ***
[secure3dhash] => ******************************************************************
)
)
Yani form doğru bir şekilde oluşuyor, bu aşamadan sonra bankanın 3d doğrulama ekranını görmemiz lazım ama geri dönüp hata alıyoruz. Bazı log kayıtlarımız ise şunlar:
[2025-04-18 23:21:32] local.DEBUG: switching mode {"is_test_mode":false}
[2025-04-18 23:21:32] local.INFO: Sipariş güncellendi {"order_id":34110,"products_count":1}
[2025-04-18 23:21:32] local.DEBUG: preparing 3D form data
[2025-04-18 23:21:32] local.DEBUG: "3D Form" verileri gönderimi: {"bank":"garanti","card_association":"master","install":0}
[2025-04-18 23:21:39] local.DEBUG: switching mode {"is_test_mode":false}
[2025-04-18 23:21:39] local.DEBUG: payment called {"card_provided":false,"tx_type":"pay","model":"3d"}
[2025-04-18 23:21:39] local.ERROR: 3d auth fail {"md_status":"7"}
[2025-04-18 23:21:39] local.DEBUG: mapping 3D payment data {
"3d_auth_response": {
"mdstatus": "7",
"mderrormessage": "Guvenlik Kodu hatali",
"errmsg": "Guvenlik Kodu hatali",
"clientid": "",
"oid": "",
"response": "Error",
"procreturncode": "99",
"apiversion": "512",
"orderid": "",
"txninstallmentcount": null,
"terminaluserid": "*******",
"secure3dhash": "",
"secure3dsecuritylevel": "3D",
"txncurrencycode": "949",
"errorurl": "https://.com/payment-status?orderId=",
"terminalmerchantid": "",
"mode": "PROD",
"terminalprovuserid": "*******",
"txnamount": "100",
"successurl": "https://.com/payment-status?orderId=",
"txntype": "sales",
"customeripaddress": "...",
"terminalid": ""
},
"provision_response": null
}
[2025-04-18 23:21:39] local.ERROR: Ödeme hatası {
"error_message": "Guvenlik Kodu hatali",
"error_code": "99",
"procreturncode": "Yok",
"mdstatus": "Yok",
"response": {
"transaction_time": null,
"payment_model": "3d",
"batch_num": null,
"all": null,
"transaction_security": "MPI fallback",
"md_status": "7",
"masked_number": null,
"tx_status": null,
"eci": null,
"cavv": null,
"md_error_message": "Guvenlik Kodu hatali",
"3d_all": {
"mdstatus": "7",
"mderrormessage": "Guvenlik Kodu hatali",
"errmsg": "Guvenlik Kodu hatali",
"clientid": "",
"oid": "",
"response": "Error",
"procreturncode": "99",
"apiversion": "512",
"orderid": "",
"txninstallmentcount": null,
"terminaluserid": "*******",
"secure3dhash": "",
"secure3dsecuritylevel": "3D",
"txncurrencycode": "949",
"errorurl": "https://.com/payment-status?orderId=",
"terminalmerchantid": "",
"mode": "PROD",
"terminalprovuserid": "*******",
"txnamount": "100",
"successurl": "https://.com/payment-status?orderId=",
"txntype": "sales",
"customeripaddress": "...",
"terminalid": ""
},
"order_id": "****",
"transaction_id": null,
"transaction_type": "pay",
"installment_count": 0,
"currency": "TRY",
"amount": 1.0,
"auth_code": null,
"ref_ret_num": null,
"proc_return_code": "99",
"status": "declined",
"status_detail": "general_error",
"error_code": "99",
"error_message": "Guvenlik Kodu hatali"
}
}
Laravel paketi 1.2 sürümünü kullanıyorum.
@nuryagdym commented on GitHub (Apr 19, 2025):
Merhabalar,
Garantide test ortamda denedigimde calisiyor, bunlarin test ortaminda 3d onay sayfasi acilmiyor, direk basarili cevap geliyor, yani ayni prod ortami gibi calismiyor.
Anladigim kadariyla amount'u 1 TL vermissiniz, garanti mi bilmiyorum, ama bir bankada dusuk miktar oldugunda hata almistim. 10TL deneyebilir misiniz.
Sorun devam ederse bankaya sorar misiniz, cevabini da paylasirsaniz sevinirim.
@topraksu28 commented on GitHub (Apr 25, 2025):
Merhaba Sinan Bey,
Aynı sorunu bende yaşamaktayım sonu nasıl hallettiğini rica etsem bizimlede paylaşır mısınız?
@sahinyghs commented on GitHub (May 9, 2025):
Merhaba, defalarca denedim farklı yöntemler ve farklı ortamlarda. Çözüme ulaşabildiniz mi?
@yorulmazsinan commented on GitHub (May 20, 2025):
Maalesef, çözüme bende ulaşamadım. Her şey düzgün gözüküyor. Hatta bu pakette QNB, İşbank ve Akbank deniyorum çalışıyor. Ama Yapıkredi ve Garanti'de hata alıyorum. Garanti'nin kendi dokümantasyonunu indirdim bakalım bir karşılaştıracağım.
@nuryagdym commented on GitHub (Jun 3, 2025):
Bankadan sormayi deneyiniz. Onlardan faydali bir donus olmazsa, isterseniz online meeting ile birlikte bir debugging yapabiliriz.
Bu arada elinizde guncel GarantiPos dokumani varsa paylasir misiniz.
@sahinyghs commented on GitHub (Jun 10, 2025):
Merhaba, maalesef çözüm olmadı direkt olarak garanti bankası ile entegrasyonu tamamladık.
@yorulmazsinan commented on GitHub (Jun 20, 2025):
Arkadaşlar sorunu çözdüm. İşlem önceliği sorunuymuş tamamen. Detaylı kodları paylaşacağım buradan.