mewebstudio / pos

Türk bankaları için sanal pos paketi (PHP)
Other
266 stars 102 forks source link

EstPos : Undefined array key "AuthCode" #207

Closed mettleshade closed 5 months ago

mettleshade commented 5 months ago
Information Description
Kütüphane versiyonu 1.1.0
PHP versiyonu
Gateway ismi EstPos
Banka ismi Ziraat Bankası

Hatanın özeti

Yeni ödeme yaparken, iade ve iptal yaparken bazı siparişlerde Undefined array key "AuthCode" hatası alıyorum

Bağımsız kod veya hatayı yeniden oluşturmanın bir yolu

Oluşturulan siparişin iptali veya iadesi

nuryagdym commented 5 months ago

burda https://github.com/mewebstudio/pos/blob/e1733994ff052d7eeac0f2808bfabaacf22fe0c7/src/DataMapper/ResponseDataMapper/EstPosResponseDataMapper.php#L288 $rawResponseData icerigini paylasir misin, bendeki test ortam bilgileri nedense calismamaya basladi

mettleshade commented 5 months ago

@nuryagdym mailden ilettim.

nuryagdym commented 5 months ago

tesekkurler, yeni yakinda yeni release'de bu hatayi ele alacagim. Iptal veya iade basarili oldugunda sorun yasamaman gerekiyor. Basarisiz durumda bu hatayla karsilasiyosundur.

mettleshade commented 5 months ago

aslında ilk iptalden alıyorum bu hatayı yani sipariş oluşur oluşmaz iptal etmiş müşteri iadeyi atmış ama sonuç doğru gelmemiş bu hataya düşmüş

nuryagdym commented 5 months ago

ama bana gonderidigin banka response'nda "İptal edilmeye uygun satış işlemi bulunamadı." hata mesaji var. belki 2 kere iptal yapilmaya calisilmistir. Iptal edilmis islemi tekrar iptal etmek istersen bu hata olusuyordur.

mettleshade commented 5 months ago

Müşteri siparişini iptal etmiş normalde iade edilip siparişe yansır ödeme iade edildi diye ama yazmadığı için ben deniyorum ben denediğimdede bu hatayı atıyor yani müşteri ilk yaptığında ödemeyi iade etmiş

nuryagdym commented 5 months ago

Ilk musteri iade islemi yapildiginda neden senin tarafinda basarisiz oldugunu anlamam icin $rawResponseData icerigi lazim.

AuthCode undefined index sorunu icin guncelleme yaptim, ama bu asil sorununu cozmez. Asil sorun neden ilk denemede iade basarili olarak gosterilmedi.

Ayrica siparisin son durumuny ogrenmek icin $status = $pos->status() kullanabilirsin. ornegin

mettleshade commented 5 months ago

Şuanda net olarak sipariş iptalinde farklı bir hata aldım Undefined array key "ERRORCODE" - Satır : 273

nuryagdym commented 5 months ago

$rawResponseData icerigini gondermen mumkun mu?

mettleshade commented 5 months ago

@nuryagdym AuthCode için tam log ilettim, iptal hatasını logluyorum olunca göndereceğim

mettleshade commented 5 months ago

@nuryagdym Undefined array key "ERRORCODE" - Satır : 273 hatası için başarılı bir iade logu ilettim.

nuryagdym commented 5 months ago

@mettleshade 420iadeodemelog.txt isimle son gonderdigin dosyada refund() isleminde bankadan gelen cevapmi?

mettleshade commented 5 months ago

@nuryagdym evet

` public function mapRefundResponse(array $rawResponseData): array { file_put_contents(rand(0,1500).'iadeodemelog.txt',json_encode($rawResponseData)); /* @var PaymentStatusModel $rawResponseData / $rawResponseData = $this->emptyStringsToNull($rawResponseData); $procReturnCode = $this->getProcReturnCode($rawResponseData); $status = self::TX_DECLINED; if (self::PROCEDURE_SUCCESS_CODE === $procReturnCode) { $status = self::TX_APPROVED; }

    return [
        'order_id'         => $rawResponseData['OrderId'],
        'group_id'         => $rawResponseData['GroupId'],
        'auth_code'        => $rawResponseData['AuthCode'],
        'ref_ret_num'      => $rawResponseData['HostRefNum'],
        'proc_return_code' => $procReturnCode,
        'transaction_id'   => $rawResponseData['TransId'],
        'num_code'         => $rawResponseData['Extra']['NUMCODE'],
        'error_code'       => $rawResponseData['Extra']['ERRORCODE'],
        'error_message'    => $rawResponseData['ErrMsg'],
        'status'           => $status,
        'status_detail'    => $this->getStatusDetail($procReturnCode),
        'all'              => $rawResponseData,
    ];
}`
nuryagdym commented 5 months ago

@mettleshade bilgileri icin tesekkurler, gereken duzeltmeleri yaptim.

Yayina alincaya kadar EstPosResponseDataMapper.php'de degisiklikleri manuel yapabilirsin. https://github.com/mewebstudio/pos/pull/208/files#diff-667e940cbf15f7852b9478d156df7f06e78ec830f5c50b029a81327751a0b923

mettleshade commented 5 months ago

@nuryagdym ne demek sizin yaptıklarınız yanında hiç bişey. iptal ile log ilettim.

mettleshade commented 5 months ago

@nuryagdym Undefined array key "GroupId" - Satır : 269 yeni bir hata yakaladım mailden logu ilettim.

nuryagdym commented 5 months ago

@mettleshade groupId sorunu da ele alindi

mettleshade commented 5 months ago

şuan başka bir eksikle karşılaşmadım karşılaşırsam konuya eklerim