- Custom Query desteği eklendi. (issue #250)
- VakifKatilimPos - sipariş detay sorgusunda mapping iyileştirilmesi.
- Bazı gatewaylarin response'larında bankadan gelen verinin yer almaması.
- GarantiPos - geçmiş işlemleri sorgulama desteği. (PR #221).
- VakifKatilimPos - kısmi iade desteği. (issue #218)
- VakifKatilimPos - 3D Secure ödeme çalışmıyor.
- VakifKatilimPos - iptal işlemi çalışmıyor.
- KuveytPos kısmi iade desteği eklendi. (issue #205)
- EstPos/Payten ön otorizasyonu kapatırken daha fazla miktar desteği eklendi. (issue #171)
- Dispatched event'lere gatewayClass, order, paymenModel verileri eklendi.
- PosNet - 3D Secure ödeme başarısız olduğunda
3d_all
boş olması giderildi.
- EstPos TROY kart desteği eklendi. (issue #205)
- Symfony v4 ve v7 desteği eklendi
- Atılan exception'lar daha spesifik olacak şekilde refactor edildi.
- Akbank POS entegrasyonu eklendi. (issue #191)
- Vakif Katılım POS entegrasyonu eklendi. (issue #181)
- KuveytPos - TDV2.0.0 API'a upgrade edildi. (issue #172)
- KuveytPos - MODEL_NON_SECURE ödeme desteği eklendi.
- KuveytPos ödeme durum sorgulama isteğinin response mapping'i iyileştirildi.
- KuveytPos iade işlemi için PartialDrawback yerine artık Drawback kullanılıyor.
- KuveytPos - iptal ve iade çalışmama sorunu çözüldü. (issue #159)
-
ayarlar dosyasında KuvetPos için
payment_api
değerihttps://sanalpos.kuveytturk.com.tr/ServiceGateWay/Home/ThreeDModelProvisionGate
yerine
https://sanalpos.kuveytturk.com.tr/ServiceGateWay/Home
kullanmanız gerekiyor. -
composer.json'a
ext-zlib
extension zorunluluğu eklendi.
/docs
altında örnek kodlar eklendi (issue #148).- API istek verilerinin gateway API'na gönderilmeden önce değiştirebilme.
Bu özellik psr/event-dispatcher-implementation
uygulaması kullanılarak eklendi (issue #178).
Kullanım örnekleri için
/examples
ve/docs
klasörüne bakınız. Eklenen Eventler:\Mews\Pos\Event\Before3DFormHashCalculatedEvent
\Mews\Pos\Event\RequestDataPreparedEvent
- ToslaPos (Ak Öde) entegrasonu (issue #160).
- Para birimleri için yeni constantlar eklendi (örn.
PosInterface::CURRENCY_TRY
) - Yeni
\Mews\Pos\PosInterface::isSupportedTransaction()
methodu eklendi. Bu method ile kütüphanenin ilgili gateway için hangi işlemleri desteklediğini kontrol edebilirsiniz.
-
Kütüphane PHP sürümü v7.4'e yükseltildi.
-
Deprecated olan
VakifBankCPPos
veVakifBankPos
gateway sınıflar kaldırıldı. YerinePayFlexCPV4Pos
vePayFlexV4Pos
kullanabilirsiniz. -
AccountFactory::createVakifBankAccount()
method silindi, yerineAccountFactory::createPayFlexAccount()
kullanabilirsiniz. -
Constant'lar
AbstractGateway
sınıfındanPosInterface
'e taşındı. -
Constant'lar
AbstractCreditCard
sınıfındanCreditCardInterface
'e taşındı. -
Config yapısı değişdi. Test ve Prod ortamları için artık farklı config dosyalar kullanılması gerekiyor. Bu değişim sonucunda
\Mews\Pos\PosInterface::setTestMode();
işleminin çok da önemi kalmadı. Yine de GarantiPos içinsetTestMode()
kullanılmalıdır. Yeni format için/config
klasörüne bakınız. -
Bazı constant isimleri değişdi
TX_PAY
=>TX_TYPE_PAY_AUTH
TX_PRE_PAY
=>TX_TYPE_PAY_PRE_AUTH
TX_POST_PAY
=>TX_TYPE_PAY_POST_AUTH
-
\Mews\Pos\PosInterface::prepare()
methodu kaldırıldı. -
Pos sınıfları oluşturmak için kullanılan
\Mews\Pos\Factory\PosFactory::createPosGateway()
methodu artık konfigürasyon yolunu (örn../config/pos_test.php
) kabul etmiyor. Config verisi array olarak sağlanması gerekiyor. -
\Mews\Pos\Factory\PosFactory::createPosGateway()
'a EventDispatcher parametresi eklendi. -
$order
verisinden bazı zorunlu olmayan alanlar kaldırıldı:- name
- user_id
- rand (artık kütüphane kendisi oluşturuyor)
-
vftcode (PosNet), koiCode (PosNet), imece kart (EstPos), extraData (EstPos), callbackUrl (EstPos) gibi ekstra değerler kütüphaneden kaldırıldı. Yerine yeni eklenen eventlarla API isteklere ekstra değerler ekleyebilirsiniz. Kullanım örneği için örnek kodlara bakınız.
-
Tekrarlanan ödeme yapısı biraz değiştirildi (örnek kodlara bakınız).
-
$response = \Mews\Pos\PosInterface::getResponse();
veri yapısına birkaç ekstra veri eklendi. Artık ödeme iptal, iade, durum sorgulama işlemleri yapabilmek için$response
içindeki veriler yeterli. -
PosInterface
'e ödeme durumu response'unda yer alanorder_status
alanı için yeni constant'lar (örn:PAYMENT_STATUS_ERROR
,PAYMENT_STATUS_PAYMENT_COMPLETED
) tanıtıldı ve bu yeni constant'ları kullanacak şekilde güncellemeler yapıldı. -
Yeni
PosInterface::orderHistory()
methodu eklendi. Siparişe ayıt geçmiş işlemleri sorgulamak için bu yeni methodu kullanmanız gerekiyor. -
Eski
PosInterface::history()
methodu sipariş bilgisi olmadan tarih gibi kriterlerle yapılan işlemler sorgulanabilinir. -
history
(yeniorderHistory
) vestatus
işlemlerin input yapısı normalize edildi. -
history
(yeniorderHistory
) vestatus
işlemlerin response yapısı normalize edildi. -
PayForPos
'un history response'u normalize edildi. -
response
yapısında bazı parametre isimleri değişdi:- trans_id => transaction_id
- trans_time => transaction_time
-
EstPos
veEstV3Pos
response'undanextra
verisi kaldırıldı. -
response
yapısınainstallment_count
vetransaction_time
değerleri eklendi. -
CreditCardFactory::create()
method ismiCreditCardFactory::createForGateway()
olarak değiştirildi.
PayFor
history response'i işlerken oluşan exception düzeltildi.- Fix issue #176 -
EstPos
veEstV3Pos
'dan callbackUrl kaldırıldı. - Fix issue #187 - 3D_SECURE ödemede 3D hash kontrolü artık MD/3D status kontrolünden sonra yapılıyor.
- Asseco - #167 3D form verisine
callbackUrl
eklendi. Order verisinde yer alan fail_url callbackUrl'a atanmakdadır.
- GarantiPos -
sha512
hashleme desteği eklendi.
-
İşbank Asseco - İMECE kart ile ödeme desteği eklendi.
İMECE kart ile ödeme yapabilmek için
$order['is_imece_card'] = true;
ekleyerek sipariş verisi oluşturulması gerekiyor.
- PosNetV1 - JSON API desteği eklendi.
- PayFlexV4 - (eski VakifbankPos) ödeme durum sorgulama desteği eklendi.
- Örnek kodlara (/examples) iframe'de ve pop window'da ödeme örnek kodları eklendi.
- VakifBankPos deprecated. Yerine PayFlexV4Pos oluşturuldu.
- VakifBankCPPos deprecated. Yerine PayFlexCPV4Pos oluşturuldu.
- EstPosCrypt, InterPosCrypt, GarantiPosCrypt
check3DHash()
iyileştirme yapıldı.
- Vakıfbank Common Payment (Ortak Ödeme) gateway desteği eklendi (
VakifBankCPPos
). Sadece 3DPay ve 3DHost ödeme destekleri eklendi. Örnek kodlarexamples/vakifbank-cp/
altında yer almaktadır.
- EstPos -
MODEL_3D_PAY_HOSTING
desteği eklendi @umuttaymaz. get3DFormData()
- artık zorunlu kart veya sipariş bilgileri olmadan çağrıldığında istisna fırlatır.get3DFormData()
- dönen değere HTTP methodu eklendi. Örn:'method' => 'POST'
(ya da GET);
- Vakifbank - bazı undefined index hatalar giderildi.
VakifBankPosRequestDataMapper
-OrderDescription
tanımsız olma durumu giderildi.
- Response formatı object yerine artık array olarak değiştirildi,
$pos->getResponse();
kod artık array döner.- Ödeme response içeriği basitleştirildi, aşağıda listelenen alanlar response'dan kaldırıldı
id
- bu alanın değeri hepauth_code
ile aynıydi, yerineauth_code
'u kullanmaya devam edebilirsiniz,host_ref_num
- bu alanın değeri hepref_ret_num
ile aynıydı,ref_ret_num
'u kullanmaya devam edebilirsiniz,code
response
xid
campaign_url
hash
hash_data
rand
amount
alanı çoğu gateway responselarında normalize edildi ("1.000,1" => 1000.1), ve artık float deger döner.
- Ödeme response içeriği basitleştirildi, aşağıda listelenen alanlar response'dan kaldırıldı
- 3D ödemede hash değeri (
check3DHash()
) dogurlanamazsa artıkMews\Pos\Exceptions\HashMismatchException
exception fırlatır. - Bankadan gelen response'ları normalize eden kodlar yeni oluşturulan sınıflara tasındı.
orn:
Mews\Pos\DataMapper\ResponseDataMapper\EstPosResponseDataMapper
- Hash oluşturma ve dogrulama kodlar yeni olusturulan Crypt sınıflara taşındı. örn:
Mews\Pos\Crypt\EstPosCrypt
Mews\Pos\Gateways\PosNetCrypt
sınıf tamamen kaldırıldı.
Mews\Pos\Gateways\EstV3Pos
eklendi. Bu yeni sınıf 3D ödemelerde Payten'ninhashAlgorithm=v3
'i yaniSHA-512
ile hashlemeyi kullanır. EskiMews\Pos\Gateways\EstPos
uygulamadan yenisine geçis yapmak icin ayarlar dosyasında (/config/pos.php
) bu satırı:buna degiştirmeniz yeterli:'class' => Mews\Pos\Gateways\EstPos::class
Güvenlik nedenlerle'class' => Mews\Pos\Gateways\EstV3Pos::class
EstV3Pos
'u kullanmanız tavsiye edilir.EstPos
ilerki tarihlerde kaldırılacak.- Payten/Asseco - tekrarlanan (recurring) ödemelerin durum sorgulama ve iptal işlem desteği eklendi.
Kullanım örnekleri için
/examples/akbank/
altındaki kodları kontrol ediniz.
- Eski Gateway'e özel (orn. CreditCardEstPos) Kredi Kart sınıfları kaldırıldı.
0.6.0
versiyonda tanıtılanMews\Pos\Entity\Card\CreditCard
kullanılacak.
-
guzzlehttp/guzzle
hard coupling kaldırıldı. Artık herhangi bir PSR-18 HTTP Client kullanılabılınır. Bu degisiklikle beraber PSR-18 ve PSR-7 client kütüphaneleri kendiniz composer require ile yüklemeniz gerekiyor.Örneğin:
composer require php-http/curl-client nyholm/psr7 mews/pos
Eğer projenizde zaten PSR-18 ve PSR-7 kütüphaneleri yüklü ise, otomatik onları bulur ve kullanır. Kodda bir degişiklik gerektirmez.
-
Gateway sınıflara PSR-3 logger desteği eklendi.
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, null, null, $logger);
-
\Mews\Pos\PosInterface::prepare()
method artık sipariş verilerini (currency, id, amount, installment, transaction type) değiştirmez/formatlamaz. Sipariş verilerinin formatlanmasını artık Data Request Mapper'de (örn.PosNetRequestDataMapper
) istek göndermeden önce yapılır.Önce:
protected function preparePaymentOrder(array $order) { $installment = 0; if (isset($order['installment']) && $order['installment'] > 1) { $installment = $order['installment']; } return (object) array_merge($order, [ 'id' => self::formatOrderId($order['id']), 'installment' => self::formatInstallment($installment), 'amount' => self::amountFormat($order['amount']), 'currency' => $this->mapCurrency($order['currency']), ]); }
Şimdi:
protected function preparePaymentOrder(array $order) { return (object) array_merge($order, [ 'id' => $order['id'], 'installment' => $order['installment'] ?? 0, 'amount' => $order['amount'], 'currency' => $order['currency'] ?? 'TRY', ]); }
-
GarantiPos - tekrarlanan (
recurring
) ödeme desteği teklendi. -
EstPos - IP adres artık zorunlu değil.
-
Language degerleri artık Gateway bazlı tanımlanmıyor. Önceden gateway bazlı:
\Mews\Pos\Gateways\EstPos::LANG_TR; \Mews\Pos\Gateways\EstPos::LANG_EN; \Mews\Pos\Gateways\GarantiPos::LANG_TR; \Mews\Pos\Gateways\GarantiPos::LANG_EN; ...
Şimdi sadece:
\Mews\Pos\Gateways\AbstractGateway::LANG_TR; \Mews\Pos\Gateways\AbstractGateway::LANG_EN;
-
Siparişde
currency
veinstallment
artık zorunlu değil. Varsayılan olarakcurrency=TRY
,installment=0
olarak kabul edilir. -
Single Responsibility prensibe uygun olarak bütün gateway sınıflarında istek verilerini hazırlama Request Data Mapper'lere (
EstPosRequestDataMapper
,GarantiPosRequestDataMapper
,InterPosRequestDataMapper
,KuveytPosRequestDataMapper
,PayForPosRequestDataMapper
,PosNetRequestDataMapper
,VakifBankPosRequestDataMapper
) taşındı. Bununla birlikte bazı sabit değerler Gateway sınıflardan Request Data Mapper sınıflara taşındı.
- Kredi kart class'ları bütün gateway'ler için tek
Mews\Pos\Entity\Card\CreditCard
class'ı olacak şekilde güncellendi. Gateway için ayrı ayrı olan (örn.CreditCardEstPos
) CreditCard class'ları bir sonraki major release'de kaldırılacak. - Kodunuzu yeni card class'ı kullanacak şekilde güncelleyiniz:
daha fazla örnek için
/** @var Mews\Pos\Entity\Card\CreditCard $card */ $card = \Mews\Pos\Factory\CreditCardFactory::create( $pos, //pos gateway objesi '4444555566667777', '25', '12', '123', 'john', CreditCardInterface::CARD_TYPE_VISA, //bankaya göre zorunlu );
examples
klasöre bakınız.