mewebstudio / pos

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

Ziraat Bankası Merchant cannot be found for this bank #190

Closed mettleshade closed 5 months ago

mettleshade commented 6 months ago

Merhabalar ziraat bankası için sanal pos ayarlamaya çalıştım fakat bir sorun var; PayFlex kullanıyorum form oluşturma aşamasında bankaya istek atmadan direk

Merchant cannot be found for this bank

hatasını veriyor kullanan bir arkadaş yardımcı olursa çok sevinirim.

Sorunun çözümü : Readme'de payflexlerin altında ziraat yazıyor fakat ziraat bankası estpos destekliyor. @nuryagdym kütüphanedeki pos.php yani ayar dosyasında ziraat bankası linkleri yanlış, doğrusunu alt kısma bırakıyorum kütüphaneden güncellenirse yeni arkadaşlar zorluk yaşamaz.

        'ziraat-vpos' => [
            'name'  => 'ziraat-pos',
            'class' => Mews\Pos\Gateways\EstV3Pos::class,
            'urls'  => [
                'production'    => 'https://sanalpos2.ziraatbank.com.tr/fim/api',
                'test'          => '',
                'gateway'       => [
                    'production'    => 'https://sanalpos2.ziraatbank.com.tr/fim/est3Dgate',
                    'test'          => '',
                ],
                'query'       => [
                    'production'    => 'https://sanalpos2.ziraatbank.com.tr/fim/est3Dgate',
                    'test'          => '',
                ],
            ],
        ],
    protected $cardTypeMapping = [
        AbstractCreditCard::CARD_TYPE_VISA       => '0',
        AbstractCreditCard::CARD_TYPE_MASTERCARD => '1',
        AbstractCreditCard::CARD_TYPE_AMEX       => '2',
        AbstractCreditCard::CARD_TYPE_TROY       => '3',
    ];
nuryagdym commented 6 months ago

merhabalar, PayFlexV4'te 3D form verisini olusturmak icin bankaya istek gonderilir. https://github.com/mewebstudio/pos/blob/af545367050b091d604cce92365c9be91f13dd1f/src/Gateways/PayFlexV4Pos.php#L117

Yani bu hata mesji bankadan geliyor.

Tahminim test/prod ortami yanlis set edilmis olabilir.

mettleshade commented 6 months ago

merhabalar, PayFlexV4'te 3D form verisini olusturmak icin bankaya istek gonderilir.

https://github.com/mewebstudio/pos/blob/af545367050b091d604cce92365c9be91f13dd1f/src/Gateways/PayFlexV4Pos.php#L117

Yani bu hata mesji bankadan geliyor.

Tahminim test/prod ortami yanlis set edilmis olabilir.

        'ziraat-vpos' => [
            'name'  => 'Ziraat Bankası',
            'class' => Mews\Pos\Gateways\PayFlexV4Pos::class,
            'urls'  => [
                'production'    => 'https://sanalpos.ziraatbank.com.tr/v4/v3/Vposreq.aspx',
                'test'          => 'https://preprod.payflex.com.tr/Ziraatbank/VposWeb/v3/Vposreq.aspx',
                'gateway'       => [
                    'production'    => 'https://mpi.ziraatbank.com.tr/Enrollment.aspx',
                    'test'          => 'https://preprod.payflex.com.tr/ZiraatBank/MpiWeb/MPI_Enrollment.aspx',
                ],
                'query'       => [
                    'production'    => 'https://sanalpos.ziraatbank.com.tr/v4/UIWebService/Search.aspx',
                    // todo update with the correct one
                    'test'          => 'https://sanalpos.ziraatbank.com.tr/v4/UIWebService/Search.aspx',
                ],
            ],
        ],

kütüphanedeki ayarlı olanı kullanıyorum

nuryagdym commented 6 months ago

$pos->testMode(true/false); kastediyodum

mettleshade commented 6 months ago

false olarak gönderiyorum sıkıntı yok onda

mettleshade commented 5 months ago

merhabalar, PayFlexV4'te 3D form verisini olusturmak icin bankaya istek gonderilir.

https://github.com/mewebstudio/pos/blob/af545367050b091d604cce92365c9be91f13dd1f/src/Gateways/PayFlexV4Pos.php#L117

Yani bu hata mesji bankadan geliyor.

Tahminim test/prod ortami yanlis set edilmis olabilir.

Bankayla iletişime geçtim bizim tarafımızdan bankaya hiç istek düşmemiş, aynı hatayı alıyorum bilgilerin yerlerini değiştirerek denedim fakat sorun çözülmedi

nuryagdym commented 5 months ago

Banka dokumantasyonunu paylasır mısın. Dogru Gateway class'i kullandigina emin olayim.

Mumkunse test ortam bilgilerini de epostama gonderir misin. IP kisitlamasi yok ise kendi bilgisayarimda test edeyim.

mettleshade commented 5 months ago

Hash ver3 Sample Codes.zip

Hash Ver3_Dokumantasyon_2024_TR.pdf

mail yoluyla ilettikleri dökümanlar, hesap içinde birçok döküman var test bilgileri göndermediler direk canlı hesap bilgileri ile deniyorum, ip kısıtlaması yok.

Banka dokumantasyonunu paylasır mısın. Dogru Gateway class'i kullandigina emin olayim.

Mumkunse test ortam bilgilerini de epostama gonderir misin. IP kisitlamasi yok ise kendi bilgisayarimda test edeyim.

mettleshade commented 5 months ago

Banka dokumantasyonunu paylasır mısın. Dogru Gateway class'i kullandigina emin olayim.

Mumkunse test ortam bilgilerini de epostama gonderir misin. IP kisitlamasi yok ise kendi bilgisayarimda test edeyim.

Banka hesabı içindeki dökümanları ve test bilgisini mail olarak ilettim.

nuryagdym commented 5 months ago

@mettleshade gonderdigin dokumanlara baktim, dokumanlar Payten Dokumanlari, yani EstV3Pos'u gateway classi kullanman gerekiyor. ornek icin /examples/akbank'a bakabilirsin

mettleshade commented 5 months ago

Aslında readme'de PayFlex Common Payment V4 (Ortak Ödeme) PayFlex MPI VPOS V4 altında ziraat yazdığı için onları kullanmadı denemiştim ama bundada

   $formData = $pos->get3DFormData();

alanı çalışmıyor yani formu oluşturamıyor

mettleshade commented 5 months ago

@mettleshade gonderdigin dokumanlara baktim, dokumanlar Payten Dokumanlari, yani EstV3Pos'u gateway classi kullanman gerekiyor. ornek icin /examples/akbank'a bakabilirsin

$pos->prepare($order, \Mews\Pos\Gateways\AbstractGateway::TX_PAY, $card); $pos içeriğini mailinize txt olarak ilettim.

nuryagdym commented 5 months ago

Readme Konusunda haklisin, orayi guncellerim.

EstV3Pos'ta hala sorun yasiyorsan kodlarini paylasir misin.

EstV3Pos sorunsuz calisiyor diye biliyorum.

mettleshade commented 5 months ago

Readme Konusunda haklisin, orayi guncellerim.

EstV3Pos'ta hala sorun yasiyorsan kodlarini paylasir misin.

EstV3Pos sorunsuz calisiyor diye biliyorum.

size attığım txtnin en başında payflex yazıyor, yani pos.php doyasında ziraat ayarlarındada payflex giriliymiş onu est olarak değiştirince sorun düzeldi, şuanda banka ödeme miktarını kabul etmiyor Invalid money amount hatasını alıyorum çözüp dönüş yapacağım.

mettleshade commented 5 months ago

@nuryagdym https://mpi.ziraatbank.com.tr/Enrollment.aspx linkine veri gönderiyor ama bu linki direk açınca benim aldığım hata geliyor, tam anlayamadım dökümanlara baktım 3d host için https://entegrasyon.asseco-see.com.tr/fim/est3Dgate linkine post edilmesi istenmiş denedim fakat boş bir sayfa açılıyor

nuryagdym commented 5 months ago

https://mpi.ziraatbank.com.tr/Enrollment.aspx PayFlex gatewayin production linki,

https://entegrasyon.asseco-see.com.tr/fim/est3Dgate EstV3Pos'un ise test ortam linki.

Hangi ortamda deniyorsan, ona gore dogru linkler kullanman gerekiyor. Bu kadar karisiklik olmamasi gerekiyor kodda

mettleshade commented 5 months ago

canlı ile deniyorum ama image direk bu ekran açılıyor zaten linki direk açtığınızdada aynı ekran geliyor, müsait bir anda anydesk atabilirim incelemeniz için yada istediğiniz bir log varsa göndereyim mail olarak

mettleshade commented 5 months ago

@nuryagdym banka ile iletişime geçtim gelen cevap şu şekilde;

Ziraat Bankası 3D Secure URL Adresi: https://sanalpos2.ziraatbank.com.tr/fim/est3Dgate Api Server URL Adresi: https://sanalpos2.ziraatbank.com.tr/fim/api

nuryagdym commented 5 months ago

examples/akbank ornekleri kontrol ederek dener misin, bu gonderdigin URL'leri de pos.php tanimlaman gerekecek.

Payten (EstV3Pos) gateway'i destegi sorunsuz calisiyor diye biliyorum.

Artik gerisi destek hizmeti oluyor, kutuphane ile ilgili destek hizmeti vermiyorum.

mettleshade commented 5 months ago

examples/akbank ornekleri kontrol ederek dener misin, bu gonderdigin URL'leri de pos.php tanimlaman gerekecek.

Payten (EstV3Pos) gateway'i destegi sorunsuz calisiyor diye biliyorum.

Artik gerisi destek hizmeti oluyor, kutuphane ile ilgili destek hizmeti vermiyorum.

Bütün sorunları çözdüm kütüphanede bir sorun yok ama biraz karışık, tamamladığımda yeni arkadaşların dikkat etmesi için konuyu düzenleyeceğim, birde bu estpos direk 3d doğrulama sonrasında parayı hesaptan mı çekiyor? kuveyt posta okurle yönlendirdiğinde kart bilgilerini tekrar kullanıp ödemeyi yapıp sipariş oluşturuyordum,

nuryagdym commented 5 months ago

Dokumanlari ve examplelari iyilestirme konusu uzerinden calisiyorum.

Readme'de odeme modelleri hakkinda bilgi var, o bilgileri inceler misin.

Karti bankanin sayfasindan almak istiyorsan MODEL_3D_HOST kullanman gerekiyor

nuryagdym commented 5 months ago

@mettleshade feedback icin tesekkurler, bahsettigin konulari ele alirim

nuryagdym commented 5 months ago

@mettleshade paylastigin card type mapping degerler dokumantasyonla uyusmuyor. desteklenen kart tipleri ile ilgili dokumantasyon paylasir misin. Dokumantayonda sadece bu alttaki degerleri bulabildim:


                <tr>

                    <td>Choosing Visa / Master Card</td> 
                    <td><select name="cardType">

                            <option value="1">Visa</option>
                            <option value="2">MasterCard</option>
                    </select>
                </tr>

Paylastigin ornek ise hatali:

    protected $cardTypeMapping = [
        AbstractCreditCard::CARD_TYPE_VISA       => '0', // 1 olmasi gerekiyor
        AbstractCreditCard::CARD_TYPE_MASTERCARD => '1', // 2 olmasi gerekiyor
        AbstractCreditCard::CARD_TYPE_AMEX       => '2', // dokumantasyonda bilgi yok
        AbstractCreditCard::CARD_TYPE_TROY       => '3', // dokumantasyonda bilgi yok
    ];
mettleshade commented 5 months ago

@mettleshade paylastigin card type mapping degerler dokumantasyonla uyusmuyor. desteklenen kart tipleri ile ilgili dokumantasyon paylasir misin. Dokumantayonda sadece bu alttaki degerleri bulabildim:


              <tr>

                  <td>Choosing Visa / Master Card</td> 
                  <td><select name="cardType">

                          <option value="1">Visa</option>
                          <option value="2">MasterCard</option>
                  </select>
              </tr>

Paylastigin ornek ise hatali:

    protected $cardTypeMapping = [
        AbstractCreditCard::CARD_TYPE_VISA       => '0', // 1 olmasi gerekiyor
        AbstractCreditCard::CARD_TYPE_MASTERCARD => '1', // 2 olmasi gerekiyor
        AbstractCreditCard::CARD_TYPE_AMEX       => '2', // dokumantasyonda bilgi yok
        AbstractCreditCard::CARD_TYPE_TROY       => '3', // dokumantasyonda bilgi yok
    ];

Dökümantasyonlara bakmadım direk banka ile haberleştim troy desteklediğini söylediler ve ben şuanda bu şekilde kullanıyorum hiçbir sıkıntı yaşamadım.

nuryagdym commented 5 months ago

test ortamda cardType verisini gondermeden odeme yapmayi denedim calisiyor. Yani senin gonderdigin degerleri de gateway islemiyordur. cardType ilgili olan kodlari kaldirabiliriz diye dusunuyorum, ama bu dusuncemi destekleyen bir dokumantasyon olmadan guncelleme yapmak istemiyorum

mettleshade commented 5 months ago

Normalde kodu güncellemeden önce troy kart ile denedim kütüphane kart tipi desteklenmiyor hatası verdi, daha sonra ekleme gereği duydum ama tabi banka için gerekli değilse bilemiyorum.

nuryagdym commented 5 months ago

v1.0.0 gerekende README guncellemesi ve daha anlasilir olabilmesi icin istenilen bazi degisiklikler yapildi.

Kart Tipleri ile ilgili guncelleme dokumantasyon saglaninca yapilacak