GithubHelp home page GithubHelp logo

mewebstudio / pos Goto Github PK

View Code? Open in Web Editor NEW
233.0 17.0 98.0 3.14 MB

Türk bankaları için sanal pos paketi (PHP)

License: Other

PHP 100.00%
pos sanalpos 3d 3dpay 3dsecure php est posnet garanti asseco payfor qnb-finansbank vakifbank 3dhost denizbank interpos kuveytpos

pos's Introduction

Türk bankaları için sanal pos paketi (PHP)

Version Monthly Downloads License PHP Version Require

Bu paket ile amaçlanan; ortak bir arayüz sınıfı ile, tüm Türk banka sanal pos sistemlerinin kullanılabilmesidir.

Deskteklenen Payment Gateway'ler / Bankalar:

Gateway Desktekleyen
bankalar
Desteklenen
Ödeme Tipleri
Desteklenen Sorgular
Tosla (AKÖde) ? NonSecure
3DPay
3DHost
İptal
İade
Durum sorgulama
Sipariş Tarihçesini sorgulama
AkbankPos Akbank NonSecure
3DSecur
3DPay
3DHost
Tekrarlanan Ödeme
İptal
İade
Sipariş Tarihçesini sorgulama
Geçmiş İşlemleri sorgulama
EST POS
(Asseco/Payten)
deprecated
Akbank
TEB
İşbank
Şekerbank
Halkbank
Finansbank
Ziraat
NonSecure
3DSecure
3DPay
3DHost
3DPayHost
Tekrarlanan Ödeme
İptal
İade
Durum sorgulama
Sipariş Tarihçesini sorgulama
EST V3 POS

EstPos altyapının
daha güvenli
(sha512) hash
algoritmasıyla
uygulaması.
-----"----- -----"----- -----"-----
PayFlex MPI VPOS V4 Ziraat
Vakıfbank
İşbank
NonSecure
3DSecure
Tekrarlanan Ödeme
İptal
İade
Durum sorgulama
PayFlex
Common Payment V4
(Ortak Ödeme)
Ziraat
Vakıfbank
İşbank
NonSecure
3DPay
3DHost
İptal
İade
Garanti Virtual POS Garanti NonSecure
3DSecure
3DPay
3DHost
Tekrarlanan Ödeme
İptal
İade
Durum sorgulama
Sipariş Tarihçesini sorgulama
PosNet YapıKredi NonSecure
3DSecure
İptal
İade
Durum sorgulama
PosNetV1
(JSON API)
Albaraka Türk NonSecure
3DSecure
İptal
İade
Durum sorgulama
PayFor Finansbank
Enpara
NonSecure
3DSecure
3DPay
3DHost
İptal
İade
Durum sorgulama
Sipariş Tarihçesini sorgulama
Geçmiş İşlemleri sorgulama
InterPOS Deniz bank NonSecure
3DSecure
3DPay
3DHost
İptal
İade
Durum sorgulama
Kuveyt POS TDV2.0.0 Kuveyt Türk NonSecure
3DSecure
İptal
İade
Durum sorgulama
(SOAP API)
VakifKatilimPos
(test edilmesi gerekiyor)
Vakıf Katılım NonSecure
3DSecure
3DHost
İptal
İade
Durum sorgulama
Sipariş Tarihçesini sorgulama
Geçmiş İşlemleri sorgulama

Ana başlıklar

Ozellikler

  • Non Secure E-Commerce modeliyle ödeme (PosInterface::MODEL_NON_SECURE)
  • 3D Secure modeliyle ödeme (PosInterface::MODEL_3D_SECURE)
  • 3D Pay modeliyle ödeme (PosInterface::MODEL_3D_PAY)
  • 3D Host modeliyle ödeme (PosInterface::MODEL_3D_HOST)
  • Sipariş/Ödeme durum sorgulama (PosInterface::TX_TYPE_STATUS)
  • Sipariş Tarihçesini sorgulama sorgulama (PosInterface::TX_TYPE_ORDER_HISTORY)
  • Geçmiş işlemleri sorgulama (PosInterface::TX_TYPE_HISTORY)
  • Sipariş/Para iadesi yapma (PosInterface::TX_TYPE_REFUND)
  • Sipariş iptal etme (PosInterface::TX_TYPE_CANCEL)
  • API istek verilerinin gateway API'na gönderilmeden önce değiştirebilme
  • Farklı Para birimler ile ödeme desteği
  • Tekrarlanan (Recurring) ödeme talimatları
  • PSR-3 logger desteği
  • PSR-18 HTTP Client desteği

Farkli Gateway'ler Tek islem akisi

  • Bir (3DSecure, 3DPay, 3DHost, NonSecure) ödeme modelden diğerine geçiş çok az değişiklik gerektirir.
  • Aynı tip işlem için farklı POS Gateway'lerden dönen değerler aynı formata normalize edilmiş durumda. Yani kod güncellemenize gerek yok.
  • Aynı tip işlem için farklı Gateway'lere gönderilecek değerler de genel olarak aynı formatta olacak şekilde normalize edilmiştir.

Latest updates

Son yapılan değişiklikler için CHANGELOG.

Minimum Gereksinimler

  • PHP >= 7.4
  • ext-dom
  • ext-json
  • ext-openssl
  • ext-libxml
  • ext-zlib
  • ext-SimpleXML
  • ext-soap (sadece KuveytPos için)
  • PSR-18: HTTP Client
  • PSR-14: Event Dispatcher

Kurulum

$ composer require symfony/event-dispatcher mews/pos

Kütüphane belli bir HTTP Client'ile zorunlu bağımlılığı yoktur. PSR-18 HTTP Client standarta uyan herhangi bir kütüphane kullanılabilinir. Projenizde zaten kurulu PSR-18 uygulaması varsa otomatik onu kullanır.

Veya hızlı başlangıç için:

$ composer require php-http/curl-client nyholm/psr7 symfony/event-dispatcher mews/pos

Diğer PSR-18 uygulamasını sağlayan kütüphaneler: https://packagist.org/providers/psr/http-client-implementation

Farkli Banka Sanal Poslarini Eklemek

Kendi projenizin dizinindeyken

$ cp ./vendor/mews/pos/config/pos_production.php ./pos_ayarlar.php

ya da;

Projenizde bir ayar dosyası oluşturup (pos_ayarlar.php gibi), paket içerisinde ./config/pos_production.php dosyasının içeriğini buraya kopyalayın.

<?php

return [
    // Banka sanal pos tanımlamaları
    'banks'         => [
        'akbank'    => [
            'name'  => 'AKBANK T.A.S.',
            'class' => Mews\Pos\Gateways\EstV3Pos::class,
            'gateway_endpoints'  => [
                'payment_api'     => 'https://www.sanalakpos.com/fim/api',
                'gateway_3d'      => 'https://www.sanalakpos.com/fim/est3Dgate',
                'gateway_3d_host' => 'https://sanalpos.sanalakpos.com.tr/fim/est3Dgate',
            ],
        ],

        // Yeni eklenen banka
        'isbank'    => [
            'name'  => 'İŞ BANKASI .A.S.',
            'class' => \Mews\Pos\Gateways\EstV3Pos::class, // Altyapı sınıfı
            'gateway_endpoints'  => [
                'payment_api'     => 'https://sanalpos.isbank.com.tr/fim/api',
                'gateway_3d'      => 'https://sanalpos.isbank.com.tr/fim/est3Dgate',
            ],
        ],
    ]
];

Bundan sonra nesnemizi, yeni ayarlarımıza göre oluşturup kullanmamız gerekir. Örnek:

//yeni ayar yolu ya da degeri
$yeniAyarlar = require __DIR__ . '/pos_ayarlar.php';
$pos = \Mews\Pos\Factory\PosFactory::createPosGateway($account, $yeniAyarlar, $eventDispatcher);

Ornek Kodlar

/examples ve /docs dizini içerisinde.

3D ödeme örnek kodlar genel olarak kart bilgilerini website sunucusuna POST eder (index.php => form.php), ondan sonra da işlenip gateway'e yönlendiriliyor. Bu şekilde farklı bankalar arası implementation degişmemesi sağlanmakta (ortak kredi kart formu ve aynı işlem akışı). Genel olarak kart bilgilerini, website sunucusuna POST yapmadan, direk gateway'e yönlendirecek şekilde kullanılabilinir (genelde, banka örnek kodları bu şekilde implement edilmiş). Fakat,

  • birden fazla bank seçenegi olunca veya müşteri banka degiştirmek istediginde kart bilgi formunu ona göre güncellemeniz gerekecek.
  • üstelik YKB POSNet ve VakıfBank POS kart bilgilerini website sunucusu tarafından POST edilmesini gerektiriyor.

Popup Windowda veya Iframe icinde odeme yapma

Müşteriyi banka sayfasına redirect etmeden iframe üzerinden veya popup window üzerinden ödeme akışı /examples/ içinde 3D ödeme ile örnek PHP ve JS kodlar yer almaktadır.

Ayrıca Modal Box ile iframe kullarak ödeme örneği /docs'ta bulabilirsiniz.

Dikkat edilmesi gerekenler

  • Popup window taraycı tarafından engellenebilir bu yüzden onun yerine modal box içinde iframe kullanılması tavsiye edilir.

Troubleshoots

Session sıfırlanması

Cookie session kullanığınızda, kullanıcı gatewayden geri websitenize yönlendirilidiğinde session sıfırlanabilir. Response'da samesite değeri set etmeniz gerekiyor. çözüm.

Shared hosting'lerde IP tanımsız hatası

  • Shared hosting'lerde Cpanel'de gördüğünüz IP'den farklı olarak fiziksel sunucun bir tane daha IP'si olur. O IP adres Cpanel'de gözükmez, hosting firmanızdan sorup öğrenmeniz gerekmekte. Bu hatayı alırsanız hosting firmanın verdiği IP adrese'de banka gateway'i tarafından izin verilmesini sağlayın.

  • kütüphane ortam degerini de kontrol etmeyi unutmayınız, ortama göre bankanın URL'leri degişir.

    • test ortamı için $pos->setTestMode(true);
    • canlı ortamı için $pos->setTestMode(false); (default olarak false)

    ortam değeri hem bankaya istek gönderirken hem de gelen isteği işlerken doğru deger olması gerekiyor.

Debugging

Kütüphane PSR-3 standarta uygun logger uygulamayı destekler. Örnekler: https://packagist.org/providers/psr/log-implementation .

Monolog logger kullanım örnegi:

composer require monolog/monolog
$handler = new \Monolog\Handler\StreamHandler(__DIR__.'/../var/log/pos.log', \Psr\Log\LogLevel::DEBUG);
$logger = new \Monolog\Logger('pos', [$handler]);
$pos = \Mews\Pos\Factory\PosFactory::createPosGateway(
    $account,
    $config,
    $eventDispatcher,
    null,
    $logger
);

Genel Kultur

NonSecure, 3D Secure, 3DPay ve 3DHost ödeme modeller arasındaki farklar

  • 3DSecure - Bankaya göre farklı isimler verilebilir, örn. 3D Full. Gateway'den (3D şifre girdiginiz sayfadan) döndükten sonra ödemeyi tamamlamak için banka gateway'ne 1 istek daha (provizyon isteği) gönderir. Bu isteği göndermeden ödeme tamamlanmaz.
  • 3DPay - Bankaya göre farklı isimler verilebilir, örn. 3D Half. Gateway'den (3D şifre girdiginiz sayfadan) döndükten sonra ödeme bitmiş sayılır. 3DSecure ödemede yapıldığı gibi ekstra provizyon istek gönderilmez.
  • 3DHost - Kredi kart girişi için kullanıcı bankanın sayfasına yönledirilir, kredi kart bilgileri girdikten sonra bankanın 3D gateway sayfasına yönlendirilir, ordan da websitenize geri yönlendirilir. Yönlendirme sonucunda ödeme tamanlanmış olur.
  • NonSecure - Ödeme işlemi kullanıcı 3D onay işlemi yapmadan gerçekleşir.
  • NonSecure, 3DSecure ve 3DPay - Ödemede kredi kart bilgisi websiteniz tarafından alınır. 3DHost ödemede ise banka websayfasından alınır.

Otorizasyon, Ön Otorizasyon, Ön Provizyon Kapama İşlemler arasındaki farklar

  • Otorizasyon - bildiğimiz ve genel olarak kullandığımız işlem. Tek seferde ödeme işlemi biter. Bu işlem için kullanıcıdan hep kredi kart bilgisini alınır. İşlemin kütüphanedeki karşılığı PosInterface::TX_TYPE_PAY_AUTH
  • Ön Otorizasyon - müşteriden parayı direk çekmek yerine, işlem sonucunda para bloke edilir. Bu işlem için kullanıcıdan hep kredi kart bilgisini alınır. İşlemin kütüphanedeki karşılığı PosInterface::TX_TYPE_PAY_PRE_AUTH
  • Ön Provizyon Kapama - ön provizyon sonucunda bloke edilen miktarın çekimini gerçekleştirir. Ön otorizasyon yapıldıktan sonra, örneğin 1 hafta sonra, Post Otorizasyon isteği gönderilebilinir. Bu işlem için kullanıcıdan kredi kart bilgisi alınmaz. Onun yerine bazı gateway'ler orderId degeri istenir, bazıları ise ön provizyon sonucu dönen banka tarafındaki orderId'yi ister. Satıcı ön otorizasyon isteği iptal etmek isterse de cancel isteği gönderir. Post Otorizasyon İşlemin kütüphanedeki karşılığı PosInterface::TX_TYPE_PAY_POST_AUTH. Bu işlem sadece NonSecure ödeme modeliyle gerçekleşir.
  • TX_TYPE_PAY_AUTH vs TX_TYPE_PAY_PRE_AUTH işlemler genelde bütün ödeme modelleri (NonSecure, 3DSecure, 3DPay ve 3DHost) tarafından desteklenir.

Refund ve Cancel işlemler arasındaki farklar

  • Refund - Tamamlanan ödemeyi iade etmek için kullanılır. Bu işlem bazı gatewaylerde sadece gün kapandıktan sonra yapılabilir. İade işlemi için miktar zorunlu, çünkü ödenen ve iade edilen miktarı aynı olmayabilir. İşlemin kütüphanedeki karşılığı PosInterface::TX_TYPE_REFUND
  • Cancel - Tamamlanan ödemeyi iptal etmek için kullanılır. Ödeme yapıldıktan sonra gün kapanmadan yapılabilir. Gün kapandıktan sonra refund işlemi kullanmak zorundasınız. Genel olarak miktar bilgisi istenmez, ancak bazı Gateway'ler ister. İşlemin kütüphanedeki karşılığı PosInterface::TX_TYPE_CANCEL

Docker ile test ortami

  1. Makinenizde Docker kurulu olması gerekir.
  2. Projenin root klasöründe docker-compose up -d komutu çalıştırınız.
  3.  $ composer require mews/pos

Note: localhost port 80 boş olması gerekiyor. Sorunsuz çalışması durumda kod örneklerine http://localhost/estpos/3d/index.php şekilde erişebilirsiniz. http://localhost/ URL projenin examples klasörünün içine bakar.

Unit testler çalıştırma

Projenin root klasoründe bu satırı çalıştırmanız gerekiyor

$ ./vendor/bin/phpunit

Değerli yorum, öneri ve katkılarınızı

Sorun bulursanız veya eklenmesi gereken POS sistemi varsa lütfen issue oluşturun.

License

MIT

pos's People

Contributors

fikretcin avatar ibayazit avatar ilyasokay avatar mahmut avatar mewebstudio avatar nuryagdym avatar skuzoluk avatar umuttaymaz avatar vedatyilmaz avatar zeydduran avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pos's Issues

Undefined offset: 1

Merhaba, Payment isteğini start ettiğim zaman `$decrypted_data_list = array_map('strval', [

            $decrypted_data_array[0],

            $decrypted_data_array[1],

            $decrypted_data_array[2],

            $decrypted_data_array[3],

            $decrypted_data_array[4],

            $this->getHostName($decrypted_data_array[7]),

        ]);`

kısmından hata alıyorum? Bir çözümü var mıdır

enpara.com entegrasyonu

Selamlar,

ben tam emin olmadığım için buradan soru açmak zorunda kaldım. Enpara.com pos finansbank için yaptığın "Finansbank PayFor" kullanıyor acaba bilgin var mıdır?

Yapikredi Posnet mdStatus 9 : "None 3D - Secure Transaction" hatasi

Test ortamda bu sorunu aldim.
saglanan test kartlar da 3D odeme ozelligi olmadigi icin, aslinda basarili olan islemi de 3D asamadan gecmedigi icin bu hatayi verir.

Kisacasi test ortamda bu sorunu aliyorsaniz bir sorun yok. production ortamda bu sorun cikmamasi gerekiyor.

EST 3d_pay_hosting modeli

Kütüphanede 3d_pay_hosting modeli olmadığı için storekey hatalı uyarısı dönüyor.
3d_pay ile aynı parametreleri alıyor ve hash hesaplaması aynı. EstPos Gateway'de ufak bir değişiklik ile sorunsuz çalışıyor.

Eski Kod Betiği :
if ($this->account->getModel() === '3d_pay') { $inputs = array_merge($inputs, [ 'islemtipi' => $this->type, 'taksit' => $this->order->installment, ]); }

Yeni Kod Betiği:
if ($this->account->getModel() === '3d_pay' || $this->account->getModel() === '3d_pay_hosting')) { $inputs = array_merge($inputs, [ 'islemtipi' => $this->type, 'taksit' => $this->order->installment, ]); }

Eski Kod Betiği :
elseif ($this->account->getModel() === '3d_pay') { $hashStr = $this->account->getClientId() . $this->order->id . $this->order->amount . $this->order->success_url . $this->order->fail_url . $this->type . $this->order->installment . $this->order->rand . $this->account->getStoreKey(); }

Yeni Kod Betiği :
elseif ($this->account->getModel() === '3d_pay' || $this->account->getModel() === '3d_pay_hosting') { $hashStr = $this->account->getClientId() . $this->order->id . $this->order->amount . $this->order->success_url . $this->order->fail_url . $this->type . $this->order->installment . $this->order->rand . $this->account->getStoreKey(); }

YKB 3D Ödeme geçersiz transaction type gönderiyor

Merhaba,
YKB ile ödeme yapmaya çalıştığım zaman transactionType hatası veriyor. create3DEnrollmentCheckRequestData fonksiyonunda tranType ='pay' olarak dönmekte. Onu Sale olarak çevirdiğim zaman sorun olmadan ödemeyi tamamlıyor.

bu kısmı
'tranType' => $txType, kısmını;

Şöyle değiştirerek
'tranType'=> $this->txTypeMappings[$txType]

çalıştırabiliyorum.

acaba atladığınız bir şey olabilir mi? ya da ben mi hata yapıyorum?

kodun nihai hali;

`
public function create3DEnrollmentCheckRequestData(AbstractPosAccount $account, $order, string $txType, AbstractCreditCard $card): array
{
if (null === $card->getHolderName() && isset($order->name)) {
$card->setHolderName($order->name);
}
return [
'mid' => $account->getClientId(),
'tid' => $account->getTerminalId(),
'oosRequestData' => [
'posnetid' => $account->getPosNetId(),
'ccno' => $card->getNumber(),

            'expDate'        => $card->getExpirationDate(self::CREDIT_CARD_EXP_DATE_FORMAT),
            'cvc'            => $card->getCvv(),
            'amount'         => self::amountFormat($order->amount),
            'currencyCode'   => $this->mapCurrency($order->currency),
            'installment'    => $this->mapInstallment($order->installment),
            'XID'            => self::formatOrderId($order->id),
            'cardHolderName' => $card->getHolderName(),
            'tranType'       => $this->txTypeMappings[$txType],
        ],
    ];
}

`

Issue templates

Merhaba @mewebstudio Muharrem abi,
Issue'lar icin template'ler hazirladim, onlari ekler misin.
ekleme icin adimlar: https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository

Issue template:

## Hata bildirimi

| Information | Description |
|--------------|---------|
| Kütüphane versiyonu |  |
| PHP versiyonu |  |
| Gateway ismi|  |
| Banka ismi|  |

### Hatanın özeti

_(yaşadığınız sorunun detayları)_

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

_(Sorunu düzeltmemize yardımcı olmak için lütfen aşağıdaki metni doldurun)_

### Beklenen Sonuç

_(Beklenen (doğru) davranış neydi?)_

### Gerçek sonuç

_(Mevcut (hatalı) davranış nedir?)_

## Göndermeden önce kontroller

* [ ] Bu konuda zaten bir hata bildirimi olmadığından emin olun. Bakınız: [hata bildirimleri](https://github.com/mewebstudio/pos/issues)
* [ ] Hatayı yeniden oluşturmak için gereken detayları ekledim.

Soru template'i

| Information | Description |
|--------------|---------|
| Kütüphane versiyonu |  |
| Gateway ismi|  |
| Banka ismi|  |

## Sorunuz

_(doldurunuz)_

## Göndermeden önce kontroller

* [ ] Bu konuda zaten bir hata bildirimi olmadığından emin olun. Bakınız: [hata bildirimleri](https://github.com/mewebstudio/pos/issues)
* [ ] Dökümantasyonu okudum, araştırdım ve konuyla ilgili bilgileri bulamadım. [dökümantasyon](https://github.com/mewebstudio/pos/blob/master/README.md)
* [ ] İlgili örnek kodları kontrol ettim ve konuyla ilgili bilgileri bulamadım. [örnek kodlar](https://github.com/mewebstudio/pos/tree/master/examples)

HATA template'i su sekilde gozukmesi gerekiyor:

Hata bildirimi

Information Description
Kütüphane versiyonu
PHP versiyonu
Gateway ismi
Banka ismi

Hatanın özeti

(yaşadığınız sorunun detayları)

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

(Sorunu düzeltmemize yardımcı olmak için lütfen aşağıdaki metni doldurun)

Beklenen Sonuç

(Beklenen (doğru) davranış neydi?)

Gerçek sonuç

(Mevcut (hatalı) davranış nedir?)

Göndermeden önce kontroller

  • Bu konuda zaten bir hata bildirimi olmadığından emin olun. Bakınız: hata bildirimleri
  • Hatayı yeniden oluşturmak için gereken detayları ekledim.

SORULAR template'i su sekilde gozukmesi gerekiyor:

Information Description
Kütüphane versiyonu
Gateway ismi
Banka ismi

Sorunuz

(doldurunuz)

Göndermeden önce kontroller

  • Bu konuda zaten bir hata bildirimi olmadığından emin olun. Bakınız: hata bildirimleri
  • Dökümantasyonu okudum, araştırdım ve konuyla ilgili bilgileri bulamadım. dökümantasyon
  • İlgili örnek kodları kontrol ettim ve konuyla ilgili bilgileri bulamadım. örnek kodlar

Garanti POS TROY - undefined index secure3dhash problemi

Merhabalar.

Bir TROY kart ile şöyle bir hata almışız.

MD Status 1 gelmiş fakat secure3dhash alanı yok. Kodu okuduğumda secure3dhash alanı her zaman gelecekmiş gibi davranılmış. Aslında hash alanında gelen data ile Hash kontrolü yapılabilirmiş.

image

image

https://github.com/mewebstudio/pos/blob/master/src/Gateways/GarantiPos.php#L342
Buradaki

'hash' => $raw3DAuthResponseData['secure3dhash'],

alanını

'hash' => $raw3DAuthResponseData['secure3dhash'] ?? $raw3DAuthResponseData['hash'],

bu şekilde kullanmak doğru olur mu sizce? Teşekkürler. Emeğinize sağlık.

EstPos - 3d ödeme tamamlama sorunu

Merhaba,

İş/ak bu bankalardan biriyle 3d ödeme yapmaya çalışıyorum. 3d ekranına yönleniyor şifre vs giriyorum.
Daha sonra response dönüyor fakat "declined" hatası alıyorum. bankalarla iletişime geçtiğim zaman şu bilgiyi paylaştılar.

Merhaba,
İlgili işlemi incelediğimde işlem 3D doğrulama aşamasına kadar gelip 3D doğrulamasında başarılı olup akışa devam etmeden yarıda kesilmiştir.
Kullandığınız standart 3D modeli iki aşamalı bir modeldir ve işlem ilk olarak 3D doğrulama aşamasına post edilip tamamlandıktan sonra API aşamasına post edilerek akışı tamamlamış olması gerekir fakat ilgili işlem ikinci aşamaya hiç gitmemiş; dolayısı ile bizim tarafımıza ulaşmamıştır.

3d döndükten sonraki kod parçacığı

        $temp = TempPayment::whereVirtualOrderId($virtualOrderId)->first();
        $account = new PaymentAccount();

        $pos = $account->getBankFactory($temp->bank, $temp->model);
        $pos->prepare($temp->order, AbstractGateway::TX_PAY);
        $pos->payment();

        $response = $pos->getResponse();
        return ($response);

dönen response değeri;


{
  "transaction_security": "MPI fallback",
  "md_status": "1",
  "hash": "sp8M+ECXVSaPb1fTqiLQsA80BjA=",
  "rand": "/UMa9kZAhn61o2moMRrt",
  "hash_params": "clientid:oid:mdStatus:cavv:eci:md:rnd:",
  "hash_params_val": "7006638672082022052098BD1ABIBAIMAAMUoAAAAEAAAAAAAAAA=02418342:9487EB80334D0AEED1F1601B7671A42D0E9BD53115AD1B3697937919E532389F:3679:##700663867208/UMa9kZAhn61o2moMRrt",
  "masked_number": "******",
  "month": "07",
  "year": "26",
  "amount": "0.10",
  "currency": "TRY",
  "eci": null,
  "tx_status": null,
  "cavv": null,
  "xid": "2022052098BD",
  "md_error_message": "Success",
  "name": "--------",
  "3d_all": {
    "oid": "2022052098BD",
    "cavv": "ABIBAIMAAMUoAAAAEAAAAAAAAAA=",
    "encoding": "UTF-8",
    "Ecom_Payment_Card_ExpDate_Month": "**",
    "currency": "949",
    "callbackCall": "true",
    "amount": "0.10",
    "eci": "02",
    "maskedCreditCard": "*****",
    "firmaadi": "****,
    "islemtipi": "Auth",
    "Ecom_Payment_Card_ExpDate_Year": "****",
    "ShipToStateProv": null,
    "storetype": "3d",
    "mdStatus": "1",
    "failUrl": "****/pos-callback/2022052098BD",
    "clientIp": "****",
    "mdErrorMsg": "Success",
    "clientid": "700663867208",
    "MaskedPan": "********6151",
    "Email": "****",
    "taksit": null,
    "BillToStateProv": null,
    "okUrl": "https://****/pos-callback/2022052098BD",
    "md": "***:9487EB80334D0AEED1F1601B7671A42D0E9BD53115AD1B3697937919E532389F:3679:##700663867208",
    "xid": "07HlbXHrL1+L+TDCSfaYVpNODqA=",
    "lang": "tr",
    "HASH": "sp8M+ECXVSaPb1fTqiLQsA80BjA=",
    "rnd": "/UMa9kZAhn61o2moMRrt",
    "HASHPARAMS": "clientid:oid:mdStatus:cavv:eci:md:rnd:",
    "HASHPARAMSVAL": "7006638672082022052098BD1ABIBAIMAAMUoAAAAEAAAAAAAAAA=02418342:9487EB80334D0AEED1F1601B7671A42D0E9BD53115AD1B3697937919E532389F:3679:##700663867208/UMa9kZAhn61o2moMRrt"
  },
  "id": null,
  "trans_id": null,
  "transaction_type": "pay",
  "transaction": "Auth",
  "auth_code": null,
  "host_ref_num": null,
  "proc_return_code": null,
  "code": null,
  "status": "declined",
  "status_detail": null,
  "error_code": null,
  "error_message": null,
  "response": null,
  "all": null,
  "order_id": "2022052098BD"
}

guzzlehttp/guzzle yeni versiyon zorunluluğu

Dostum tekrar selam,

şöyle bi uyarı alıyorum bunu güncelleme şansın var mı sorun yaratır mı?

mews/pos 0.7.4 requires guzzlehttp/guzzle ^6.3.3 -> found guzzlehttp/guzzle[6.3.3, ..., 6.5.x-dev] but it conflicts with your root composer.json require (^7.0.1).

YKB - ödeme sonrası doğrulama hatası

Merhaba,
YKB 3D ödeme yapılırken sms doğrulama da girdikten sonra callbackte decrypt false dönüyor.
o false dönünce Attempt to read property "approved" on nullhatası veriyor. - Gateways/PosNet.php. 383

kodu debug ettiğim zaman decrypt yaparken false döndüğünü gördüm.

return openssl_decrypt($encryptedData, $this->algo, $this->detKey($key), OPENSSL_RAW_DATA, $iv);

bu konu hakkında ne yapabilirim?

docker hatası

Emek vermişsiniz güzel olmuş tebrikler bazı hatalar var. Belirterek size destek olmak istedim.

docker-compose up komutu yazdığımızda hata mesajları var.

yaptığımızda verdiği hata:
pos_web | AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.18.0.3. Set the 'ServerName' directive globally to suppress this message
pos_web | AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.18.0.3. Set the 'ServerName' directive globally to suppress this message
pos_web | PHP Warning: Module 'redis' already loaded in Unknown on line 0

Symfony paketleri versiyon problemi

Bu paketi Laravel 5.6 üzerinde kullanmak istediğimizde Symfony paketlerinin bağımlılığından dolayı yüklenemiyor.

laravel-pos paketi buna bağımlı ve bu paket de symfony/http-foundation paketinin 4.1 versiyonunu kullanıyor. Eğer symfony/http-foundation paketinin 4.1 versiyonunda spesifik bir kullanım yoksa daha fazla kullanım alanı için bağımlılığı eski versiyonlara güncellemeliyiz.

Laravel 5.6 projesinde yüklemeye çalıştığımda aldığım hata şu:

`
Problem 1
- mews/laravel-pos 0.1.8 requires mews/pos ~0.1.8 -> satisfiable by mews/pos[0.1.8].
- Installation request for mews/laravel-pos ^0.1.8 -> satisfiable by mews/laravel-pos[0.1.8].
- Conclusion: remove symfony/http-foundation v4.0.8
- Conclusion: don't install symfony/http-foundation v4.0.8
- mews/pos 0.1.8 requires symfony/http-foundation ^4.1 -> satisfiable by symfony/http-foundation[4.1.x-dev, 4.2.x-dev, 4.3.x-dev, 4.4.x-dev, v4.1.0, v4.1.0-BETA1, v4.1.0-BETA2, v4.1.0-BETA3, v4.1.1, v4.1.10, v4.1.11, v4.1.12, v4.1.2, v4.1.3, v4.1.4, v4.1.5, v4.1.6, v4.1.7, v4.1.8, v4.1.9, v4.2.0, v4.2.0-BETA1, v4.2.0-BETA2, v4.2.0-RC1, v4.2.1, v4.2.10, v4.2.2, v4.2.3, v4.2.4, v4.2.5, v4.2.6, v4.2.7, v4.2.8, v4.2.9, v4.3.0, v4.3.0-BETA1, v4.3.0-BETA2, v4.3.0-RC1, v4.3.1, v4.3.2].
- Can only install one of: symfony/http-foundation[4.1.x-dev, v4.0.8].
- Can only install one of: symfony/http-foundation[4.2.x-dev, v4.0.8].
- Can only install one of: symfony/http-foundation[4.3.x-dev, v4.0.8].
- Can only install one of: symfony/http-foundation[4.4.x-dev, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.1.0, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.1.0-BETA1, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.1.0-BETA2, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.1.0-BETA3, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.1.1, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.1.10, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.1.11, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.1.12, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.1.2, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.1.3, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.1.4, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.1.5, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.1.6, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.1.7, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.1.8, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.1.9, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.2.0, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.2.0-BETA1, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.2.0-BETA2, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.2.0-RC1, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.2.1, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.2.10, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.2.2, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.2.3, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.2.4, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.2.5, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.2.6, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.2.7, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.2.8, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.2.9, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.3.0, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.3.0-BETA1, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.3.0-BETA2, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.3.0-RC1, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.3.1, v4.0.8].
- Can only install one of: symfony/http-foundation[v4.3.2, v4.0.8].
- Installation request for symfony/http-foundation (locked at v4.0.8) -> satisfiable by symfony/http-foundation[v4.0.8].

`

ykb ve estpos hata veriyor

merhaba hocam. uzun süredir kodlarınızı kullanıyorum. ellerinize sağlık müthiş bir çalışma.
bir problemim var
geçenlerde sistemimizi amazona taşıdık. o gün itibarıyla yapıkredi ve estpos modülleri hata vermeye başladı
yapıkredide
vendor/mews/pos/src/PosNet.php:324
Trying to get property 'approved' of non-object
hatası verirken estpos'ta da tx-data ile ilgili bir hata veriyor.
bu hataları kullanıcı telefona gelen şifreyi girdikten sonra veriyor.
servere mcrypt kurdum fakat sorun düzelmedi.
konuyla ilgili yardımcı olabilir misiniz?
Not: Finansbank sorunsuz çalışıyor.

Ödeme Sonucu Dönen Array Key Sorunu

Kuveyttür sanal pos -- codeigniter 4

Kullandığım Ödeme kodu:

$account = \Mews\Pos\Factory\AccountFactory::createKuveytPosAccount(
            'kuveytpos',
            '111',
            'eeee',
            '3333',
            '4444'
        );
        try {
            $pos = \Mews\Pos\Factory\PosFactory::createPosGateway($account);
            $pos->setTestMode(false);
        } catch (\Mews\Pos\Exceptions\BankNotFoundException | \Mews\Pos\Exceptions\BankClassNullException $e) {
            dd($e);
        }

        $order = [
            'id' => 'MP-15',
            'amount' => 0.1,
            'currency' => 'TRY', //TRY|USD|EUR, optional. default: TRY
            'installment' => 0, //0 ya da 1'den büyük değer, optional. default: 0
            'success_url' => 'https://www.modamping.com/testodeme',
            'fail_url' => 'https://******.com/testodeme',
            'ip' => '85.107.127.45', //EstPos, Garanti, KuveytPos, VakifBank
            'email' => '[email protected]', // EstPos, Garanti, KuveytPos, VakifBank
            'name' => 'mehmet paçal', // EstPos, Garanti
            'user_id' => '1', // EstPos
            'rand' => md5(uniqid(time())), // EstPos, Garanti, PayFor, InterPos, VakifBank. Rastegele değer.
            'lang' => AbstractGateway::LANG_TR, //LANG_TR|LANG_EN. Kullanıcının yönlendirileceği banka gateway sayfasının ve gateway'den dönen mesajların dili.
        ];

        session()->set('order', $order);

        $card = \Mews\Pos\Factory\CreditCardFactory::create(
            $pos,
            '111111111',
            '11',
            '01',
            '2323',
            'Mehmet Paçal',
            AbstractCreditCard::CARD_TYPE_MASTERCARD
        );

        $pos->prepare($order, \Mews\Pos\Gateways\AbstractGateway::TX_PAY, $card);

        try {
            $formData = $pos->get3DFormData();
        } catch (\Throwable $e) {
            dd($e);
        }

        ?>

        <form method="post" action="<?= $formData['gateway']; ?>" class="redirect-form" role="form">
            <?php foreach ($formData['inputs'] as $key => $value) : ?>
                <input type="hidden" name="<?= $key; ?>" value="<?= $value; ?>">
            <?php endforeach; ?>
            <div class="text-center">Redirecting...</div>
            <hr>
            <div class="form-group text-center">
                <button type="submit" class="btn btn-lg btn-block btn-success">Submit</button>
            </div>
        </form>

        <?php

Sonuç sayfası :

$account = \Mews\Pos\Factory\AccountFactory::createKuveytPosAccount(
            'kuveytpos',
            '111',
            'eeee',
            '3333',
            '4444'
        );

try {
    $pos = \Mews\Pos\Factory\PosFactory::createPosGateway($account);
    $pos->setTestMode(true);
} catch (\Mews\Pos\Exceptions\BankNotFoundException | \Mews\Pos\Exceptions\BankClassNullException $e) {
    dd($e);
}

echo "<pre>";

$order = [
    'id' => 'MP-12',
    'amount' => 0.1,
    'currency' => 'TRY', //TRY|USD|EUR, optional. default: TRY
    'installment' => 0, //0 ya da 1'den büyük değer, optional. default: 0
    'success_url' => '****.com/testodeme',
    'fail_url' => '****.com/testodeme',
    'ip' => '*****', //EstPos, Garanti, KuveytPos, VakifBank
    'email' => '[email protected]', // EstPos, Garanti, KuveytPos, VakifBank
    'name' => 'John Doe', // EstPos, Garanti
    'user_id' => '1', // EstPos
    'rand' => '7893febf7a15ab***461363f6528', // EstPos, Garanti, PayFor, InterPos, VakifBank. Rastegele değer.
    'lang' => 'tr' //LANG_TR|LANG_EN. Kullanıcının yönlendirileceği banka gateway sayfasının ve gateway'den dönen mesajların dili.
];

//$order = session()->get('order');

$pos->prepare($order, \Mews\Pos\Gateways\AbstractGateway::TX_PAY);

        $card = \Mews\Pos\Factory\CreditCardFactory::create(
            $pos,
            '111111111',
            '11',
            '01',
            '2323',
            'Mehmet Paçal',
            AbstractCreditCard::CARD_TYPE_MASTERCARD
        );

$pos->payment($card);

$pos->isSuccess();

print_r($pos->getResponse());

Dönen hata ekranı :

https://prnt.sc/_bfQzr66d2jA

3d secure ile kullanımı

Merhabalar, Öncelikle elinize sağlık çok güzel bir çalışma olmuş.

3d secure kullanımı için bir dökümantasyon mevcut mu?

Teşekkürler

Garanti pos isSuccess hatalı sonuç veriyor

Merhaba,

AbstractGateway deki isSuccess her durumda true oluyor.

GarantiPos.php dosyasına bu fonksiyonu ekleyince doğru sonuç veriyor
/**
* Is success
*
* @return bool
*/
public function isSuccess(): bool
{
return isset($this->response->response) && 'Approved' === $this->response->response;
}

PHP versiyon düzenlemesi

Merhabalar,

PHP 8 de hata mesajı veriyor.

[InvalidArgumentException]
Package mews/pos has a PHP requirement incompatible with your PHP version, PHP extensions and Composer version:
- mews/pos 0.4.11 requires php ^7.1.3 which does not match your installed version 8.0.11.

İyi Çalışmalar

Puan sorgulama ?

sanırım şuan yok , kredi kartı puan sorgulama ve kullanmayı eklemeyi düşünüyormusun?

garanti pos iade işlem tutar

Selamlar,

Garanti pos için ödeme işleminden sonra iade işleminde aşağıdaki gibi hata alıyor baktım benim gönderdiğim amount değerini yok sayıp 100 gösteriyor devamlı bunu nasıl çözebiliriz sence?
Screen Shot 2022-10-19 at 11 13 17

Screen Shot 2022-10-19 at 11 13 36

Screen Shot 2022-10-19 at 11 15 11

tekrarlanan odeme durum sorgulama

$account = AccountFactory::createEstPosAccount('teb', '1111111', 'apiuser', 'apipass',  AbstractGateway::TX_STATUS, 'storekey123456', AbstractGateway::LANG_TR);
$order = ['id' => {order_id}, 'RECURRINGID' => {recurring_id}];

   $pos = \Mews\Pos\Factory\PosFactory::createPosGateway($account);
                    $pos->prepare($order, \Mews\Pos\Gateways\AbstractGateway::TX_STATUS);
                    $pos->status();
                    $pos = $pos->getResponse();
<Extra>
<ORDERSTATUS>QUERY</ORDERSTATUS>
<RECURRINGID>15210MWwD180004</RECURRINGID>
</Extra>

Yukarıdaki gibi extra bilgiye RECURRINGID yi sorgulama biçimi nasıl? Kodlara baktığımda extra nın içinde sadece ORDERSTATUS mevcut. Ekli mi değil yoksa yanlış yere mi bakıyorum?
recurring_id

AccountFactory::createPosNetAccount

Merhabalar,
Öncelikle PHP topluluğuna yapmış olduğunuz bu güzel katkıdan dolayı teşekkür ederim.
Sonrasında şöyle bir sorum olacak.
$account = AccountFactory::createPosNetAccount('yapikredi', 'XXXXXX', 'XXXXXX', 'XXXXXX', 'XXXXXX', 'XXXXXX', '3d', '10,10,10,10,10,10,10,10');
Adımındaki tanımlamada tam olarak hangi bilgileri girmemiz gerekiyor. CLIENT ID vs gibi tanımlamalar yapılmış genel configde ancak bu ykb posunun verdiği merchantid terminalid gibi alanlarla eşleşmiyor gibi görünüyor.
Teşekkürler.

12 saatte puan toplama

Arkadaşlar şuan için sadece puan toplamamı mevcut veya başka bir kazanç sistemi varmı ?
#githup #ibax

Vakifbank odeme calismiyor

  1. gonderilen XML istek hatali, XML veri form_params olarak prmstr key ile gonderilmesi gerekiyor. "POX Request Adresine istek yapıyorsunuz. Mesaj Boş Geldi. İstek Xml Mesajını prmstr parametresi ile iletiniz." hatasi
  2. gateway'den donen response durumu dogru sekil degerlendilirmiyor.
  3. donen response verilerine erisirken undefined index hatasi.
  4. odeme iptal isleminde undefined index hatasi.
  5. kredi kart expiration date Expiry parametresi icin yyyymm format olmasi gerekiyor. "_Invalid Expire Dat_e" hatasi
  6. provizyon sorgusunda eksik bilgiler gonderildiginden "Mpi İşlemindeki veriler ile uyumsuz" hatasi.

createRegularPaymentXML

merhabalar,

Bankaya ödeme sonlandırması için gönderdiğimiz XML e ekstradan parametre eklemek isteriz. Kullandığımız banka TEB. createRegularPaymentXML midir fonksiyon?

Redis Hatası


Warning: Redis::connect(): php_network_getaddresses: getaddrinfo failed: Name or service not known in odeme2/examples/_main_config.php on line 10

Fatal error: Uncaught RedisException: php_network_getaddresses: getaddrinfo failed: Name or service not known in odeme2/examples/_main_config.php:10 Stack trace: #0 odeme2/examples/_main_config.php(10): Redis->connect('pos_redis', 6379) odeme2/examples/_config.php(9): require('/home/softinyo/...') #2 
odeme2/examples/index.php(5): require('/home/softinyo/...') #3 {main} thrown in 
demo/odeme2/examples/_main_config.php on line 10

Garanti Regular Ödeme merchantId problemi.

Merhaba,

Regular ödemede src/Gateways/GarantiPos.php dosyasında yer alan 262.satırdaki merchantId hatalı gözüküyor

MerchantID' => $this->account->getTerminalId(),

şu şekilde olması gerekmiyor mu?

'MerchantID' => $this->account->getClientId(),

ykb 3d ödeme hatası

3d şifre onayından sonra

vendor/mews/pos/src/PosNet.php:324
Trying to get property 'approved' of non-object

hatası alıyor.

/akbank/3d/form.php path traversal Zafiyeti

Kısa Açıklama : Aslında gitmesi gereken dosya yerine bir payload girilerek farklı bir dosya okutturulması başarılı oldu

Yeniden Oluşturma Adımları :

1- ) Expire Month , Expire Year ve Cvv numaraları girildikten sonra payment butonuna basın
3-) 3d-host içine bir html dosyası açın veya default dosyalarlada yapa bilirsiniz
2-) Burp Suite de Repater bölümüne atın ve payload girin : /akbank/3d/../3d-host/ff.html

image

POC : https://www.youtube.com/watch?v=lhcAjy8Qw88

YKB Redis Connect Hatası

Merhaba,
YKB Posnet üzerinde işlem yapmaya çalışıyorum. Host üzerinden redis aktif ancak aşağıdaki hatayı alıyorum. Sebebi ne olabilir ?

Warning: Redis::connect(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/****/public_html/pos-test/vendor/mews/pos/examples/_main_config.php on line 10

Fatal error: Uncaught RedisException: php_network_getaddresses: getaddrinfo failed: Name or service not known in /home//public_html/pos-test/vendor/mews/pos/examples/_main_config.php:10 Stack trace: #0 /home//public_html/pos-test/vendor/mews/pos/examples/_main_config.php(10): Redis->connect('pos_redis', 6379) #1 /home//public_html/pos-test/vendor/mews/pos/examples/ykb/3d/_config.php(3): require('/home//...') #2 /home//public_html/pos-test/vendor/mews/pos/examples/ykb/3d/index.php(3): require('/home//...') #3 {main} thrown in /home/****/public_html/pos-test/vendor/mews/pos/examples/_main_config.php on line 10

Akbank taksit.

Merhabalar. Akbank entegrasyonu için taksit sistemi yapılabilir mi? Sistemde göremedim sanki. Bu konuda nasıl bir yol izlenmeli?

YKB 3D Encryption Key Bulunamadı Hatası

Fatal error: Uncaught Exception: Encryption Key bulunamadı. in /home/public_html/mke/demo/odeme2/src/Gateways/PosNet.php:240 Stack trace: #0 /home/public_html/mke/demo/odeme2/examples/ykb/3d/form.php(35): Mews\Pos\Gateways\PosNet->get3DFormData() #1 {main} thrown in /home/public_html/mke/demo/odeme2/src/Gateways/PosNet.php on line 240
examples/ykb/3d/form.php sayfasına post attığımda bu şekilde bi hatayla karşılaşıyorum.

$account = AccountFactory::createPosNetAccount('yapikredi', 'XXXXXX', 'XXXXXX', 'XXXXXX', 'XXXXXX', 'XXXXXX', '3d', '10,10,10,10,10,10,10,10');
Encryption keyi tanımlamış olmama rağmen.

Finansbank PayFor Desteği

QNBFinansbank'ın yeni kullanmaya başladığı PayFor altyapısını da sisteme ekleyebilir misiniz? Eski altyapıyı kullanmayacaklarmış artık.

Yapikredi (Posnet) 148 MID,TID,IP HATALI: X.X.X.X hatasi

Ben de bu hata shared hosting kullandigimdan oldu.
kurdugum website'nin IPsi Cpanel'de, ping yapildiginda ayni gosteriyor.
Ama website shared hosting'de oldugundan posnet'e gorunen IP farkli.
Sonuc olarak bu farkli IP'yi de sistemlerine eklettim sorun cozuldu.

Bin kodu sorgulama

Merhaba,

Taksitlendirme işlemi için bin kodlarını kontrol edebileceğimiz bir yapı varmıdır?

Teşekkürler.

Composer sorunu

Composeri çalıştıramıyorum. Installation failed, deleting ./composer.json. hatası almaktayım.

Payten (estpos, netspay) 3D hash algoritma değişmesi

Selamlar, Payten 3d şifreleme de versiyon 3 geçişi yaptı eski şifreleme yöntemlerinde fraud atağı aldıklarını söylediler. versiyon 3e geçiş yapmayan sanal posları kapatacaklarını hatta belirlenen süre içinde geçiş yapmayanları BTK şikayet edip kullandığı diğer sanal posların kapanmasına da yol açılabileceğini ilettiler.
Elde ettiğim dokümanlarını paylaştım
Hashv3_Sample_Codes.zip

ESTPOS ORDERSTATUS

image

merhabalar,
Mevcut Order statusü orderid ye göre nasıl sorgulayabiliyoruz?

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.