Giter Site home page Giter Site logo

Comments (13)

mettleshade avatar mettleshade commented on August 20, 2024 1

Kütüphane kodlarına müdahele etmeden yapmaya çalıştım ama başarılı bir sonuça alamadım, siz burayla ilgili güncelleme çıkana kadar kütüphaneyi güncellemeden kod değişikliği yapıp devam edeceğim. Güncelleme çıkınca güncelleyip deneriz

from pos.

nuryagdym avatar nuryagdym commented on August 20, 2024

Orda yaptigim degisiklikten dolayi.
Eskinde iade icin PartialDrawback kullaniyorduk, Drawback kullanacak sekilde degistirdim.
Drawback tam iade icin, PartialDrawback ise bir kismini iade etmek icin.
Bu tarz durum 2-3 gatewayden karsilastim, ilerde bunun icin ayri TX_TYPE olusturmayi dusunuyorum. Diger gatewaylerde genelde kismi iade ile tam iade arasinda ayrim yok.

Kutuphaneye Partial refund destegi ekleninceye kadar, kismi iade yapilmak istendiginde docs/ altindaki orneklerde oldugu gibi eventListener kullanarak Drawback degeri PartialDrawbacke degistirerek cozebilirsin.

from pos.

mettleshade avatar mettleshade commented on August 20, 2024

Orda yaptigim degisiklikten dolayi. Eskinde iade icin PartialDrawback kullaniyorduk, Drawback kullanacak sekilde degistirdim. Drawback tam iade icin, PartialDrawback ise bir kismini iade etmek icin. Bu tarz durum 2-3 gatewayden karsilastim, ilerde bunun icin ayri TX_TYPE olusturmayi dusunuyorum. Diger gatewaylerde genelde kismi iade ile tam iade arasinda ayrim yok.

Kutuphaneye Partial refund destegi ekleninceye kadar, kismi iade yapilmak istendiginde docs/ altindaki orneklerde oldugu gibi eventListener kullanarak Drawback degeri PartialDrawbacke degistirerek cozebilirsin.

$order['transaction_type'] = 'PartialDrawback';
$pos->refund($order);

şeklinde yapınca iade olarak algılıyor ama
KuveytPosRequestDataMapper'in içindeki
'TransactionType' => $order['transaction_type'] ?? $this->mapTxType(PosInterface::TX_TYPE_REFUND), şekilnde düzenledim

protected array $txTypeMappings = [
    PosInterface::TX_TYPE_PAY_AUTH => 'Sale',
    PosInterface::TX_TYPE_CANCEL   => 'SaleReversal',
    PosInterface::TX_TYPE_STATUS   => 'GetMerchantOrderDetail',
    PosInterface::TX_TYPE_REFUND   => 'Drawback', // Also there is a "PartialDrawback"
];
refund kısmını PartialDrawback yapınca kısmı iade olarka algılıyor 
createRefundRequestData fonksiyonundaki resultu iki farklı şekildede kayıt ettim hiçbir fark yok 

from pos.

nuryagdym avatar nuryagdym commented on August 20, 2024

kutuphane kodunu degistirmemeni tavsiye ederim, kutuphaneyi guncellediginde bu yaptiginde degisiklikler silinir.
event listener ile kutuphane kodunu degistirmeden TransactionType'i degistirebilirsin.
Bu ornek calismasi lazim:

/** @var \Symfony\Component\EventDispatcher\EventDispatcher $eventDispatcher */
$eventDispatcher->addListener(
    \Mews\Pos\Event\RequestDataPreparedEvent::class,
    function (\Mews\Pos\Event\RequestDataPreparedEvent $event) {
       //istersen burda original tutar ile refund edilmek istenen tutarlari karsilastiririp ona gore bu alttaki kodlari calistirabilirsin:
        $requestData                                   = $event->getRequestData();
        $requestData['VPosMessage']['TransactionType'] = 'PartialDrawback';
        $event->setRequestData($requestData);
    });
   $pos->refund($order);

$eventDispatcher $pos istance'i olusturmakta kullandiginin aynisi.

from pos.

mettleshade avatar mettleshade commented on August 20, 2024

Attığınız kodu ekledim
AbstractGateway.php 315'inci satıra
file_put_contents('a2.txt',json_encode($data));
kodunu ekledim bankaya giden datayı görmek için kod doğru şekilde gidiyor fakat halen iade olarak dönüş yapıyor banka.
KuveytPosRequestDataMapper.php dosyasında direk değiştirdiğim zaman kısmi iade oluyor nerde neyi atlıyorum çözemedim :)

from pos.

mettleshade avatar mettleshade commented on August 20, 2024

@nuryagdym sorunu buldum, KuveytPos.php dosyasında sendSoapRequest kullanılarak atılıyor bu istek
265. satırda
$result = $client->__soapCall($this->requestDataMapper->mapTxType($txType), ['parameters' => ['request' => $contents]]);
kodundaki $this->requestDataMapper->mapTxType($txType) 'Drawback' olarak geçiyor, $contents'te PartialDrawback olsada banka Drawback olarak görüyor

from pos.

nuryagdym avatar nuryagdym commented on August 20, 2024

anladim, unuttum burasini, o zaman KuveytPosRequestDataMapper'de Drawback'i PartialDrawback'e degistirmen gerekecek.

Bu issue acik kalsin, partial refund uzerinde musait oldugumda calisirim

from pos.

nuryagdym avatar nuryagdym commented on August 20, 2024

@mettleshade PartialDrawback ile tam iadeyi yapabiliyor muyuz?
kontrol eder misin

from pos.

mettleshade avatar mettleshade commented on August 20, 2024

@nuryagdym olmuyor daha öncedende denemiştim ama şimdi tekrar denedim
Screenshot_10

from pos.

nuryagdym avatar nuryagdym commented on August 20, 2024

@mettleshade bendeki test ortam bilgileri calismamaya basladi.
Aklima bir cozum geldi ama test ortam bilgileri calismadigi icin test edemiyorum.
Bu yuzden sana anlatayim sen dener misin.
Yapman gereken degisiklikler:

  1. $result = $client->__soapCall($this->requestDataMapper->mapTxType($txType), ['parameters' => ['request' => $contents]]);
    bu satir su sekilde degisecek: $result = $client->__soapCall($contents['VPosMessage']['TransactionType'], ['parameters' => ['request' => $contents]]);
  2. refund kod su sekilde olacak
    /** @var \Symfony\Component\EventDispatcher\EventDispatcher $eventDispatcher */
    $eventDispatcher->addListener(
      \Mews\Pos\Event\RequestDataPreparedEvent::class,
      function (\Mews\Pos\Event\RequestDataPreparedEvent $event) {
         //istersen burda original tutar ile refund edilmek istenen tutarlari karsilastiririp ona gore bu alttaki kodlari calistirabilirsin:
          $requestData                                   = $event->getRequestData();
          $requestData['VPosMessage']['TransactionType'] = 'PartialDrawback';
          $event->setRequestData($requestData);
      });
     $pos->refund($order);

Eger yukardaki degisiklikler calisirsa, ayrica ustteki degisikliklere ek olarak bu satiri da silip dener misin

from pos.

mettleshade avatar mettleshade commented on August 20, 2024

@nuryagdym En kısa zamanda deneyip dönüş yapıyorum.

from pos.

mettleshade avatar mettleshade commented on August 20, 2024

@nuryagdym ilk 2 adımı yaptım başarılı, 3. adımı TransactionType sildim yine bir sıkıntı yok güncellemeye eklenebilir.

from pos.

nuryagdym avatar nuryagdym commented on August 20, 2024

v1.3.0 kismi iade destegi ekledim.
event listenere gerek yok.
refund order verisine ekstra olarak order_amount degeri eklenmesi gerekiyor.
yani

  • amount degeri eskisi gibi iade edilecek tutar olacak.
  • order_amount ise siparisin tutari olacak.
  • Kutupahen ikisi arasinda karsilastirma yaparak tam iade mi, kismi iade mi olduguna karar verecek.

from pos.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.