[GH-ISSUE #153] İş Bankası İmece Tarım Kartları Hk. #78

Closed
opened 2026-03-03 15:42:45 +03:00 by kerem · 19 comments
Owner

Originally created by @huseyinyildirim on GitHub (Sep 1, 2023).
Original GitHub issue: https://github.com/mewebstudio/pos/issues/153

Merhaba,

İş Bankası'nın İMECE Tarım kartları var ve faizsiz ödemeyi dilediğiniz ay kadar ileri atmaktadır.

Servislere ise bununla ilgili aşağıdaki gibi parametrelerde gönderim yapmam gerekiyormuş.

Bu parametreleri nasıl eklemem gerekiyor. İyi çalışmalar.

<Extra> <IMCKOD>İmece Ürün Bilgisi</IMCKOD> <FDONEM>Faizsiz Dönem Bilgisi</FDONEM> </Extra>

Originally created by @huseyinyildirim on GitHub (Sep 1, 2023). Original GitHub issue: https://github.com/mewebstudio/pos/issues/153 Merhaba, İş Bankası'nın İMECE Tarım kartları var ve faizsiz ödemeyi dilediğiniz ay kadar ileri atmaktadır. Servislere ise bununla ilgili aşağıdaki gibi parametrelerde gönderim yapmam gerekiyormuş. Bu parametreleri nasıl eklemem gerekiyor. İyi çalışmalar. `<Extra> <IMCKOD>İmece Ürün Bilgisi</IMCKOD> <FDONEM>Faizsiz Dönem Bilgisi</FDONEM> </Extra>`
kerem 2026-03-03 15:42:45 +03:00
Author
Owner

@huseyinyildirim commented on GitHub (Sep 2, 2023):

estposv3

Banka bizden resimdeki formatta istiyor. Payten destek ile görüştüm ve bu konuda tarafıma bilgi döndüğünde gelişmeleri buraya aktaracağım.

<!-- gh-comment-id:1703767429 --> @huseyinyildirim commented on GitHub (Sep 2, 2023): <img width="905" alt="estposv3" src="https://github.com/mewebstudio/pos/assets/6034013/46034c9f-58ac-43d6-94e1-ac4dafcbfd92"> Banka bizden resimdeki formatta istiyor. Payten destek ile görüştüm ve bu konuda tarafıma bilgi döndüğünde gelişmeleri buraya aktaracağım.
Author
Owner

@nuryagdym commented on GitHub (Sep 2, 2023):

Merhabalar,

  1. Extra alani baktigim kadariyla kutuphane su an sadece status, cancel ve refund islemlerde gonderiyor. Odeme islemleri icin bu alani gondermiyor. Bendeki dokumantasyonlarina baktigimda da odeme islemlerinde extra alani gonderildigini goremedim.
    Ama denem olarak suradaki https://github.com/mewebstudio/pos/blob/master/src/DataMapper/EstPosRequestDataMapper.php#L74
    $requestData icine ekleyip calisip calismadigini kontrol edebilirsiniz.

  2. Hash ile ilgili bir sorun olmamasi gerekiyor. Bunlarin istedigi haslama yontemde degiskenlerin siralamasi onemli degil sadece gonderilecek tum alanlar (arraydeki siralamasi neyse) oldugu gibi hashlenecek ve o Hash deger gonerilecek.
    Test ortamda calisiyor bende. Sorun olsaydi hash sorunu oldugunu belirten bir hata verirdi.

<!-- gh-comment-id:1703769007 --> @nuryagdym commented on GitHub (Sep 2, 2023): Merhabalar, 1. `Extra` alani baktigim kadariyla kutuphane su an sadece status, cancel ve refund islemlerde gonderiyor. Odeme islemleri icin bu alani gondermiyor. Bendeki dokumantasyonlarina baktigimda da odeme islemlerinde extra alani gonderildigini goremedim. Ama denem olarak suradaki https://github.com/mewebstudio/pos/blob/master/src/DataMapper/EstPosRequestDataMapper.php#L74 `$requestData` icine ekleyip calisip calismadigini kontrol edebilirsiniz. 2. Hash ile ilgili bir sorun olmamasi gerekiyor. Bunlarin istedigi haslama yontemde degiskenlerin siralamasi onemli degil sadece gonderilecek tum alanlar (arraydeki siralamasi neyse) oldugu gibi hashlenecek ve o Hash deger gonerilecek. Test ortamda calisiyor bende. Sorun olsaydi hash sorunu oldugunu belirten bir hata verirdi.
Author
Owner

@huseyinyildirim commented on GitHub (Sep 2, 2023):

Cevabınız için teşekkür ederim.

Bankadan dün aldığımız bilgiye göre, bize açtığı sanal pos sadece İMECE kartları geçmek içinmiş. İşin ilginç tarafı İMECE kartla geçtiğimizdede aynı hatayı almamız oldu. Banka bu konuda pazartesi cevap verecektir. Ona göre bir düzenleme gerçekleştirebiliriz.

<!-- gh-comment-id:1703770198 --> @huseyinyildirim commented on GitHub (Sep 2, 2023): Cevabınız için teşekkür ederim. Bankadan dün aldığımız bilgiye göre, bize açtığı sanal pos sadece İMECE kartları geçmek içinmiş. İşin ilginç tarafı İMECE kartla geçtiğimizdede aynı hatayı almamız oldu. Banka bu konuda pazartesi cevap verecektir. Ona göre bir düzenleme gerçekleştirebiliriz.
Author
Owner

@nuryagdym commented on GitHub (Sep 2, 2023):

ayni hata derken?
bir de IMECE kart normal VISA/MASTER kart oluyor degil mi?

<!-- gh-comment-id:1703771960 --> @nuryagdym commented on GitHub (Sep 2, 2023): ayni hata derken? bir de IMECE kart normal VISA/MASTER kart oluyor degil mi?
Author
Owner

@huseyinyildirim commented on GitHub (Sep 2, 2023):

İlk hata :SL113 Seçilen bölümde, ilgili işlem tipine ait mali koşul tanımı bulunmamaktadır.
Son hata: SL109 Seçilen bölümde, ilgili işlem tipine ait mali koşul tanımı bulunmamaktadır.

İş bankası imece kartlarını "4410 77" ile başlayan VISA ticari debitlere tanımlamış.

<!-- gh-comment-id:1703773297 --> @huseyinyildirim commented on GitHub (Sep 2, 2023): İlk hata :SL113 Seçilen bölümde, ilgili işlem tipine ait mali koşul tanımı bulunmamaktadır. Son hata: SL109 Seçilen bölümde, ilgili işlem tipine ait mali koşul tanımı bulunmamaktadır. İş bankası imece kartlarını "4410 77" ile başlayan VISA ticari debitlere tanımlamış.
Author
Owner

@huseyinyildirim commented on GitHub (Sep 5, 2023):

Merhaba,

Imece kartlarda bankaya ayrıca parametre iletmek gerekiyormuş. Dokümantasyon ektedir.

Aşağıdaki gibi FDONEM ve IMCKOD parametrelerini aşağıdaki örnekteki gibi, hash içine alfabetik sıra ile eklemek gerekiyormuş.

amount|BillToCompany|BillToName|callbackUrl|clientid|currency|failUrl|fdonem|hashAlgorithm|imckod|Inst alment|lang|okurl|refreshtime|rnd|storetype|TranType|storeKey

İs Bankası_İmece Kart_Üye İşyeri Entegrasyon Dokümanı_v3.0.pdf

<!-- gh-comment-id:1707118177 --> @huseyinyildirim commented on GitHub (Sep 5, 2023): Merhaba, Imece kartlarda bankaya ayrıca parametre iletmek gerekiyormuş. Dokümantasyon ektedir. Aşağıdaki gibi FDONEM ve IMCKOD parametrelerini aşağıdaki örnekteki gibi, hash içine alfabetik sıra ile eklemek gerekiyormuş. amount|BillToCompany|BillToName|callbackUrl|clientid|currency|failUrl|**fdonem**|hashAlgorithm|**imckod**|Inst alment|lang|okurl|refreshtime|rnd|storetype|TranType|storeKey [İs Bankası_İmece Kart_Üye İşyeri Entegrasyon Dokümanı_v3.0.pdf](https://github.com/mewebstudio/pos/files/12527097/Is.Bankasi_Imece.Kart_Uye.Isyeri.Entegrasyon.Dokumani_v3.0.pdf)
Author
Owner

@nuryagdym commented on GitHub (Sep 6, 2023):

Merhaba,

Imece kart icin test kart var midir?
Test kart varsa test ortamda calisir mi?
Bir de bu IMECE kart sadece isbanka ozel mi yoksa diger bankalar tarafindanda verilir mi?

Hash islemi dedigim gibi degisiklik gerektirmeden calismasi gerekiyor.
3D_SECURE odeme kullaniyorsaniz yukarda anlattigim gibi burda
https://github.com/mewebstudio/pos/blob/master/src/DataMapper/EstPosRequestDataMapper.php#L74
$requestData icine ekleyip calisip calismadigini kontrol edebilirsiniz.

Bu asamada zaten hashing yapilmiyor.

<!-- gh-comment-id:1707763696 --> @nuryagdym commented on GitHub (Sep 6, 2023): Merhaba, Imece kart icin test kart var midir? Test kart varsa test ortamda calisir mi? Bir de bu IMECE kart sadece isbanka ozel mi yoksa diger bankalar tarafindanda verilir mi? Hash islemi dedigim gibi degisiklik gerektirmeden calismasi gerekiyor. **3D_SECURE** odeme kullaniyorsaniz yukarda anlattigim gibi burda https://github.com/mewebstudio/pos/blob/master/src/DataMapper/EstPosRequestDataMapper.php#L74 `$requestData` icine ekleyip calisip calismadigini kontrol edebilirsiniz. Bu asamada zaten hashing yapilmiyor.
Author
Owner

@huseyinyildirim commented on GitHub (Sep 6, 2023):

Imece kart icin test kart var midir?
Test kart varsa test ortamda calisir mi?

Bunların bilgisini alıp bildireceğim.

Bir de bu IMECE kart sadece isbanka ozel mi yoksa diger bankalar tarafindanda verilir mi?

IMECE kart İşbankasına özel tarım kartıdır. Ticari debit kart ve özelliği ise fdonem parametresi ile gönderilen int değere göre faizsiz ödemeyi erteliyor. Diğer bankalarda tarım kartları var ama özelliği nedir bilmiyorum.

3D_SECURE odeme kullaniyorsaniz

Evet kullanıyorum.

https://github.com/mewebstudio/pos/blob/master/src/DataMapper/EstPosRequestDataMapper.php#L74
$requestData icine ekleyip calisip calismadigini kontrol edebilirsiniz.

Gerekli düzenlemeleri yapar ve test eder, tarafınıza bildirim yaparım.

Teşekkürler.

<!-- gh-comment-id:1707783877 --> @huseyinyildirim commented on GitHub (Sep 6, 2023): > Imece kart icin test kart var midir? > Test kart varsa test ortamda calisir mi? Bunların bilgisini alıp bildireceğim. > Bir de bu IMECE kart sadece isbanka ozel mi yoksa diger bankalar tarafindanda verilir mi? IMECE kart İşbankasına özel tarım kartıdır. Ticari debit kart ve özelliği ise fdonem parametresi ile gönderilen int değere göre faizsiz ödemeyi erteliyor. Diğer bankalarda tarım kartları var ama özelliği nedir bilmiyorum. > **3D_SECURE** odeme kullaniyorsaniz Evet kullanıyorum. > https://github.com/mewebstudio/pos/blob/master/src/DataMapper/EstPosRequestDataMapper.php#L74 > `$requestData` icine ekleyip calisip calismadigini kontrol edebilirsiniz. Gerekli düzenlemeleri yapar ve test eder, tarafınıza bildirim yaparım. Teşekkürler.
Author
Owner

@huseyinyildirim commented on GitHub (Sep 6, 2023):

Imece kart icin test kart var midir?
Test kart varsa test ortamda calisir mi?

4242 4242 4242 4242
10/2028
123

<!-- gh-comment-id:1708014664 --> @huseyinyildirim commented on GitHub (Sep 6, 2023): > Imece kart icin test kart var midir? > Test kart varsa test ortamda calisir mi? 4242 4242 4242 4242 10/2028 123
Author
Owner

@nuryagdym commented on GitHub (Sep 6, 2023):

Hmm, denedigimde 3D onaylama asamasinda "Authentication unavailable (DS)" hatasi aliyorum.

Belki bendeki test API hesap bilgileri bu kart icin uygun degil.

Kendiniz calistirirsaniz haber verirseniz kodlari ona gore guncellerim.

<!-- gh-comment-id:1708063346 --> @nuryagdym commented on GitHub (Sep 6, 2023): Hmm, denedigimde 3D onaylama asamasinda "Authentication unavailable (DS)" hatasi aliyorum. Belki bendeki test API hesap bilgileri bu kart icin uygun degil. Kendiniz calistirirsaniz haber verirseniz kodlari ona gore guncellerim.
Author
Owner

@huseyinyildirim commented on GitHub (Sep 6, 2023):

EstV3Pos ilemi denediniz?

<!-- gh-comment-id:1708188936 --> @huseyinyildirim commented on GitHub (Sep 6, 2023): EstV3Pos ilemi denediniz?
Author
Owner

@nuryagdym commented on GitHub (Sep 6, 2023):

Evet

<!-- gh-comment-id:1708353963 --> @nuryagdym commented on GitHub (Sep 6, 2023): Evet
Author
Owner

@huseyinyildirim commented on GitHub (Sep 6, 2023):

3D_SECURE odeme kullaniyorsaniz yukarda anlattigim gibi burda
https://github.com/mewebstudio/pos/blob/master/src/DataMapper/EstPosRequestDataMapper.php#L74
$requestData icine ekleyip calisip calismadigini kontrol edebilirsiniz.

Burada benim anlamadığım bir şey var. Frontend tarafında forma bir hidden eklemem yeterli olmuyor mu?

<!-- gh-comment-id:1708930557 --> @huseyinyildirim commented on GitHub (Sep 6, 2023): > **3D_SECURE** odeme kullaniyorsaniz yukarda anlattigim gibi burda > https://github.com/mewebstudio/pos/blob/master/src/DataMapper/EstPosRequestDataMapper.php#L74 > `$requestData` icine ekleyip calisip calismadigini kontrol edebilirsiniz. Burada benim anlamadığım bir şey var. Frontend tarafında forma bir hidden eklemem yeterli olmuyor mu?
Author
Owner

@nuryagdym commented on GitHub (Sep 7, 2023):

3D secure kullaniyorsaniz, yani AbstractGateway::MODEL_3D_SECURE, formun icerigini degistirmemeniz gerekiyor.
Sadece vendor/ altinda EstPosRequestDataMapper bu sinifi bulup create3DPaymentRequestData() methodu su alttaki kod ile degistirip tekrar deneyin:

public function create3DPaymentRequestData(AbstractPosAccount $account, $order, string $txType, array $responseData): array
{
    $requestData = $this->getRequestAccountData($account) + [
            'Type'                    => $this->mapTxType($txType),
            'IPAddress'               => (string) ($order->ip ?? ''),
            'Email'                   => (string) $order->email,
            'OrderId'                 => (string) $order->id,
            'UserId'                  => (string) ($order->user_id ?? ''),
            'Total'                   => (string) $order->amount,
            'Currency'                => $this->mapCurrency($order->currency),
            'Taksit'                  => $this->mapInstallment($order->installment),
            'Number'                  => $responseData['md'],
            'PayerTxnId'              => $responseData['xid'],
            'PayerSecurityLevel'      => $responseData['eci'],
            'PayerAuthenticationCode' => $responseData['cavv'],
            'Mode'                    => 'P',
            'Extra' => [
                'IMCKOD' => 'İmece Ürün Bilgisi',
                'FDONEM' => 'Faizsiz Dönem Bilgisi',
            ]
        ];

    if ($order->name) {
        $requestData['BillTo'] = [
            'Name' => (string) $order->name,
        ];
    }

    if (isset($order->recurringFrequency)) {
        $requestData += $this->getRecurringRequestOrderData($order);
    }

    return  $requestData;
}

<!-- gh-comment-id:1709581088 --> @nuryagdym commented on GitHub (Sep 7, 2023): 3D secure kullaniyorsaniz, yani AbstractGateway::MODEL_3D_SECURE, formun icerigini degistirmemeniz gerekiyor. Sadece vendor/ altinda `EstPosRequestDataMapper` bu sinifi bulup create3DPaymentRequestData() methodu su alttaki kod ile degistirip tekrar deneyin: ``` public function create3DPaymentRequestData(AbstractPosAccount $account, $order, string $txType, array $responseData): array { $requestData = $this->getRequestAccountData($account) + [ 'Type' => $this->mapTxType($txType), 'IPAddress' => (string) ($order->ip ?? ''), 'Email' => (string) $order->email, 'OrderId' => (string) $order->id, 'UserId' => (string) ($order->user_id ?? ''), 'Total' => (string) $order->amount, 'Currency' => $this->mapCurrency($order->currency), 'Taksit' => $this->mapInstallment($order->installment), 'Number' => $responseData['md'], 'PayerTxnId' => $responseData['xid'], 'PayerSecurityLevel' => $responseData['eci'], 'PayerAuthenticationCode' => $responseData['cavv'], 'Mode' => 'P', 'Extra' => [ 'IMCKOD' => 'İmece Ürün Bilgisi', 'FDONEM' => 'Faizsiz Dönem Bilgisi', ] ]; if ($order->name) { $requestData['BillTo'] = [ 'Name' => (string) $order->name, ]; } if (isset($order->recurringFrequency)) { $requestData += $this->getRecurringRequestOrderData($order); } return $requestData; } ```
Author
Owner

@huseyinyildirim commented on GitHub (Sep 8, 2023):

Merhaba,

Bu şekilde çalıştırdım. Teşekkür ederim. Buna göre bir güncelleme yapacakmısınız? Güncellemelerde patlamak istemem.

Diğer konu form inputlarından buraya gerekli parametreleri gönderebilirim? Repo içindeki example düzenleme yaparak kullanıyorum.

<!-- gh-comment-id:1712130085 --> @huseyinyildirim commented on GitHub (Sep 8, 2023): Merhaba, Bu şekilde çalıştırdım. Teşekkür ederim. Buna göre bir güncelleme yapacakmısınız? Güncellemelerde patlamak istemem. Diğer konu form inputlarından buraya gerekli parametreleri gönderebilirim? Repo içindeki example düzenleme yaparak kullanıyorum.
Author
Owner

@nuryagdym commented on GitHub (Sep 9, 2023):

bu ozelligi destekleyen v0.14.0 versiyon ciktim.
Kullanim sekline burdan bakabilirsiniz: https://github.com/mewebstudio/pos/blob/master/docs/CHANGELOG.md

<!-- gh-comment-id:1712529037 --> @nuryagdym commented on GitHub (Sep 9, 2023): bu ozelligi destekleyen v0.14.0 versiyon ciktim. Kullanim sekline burdan bakabilirsiniz: https://github.com/mewebstudio/pos/blob/master/docs/CHANGELOG.md
Author
Owner

@huseyinyildirim commented on GitHub (Sep 9, 2023):

bu ozelligi destekleyen v0.14.0 versiyon ciktim.
Kullanim sekline burdan bakabilirsiniz: https://github.com/mewebstudio/pos/blob/master/docs/CHANGELOG.md

Güncelleme için teşekkür ederim.

if (isset($order->is_imece_card) && true === $order->is_imece_card) { $requestData['Extra']['IMCKOD'] = 'İmece Ürün Bilgisi'; $requestData['Extra']['FDONEM'] = 'Faizsiz Dönem Bilgisi'; }

Burayı biraz daha esnek hale getirebileceğimizi düşünüyorum.

IMCKOD bilgisini banka vermektedir ve İşbankası için bu 9999'dur.

Ziraat Bankası'da Asseco alt yapısını kullanmaya başlamış ve Ziraat Bankasının vereceği tarım kart imckod bilgisi 9999'dan farklı olabilir.

Ayrıca FDONEM kullanıcının form tarafından gönderileceği bir parametredir. Banka üye iş yerine FDONEM max değer tanımlıyor.

Ödeme yapacak kişide 1-5 ay arasında, vade farkına göre seçim yapar. Örneğin 4 seçti, geçtiği meblağı çiftçi bankaya 4 ay sonra faizsiz ödeyecektir.

Bizim form üzerinden IMCKOD ve FDONEM bilgisini gönderebilmemiz gerekiyor.

<!-- gh-comment-id:1712567580 --> @huseyinyildirim commented on GitHub (Sep 9, 2023): > bu ozelligi destekleyen v0.14.0 versiyon ciktim. > Kullanim sekline burdan bakabilirsiniz: https://github.com/mewebstudio/pos/blob/master/docs/CHANGELOG.md Güncelleme için teşekkür ederim. `if (isset($order->is_imece_card) && true === $order->is_imece_card) { $requestData['Extra']['IMCKOD'] = 'İmece Ürün Bilgisi'; $requestData['Extra']['FDONEM'] = 'Faizsiz Dönem Bilgisi'; }` Burayı biraz daha esnek hale getirebileceğimizi düşünüyorum. IMCKOD bilgisini banka vermektedir ve İşbankası için bu 9999'dur. Ziraat Bankası'da Asseco alt yapısını kullanmaya başlamış ve Ziraat Bankasının vereceği tarım kart imckod bilgisi 9999'dan farklı olabilir. Ayrıca FDONEM kullanıcının form tarafından gönderileceği bir parametredir. Banka üye iş yerine FDONEM max değer tanımlıyor. Ödeme yapacak kişide 1-5 ay arasında, vade farkına göre seçim yapar. Örneğin 4 seçti, geçtiği meblağı çiftçi bankaya 4 ay sonra faizsiz ödeyecektir. Bizim form üzerinden IMCKOD ve FDONEM bilgisini gönderebilmemiz gerekiyor.
Author
Owner

@nuryagdym commented on GitHub (Sep 9, 2023):

Merhabalar,

Isterseniz gereken guncellemeleri yapip PR acabilirsiniz.

<!-- gh-comment-id:1712574092 --> @nuryagdym commented on GitHub (Sep 9, 2023): Merhabalar, Isterseniz gereken guncellemeleri yapip PR acabilirsiniz.
Author
Owner

@huseyinyildirim commented on GitHub (Sep 9, 2023):

Merhabalar,

Isterseniz gereken guncellemeleri yapip PR acabilirsiniz.

PR oluşturdum. Bu parametre isimleri bankadan bankaya değişebilir. Ona göre eklemeler yapabiliriz.

<!-- gh-comment-id:1712643426 --> @huseyinyildirim commented on GitHub (Sep 9, 2023): > Merhabalar, > > Isterseniz gereken guncellemeleri yapip PR acabilirsiniz. PR oluşturdum. Bu parametre isimleri bankadan bankaya değişebilir. Ona göre eklemeler yapabiliriz.
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#78
No description provided.