[GH-ISSUE #274] (Ziraat Katilim) PayFor sınıfı için sabitlenmiş olan MBR_ID güncelleyemiyorum #147

Closed
opened 2026-03-03 15:43:31 +03:00 by kerem · 10 comments
Owner

Originally created by @kazimolmez on GitHub (Sep 14, 2025).
Original GitHub issue: https://github.com/mewebstudio/pos/issues/274

Hatanın özeti

Merhabalar. Laravel de laravel-pos sınıfı üzerinden bu paketi kullanıyorum. PayForPosRequestDataMapper sınıfında MBR_ID değeri 5 olarak sabitlenmiş. Ziraat Katılım bankasının bana verdiği mbr id değeri ise 12. Bunu güncelleyemediğim için hash yanlış oluşturuluyor ve hata alıyorum. PayForPosRequestDataMapper sınıfı içinde düzenleme yapıp MBR_ID değerini 12 yaptığımda bir sorun olmuyor. Bu değer eskiden config den okunuyormuş sanırım, tekrar config den okuyacak şekilde güncellenirse sorun çözülür.

Banka ismi

Ziraat Katılım Bankası

Gateway PHP sınıfı

PayForPos

İşlem Tipi

MODEL_3D_SECURE ödeme

Kütüphane versiyonu

1.6

Checks

  • Bu konuda zaten bir hata bildirimi olmadığından eminim.
  • Hatayı yeniden oluşturmak için gereken detayları ekledim.
Originally created by @kazimolmez on GitHub (Sep 14, 2025). Original GitHub issue: https://github.com/mewebstudio/pos/issues/274 ### Hatanın özeti Merhabalar. Laravel de laravel-pos sınıfı üzerinden bu paketi kullanıyorum. PayForPosRequestDataMapper sınıfında MBR_ID değeri 5 olarak sabitlenmiş. Ziraat Katılım bankasının bana verdiği mbr id değeri ise 12. Bunu güncelleyemediğim için hash yanlış oluşturuluyor ve hata alıyorum. PayForPosRequestDataMapper sınıfı içinde düzenleme yapıp MBR_ID değerini 12 yaptığımda bir sorun olmuyor. Bu değer eskiden config den okunuyormuş sanırım, tekrar config den okuyacak şekilde güncellenirse sorun çözülür. ### Banka ismi Ziraat Katılım Bankası ### Gateway PHP sınıfı PayForPos ### İşlem Tipi MODEL_3D_SECURE ödeme ### Kütüphane versiyonu 1.6 ### Checks - [x] Bu konuda zaten bir hata bildirimi olmadığından eminim. - [x] Hatayı yeniden oluşturmak için gereken detayları ekledim.
kerem 2026-03-03 15:43:31 +03:00
Author
Owner

@nuryagdym commented on GitHub (Sep 15, 2025):

Merhabalar,
PayFor'yu sadece Finansbank kullaniyor diye biliyordum.
Elinizde entegrasyon dokumantasyonu varsa paylasir misiniz? Guncellemeleri Dokumantasyona gore yapacagim.

MBR_ID hatirladigim kadariyla hic bir zaman config uzerinden ayarlanabilir olmadi, ama yapabiliriz.

Guncelleme yapilincaya kadar kutuphane kodu guncellemek yerine, su sekilde yapabilmeniz lazim:
https://github.com/mewebstudio/laravel-pos/blob/master/docs/EXAMPLE-API-ISTEK-VE-3D-FORM-VERSINI-DEGISTIRME.md

<!-- gh-comment-id:3290627199 --> @nuryagdym commented on GitHub (Sep 15, 2025): Merhabalar, PayFor'yu sadece Finansbank kullaniyor diye biliyordum. Elinizde entegrasyon dokumantasyonu varsa paylasir misiniz? Guncellemeleri Dokumantasyona gore yapacagim. `MBR_ID` hatirladigim kadariyla hic bir zaman config uzerinden ayarlanabilir olmadi, ama yapabiliriz. Guncelleme yapilincaya kadar kutuphane kodu guncellemek yerine, su sekilde yapabilmeniz lazim: https://github.com/mewebstudio/laravel-pos/blob/master/docs/EXAMPLE-API-ISTEK-VE-3D-FORM-VERSINI-DEGISTIRME.md
Author
Owner

@kazimolmez commented on GitHub (Sep 18, 2025):

payfor ziraat.zip

Bende daha önce ziraat entegrsayonu yapmıştım ama burda nedense payfor verdiler.

Bana gönderilen örnek kod ve dokümanları bu zip içinde topladım.

<!-- gh-comment-id:3309664859 --> @kazimolmez commented on GitHub (Sep 18, 2025): [payfor ziraat.zip](https://github.com/user-attachments/files/22414663/payfor.ziraat.zip) Bende daha önce ziraat entegrsayonu yapmıştım ama burda nedense payfor verdiler. Bana gönderilen örnek kod ve dokümanları bu zip içinde topladım.
Author
Owner

@nuryagdym commented on GitHub (Sep 19, 2025):

hmm, ben de ziraat katilim bankasina yazdim, onlar bizde PayFor altyapiyi desteklemediklerini belirttiler.
Canli ortamda kullaniyor musunuz?

varsa test edebilmem icin epostama (nuryagdy@mustapayev.com)

  • test ortam API bilgileri
  • test ortam kart bilgileri
  • ve canli ortam API URL'ler
    atar miniz?
<!-- gh-comment-id:3311756589 --> @nuryagdym commented on GitHub (Sep 19, 2025): hmm, ben de ziraat katilim bankasina yazdim, onlar bizde PayFor altyapiyi desteklemediklerini belirttiler. Canli ortamda kullaniyor musunuz? varsa test edebilmem icin epostama (nuryagdy@mustapayev.com) - test ortam API bilgileri - test ortam kart bilgileri - ve canli ortam API URL'ler atar miniz?
Author
Owner

@nuryagdym commented on GitHub (Sep 24, 2025):

@kazimolmez ortam bilgileri icin tesekkurler.
Kutuphanede MbrId ayarlanabilinecek sekilde guncellemeler yaptim.
Ancak hala sorunlar yasiyorum.
Alt yapi ile ilgili 2 sorum var:

  1. 3D_SECURE odemede, gonderdiginiz bilgilerle ve MbrId=12 ile nededigim de 3d onayindan sonra bankadan donuste kutuphane hash checki yapiyor: github.com/mewebstudio/pos@cceb58c07c/src/Gateways/PayForPos.php (L81-L83)
    burda kutuphane bankadan gelen verileri gore hash hesapliyor ve hesapladigi hash bankadan gonderilen hash verisi ile uyusmuyor. Bu yuzden de hash mismatch hatasi veriyor. Banka dokumantasyonlarinda ve ornek kodlarinda gore hash hesaplama icin bir bilgi yer almiyor. Belirtiginiz hash hesaplama sorunu bir tek burda aldim, ancak bu hashi hesaplarken MbrId kullanilmiyor.

Hashi dogru hesaplama algoritmasi icin bu altyapinin destek ekibinin epostasini rica ediyorum

  1. 3D_PAY odeme'de MbrId=12 ile calisiyor, ancak 3D_PAY'de bu hash kontrolu yapmiyoruz. Yani sizin calisiyor dediginiz 3D_PAY sanirim degil mi?
<!-- gh-comment-id:3326833778 --> @nuryagdym commented on GitHub (Sep 24, 2025): @kazimolmez ortam bilgileri icin tesekkurler. Kutuphanede MbrId ayarlanabilinecek sekilde guncellemeler yaptim. Ancak hala sorunlar yasiyorum. Alt yapi ile ilgili 2 sorum var: 1. 3D_SECURE odemede, gonderdiginiz bilgilerle ve `MbrId=12` ile nededigim de 3d onayindan sonra bankadan donuste kutuphane hash checki yapiyor: https://github.com/mewebstudio/pos/blob/cceb58c07c9e40ac1b29296b78e1f18bf0313433/src/Gateways/PayForPos.php#L81-L83 burda kutuphane bankadan gelen verileri gore hash hesapliyor ve hesapladigi hash bankadan gonderilen hash verisi ile uyusmuyor. Bu yuzden de **hash mismatch** hatasi veriyor. Banka dokumantasyonlarinda ve ornek kodlarinda gore hash hesaplama icin bir bilgi yer almiyor. Belirtiginiz hash hesaplama sorunu bir tek burda aldim, _ancak bu hashi hesaplarken MbrId kullanilmiyor._ Hashi dogru hesaplama algoritmasi icin bu altyapinin destek ekibinin epostasini rica ediyorum 2. 3D_PAY odeme'de `MbrId=12` ile calisiyor, ancak 3D_PAY'de bu hash kontrolu yapmiyoruz. Yani sizin calisiyor dediginiz 3D_PAY sanirim degil mi?
Author
Owner

@kazimolmez commented on GitHub (Sep 25, 2025):

Bu konuyu bende sormuştum kendilerine bana net bi cevap vermek yerine örnek kod ve dokümanları iletmişlerdi. Dediğiniz gibi örnek kodlarda dönüş tarafında bi hash doğrulaması yok gelen parametreye göre direk ödeme başarılı veya başarısız demişler. Çalışıyor derken aslında işlemi sonuna kadar getirememiştim yanlış kart bilgileri yüzünden. Doğru test kart bilgilerine ulaştıktan sonra bende bahsettiğiniz sorunla(hash mismatch) karşılaştım.

Görüştüğüm email adresi: vpos_operasyon@paycore.com

<!-- gh-comment-id:3332203467 --> @kazimolmez commented on GitHub (Sep 25, 2025): Bu konuyu bende sormuştum kendilerine bana net bi cevap vermek yerine örnek kod ve dokümanları iletmişlerdi. Dediğiniz gibi örnek kodlarda dönüş tarafında bi hash doğrulaması yok gelen parametreye göre direk ödeme başarılı veya başarısız demişler. Çalışıyor derken aslında işlemi sonuna kadar getirememiştim yanlış kart bilgileri yüzünden. Doğru test kart bilgilerine ulaştıktan sonra bende bahsettiğiniz sorunla(hash mismatch) karşılaştım. Görüştüğüm email adresi: vpos_operasyon@paycore.com
Author
Owner

@nuryagdym commented on GitHub (Sep 25, 2025):

Hmm, bu isleri zorlastiriyor. Hash kontrolu kapatinca calisiyor.
Bunun icin yine cozum bulunmasi gerekiyor. Biraz zaman alacak.

<!-- gh-comment-id:3332322456 --> @nuryagdym commented on GitHub (Sep 25, 2025): Hmm, bu isleri zorlastiriyor. Hash kontrolu kapatinca calisiyor. Bunun icin yine cozum bulunmasi gerekiyor. Biraz zaman alacak.
Author
Owner

@nuryagdym commented on GitHub (Sep 26, 2025):

@kazimolmez elinizde varsa canli ortam URL'leri paylasir misiniz

<!-- gh-comment-id:3339003062 --> @nuryagdym commented on GitHub (Sep 26, 2025): @kazimolmez elinizde varsa canli ortam URL'leri paylasir misiniz
Author
Owner
<!-- gh-comment-id:3341472400 --> @kazimolmez commented on GitHub (Sep 27, 2025): Merchant Center: https://vpos.ziraatkatilim.com.tr/login 3D / 3D Pay: https://vpos.ziraatkatilim.com.tr/MPI/Default.aspx 3D Host: https://vpos.ziraatkatilim.com.tr/Mpi/3Dhost.aspx
Author
Owner

@nuryagdym commented on GitHub (Oct 1, 2025):

Merhabalar,
test ortam bilgileri sizde calisiyor mu?
Ben de V1607 hatasi veriyor nedense.

<!-- gh-comment-id:3356144820 --> @nuryagdym commented on GitHub (Oct 1, 2025): Merhabalar, test ortam bilgileri sizde calisiyor mu? Ben de V1607 hatasi veriyor nedense.
Author
Owner

@nuryagdym commented on GitHub (Oct 4, 2025):

v1.7.0 ile yayina aldim. Account olustururuken son parametre ile MbrId ekleyebilirisniz.

$account = \Mews\Pos\Factory\AccountFactory::createPayForAccount(
    'qnbfinansbank-payfor',
    'merchantid',
    'username',
    'password',
    PosInterface::MODEL_3D_SECURE,
    'secretKey',
    PosInterface::LANG_TR,
    \Mews\Pos\Entity\Account\PayForAccount::MBR_ID_ZIRAAT_KATILIM
);

Laravel Pos config ornegi:

return [
    'banks' => [
        'payfor_ziraat_katilim'     => [
            'gateway_class'     => \Mews\Pos\Gateways\PayForPos::class,
            'credentials'       => [
                'payment_model' => \Mews\Pos\PosInterface::MODEL_3D_SECURE,
                'merchant_id'   => '08530000XXXXXXXX', // Üye İşyeri Numarası.
                'user_name'     => 'ZIRAAT_KATILIM_API_XXXXXXXX', // UserCode: Otorizasyon sistemi kullanıcı kodu.
                'user_password' => 'XXXXXXXX', // Otorizasyon sistemi kullanıcı şifresi.
                'enc_key'       => 'XXXXXXXX', // MerchantPass: 3D Secure şifresidir.
                'mbr_id'        => \Mews\Pos\Entity\Account\PayForAccount::MBR_ID_ZIRAAT_KATILIM, // (Kurum Kodu)
            ],
            'gateway_configs'   => [
                // Ziraat Katilim için hash kontrolü çalışmıyor. O yüzden devre dışı bırakıyoruz.
                'disable_3d_hash_check' => true,
            ],
            'gateway_endpoints' => [
                'payment_api'     => 'https://payfortestziraatkatilim.cordisnetwork.com/Mpi/XMLGate.aspx',
                'gateway_3d'      => 'https://payfortestziraatkatilim.cordisnetwork.com/Mpi/Default.aspx',
                'gateway_3d_host' => 'https://payfortestziraatkatilim.cordisnetwork.com/Mpi/3DHost.aspx',
            ],
        ],
    ],
];

<!-- gh-comment-id:3368219330 --> @nuryagdym commented on GitHub (Oct 4, 2025): v1.7.0 ile yayina aldim. Account olustururuken son parametre ile **MbrId** ekleyebilirisniz. ```php $account = \Mews\Pos\Factory\AccountFactory::createPayForAccount( 'qnbfinansbank-payfor', 'merchantid', 'username', 'password', PosInterface::MODEL_3D_SECURE, 'secretKey', PosInterface::LANG_TR, \Mews\Pos\Entity\Account\PayForAccount::MBR_ID_ZIRAAT_KATILIM ); ``` Laravel Pos config ornegi: ```php return [ 'banks' => [ 'payfor_ziraat_katilim' => [ 'gateway_class' => \Mews\Pos\Gateways\PayForPos::class, 'credentials' => [ 'payment_model' => \Mews\Pos\PosInterface::MODEL_3D_SECURE, 'merchant_id' => '08530000XXXXXXXX', // Üye İşyeri Numarası. 'user_name' => 'ZIRAAT_KATILIM_API_XXXXXXXX', // UserCode: Otorizasyon sistemi kullanıcı kodu. 'user_password' => 'XXXXXXXX', // Otorizasyon sistemi kullanıcı şifresi. 'enc_key' => 'XXXXXXXX', // MerchantPass: 3D Secure şifresidir. 'mbr_id' => \Mews\Pos\Entity\Account\PayForAccount::MBR_ID_ZIRAAT_KATILIM, // (Kurum Kodu) ], 'gateway_configs' => [ // Ziraat Katilim için hash kontrolü çalışmıyor. O yüzden devre dışı bırakıyoruz. 'disable_3d_hash_check' => true, ], 'gateway_endpoints' => [ 'payment_api' => 'https://payfortestziraatkatilim.cordisnetwork.com/Mpi/XMLGate.aspx', 'gateway_3d' => 'https://payfortestziraatkatilim.cordisnetwork.com/Mpi/Default.aspx', 'gateway_3d_host' => 'https://payfortestziraatkatilim.cordisnetwork.com/Mpi/3DHost.aspx', ], ], ], ]; ```
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/pos#147
No description provided.