-
Notifications
You must be signed in to change notification settings - Fork 113
Description
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.