paranoiaproject / paranoia Goto Github PK
View Code? Open in Web Editor NEWParanoia is generic payment client for populer virtual pos api(s) of Turkey.
License: MIT License
Paranoia is generic payment client for populer virtual pos api(s) of Turkey.
License: MIT License
Projede TRL olarak kullanılan TL, TRY ile değiştirilmeli.
http://tr.wikipedia.org/wiki/T%C3%BCrk_liras%C4%B1
Mevcut numara formatlama algoritması garanti ve türevi bankalarda 1 TL altı alışverişlerde sorun yaratıyor.
= str(numeric_value * 100).split(".")[0] şeklinde olmalı.
Sipariş ile ilgili hareketlerin GVP sanal pos apisinden sorgulanması ile ilgili geliştirmenin gerçekleştirilmesi.
XML Serialization işlemi için JMS/Serializer kullanılsın by @OsmanUngur
Not:
140314 de bununla ilgili bir deneme yaptım ancak jms serializer bu anlamda tam olarak beklentimi karşılamadı veya ben kullanmayı yeterince iyi anlayamadım.
Benim beklentim veridiğim diziyi, dizideki anahtarlar tagname, değerler tagvalue olacak şekilde dönüştürülmesiydi. fakat jms serializer diziyi kendi deserialize edebileceği farklı bir biçime dönüştürdü. Tekrar incelemek lazım.
CC5Request XML
Parameter Sent
Name (String) : Username which is given to the merchant (Mandatory field)
Password (String) : Password which is given to the merchant (Mandatory field)
ClientId (String) : Clientid which is given to the merchant (Mandatory field)
OrderId (String) : Unique Order id which is used by merchant or this
Field can be left blant. If it is blank Akbank will produce an orderid in response (Optional field)
Type (String) : Transaction type which is described in appendix B (Mandatory field)
Number (String) : Card number (Mandatory field)
Expires (String) : Expiration date in MM/YY format (Mandatory field)
Cvv2Val (String) : Card Holder verification code. (Mandatory field)
Total (String) : Total amount. (Mandatory field)
Currency (String) : Must be “949” for Turkish Lira. (Mandatory field)
UserId (String) : Userid given by merchant (Optional field)
email (String) : e-mail of customer (Optional field)
BillTo *
Name (String) : (Optional field)
Street1 (String) : (Optional field)
so on.
Phpunit production gereksinimlerinden çıkartılmalı.
Posnet test sunucusuna erişim için ip yetkilendirmesi ve user/pass gerekiyor.
Bu sebeple testleri aktif edemiyoruz.
Kütüphanede gerçekleşen olaylar doğrultusunda konfigürasyonla olaylara bağlanan gözlemcilerin tetiklenebilmesinin sağlanması. (istek gönderildi, yanıt geldi, ödeme başarılı, ödeme başarısız gibi.)
Sipariş ile ilgili hareketlerin EST sanal pos apisinden sorgulanması ile ilgili geliştirmenin gerçekleştirilmesi.
Posnet sağlayıcısı kullanarak 3D secure ödeme işlevinin paranoia ya uyarlanması.
Kütüphaneye müdahale etmeden dışarıdan işlev eklenebilme yeteneğinin kazandırılması için eklenti mimarisinin kullanılabilmesi ile ilgili geliştirme.
GVP sağlayıcısı kullanarak 3D secure ödeme işlevinin paranoia ya uyarlanması.
Buradaki https://github.com/ibrahimgunduz34/paranoia/blob/master/php/tests/IntegrationTest.php#L43 tarihin epey ileri bir tarihe alınması gerekiyor çünkü aksi taktirde testler patlıyor
$request->setExpireYear(2013);
Unhandled Exception
Message:
Can't inherit abstract function Paranoia\Payment\TransferInterface::getTransactionType() (previously declared abstract in Paranoia\Payment\Response\ResponseInterface)
Location:
/home/beyazesyapazar.com/httpdocs/application/libraries/Paranoia/Payment/Response/ResponseInterface.php on line 7
Turkcell Cuzdan, turkcell tarafından geliştirilen asenkron bir ödeme yöntemidir. Ödeme isteği gönderildikten sonra kullanıcının aksiyon gerçekleştirip ödemenin tamamlanması durumu ayrı bir istekle dinlenir.
Konuyla ilgili geliştirmenin gerçekleştirilmesi.
mevcut unittest'ler eski Factory class'ını kullanıyor. Bu testlerin docs'da bulunan şekilde tekrar yazılmaları gerekiyor.
Posnet sanal pos apisini kullanarak paranoia nın satış, iptal, iade gibi temel işlevleri yerine getirebilmesinin sağlanması.
Posnet api'sinde bankalar tarafından uygulanan +taksit kampanyalarının kullanılabilmesi için kart bilgisi ile kampanya sorgulaması yapıp sogulama sonucunda gelen kampanya kodlarından uygun olanının sale işlemi içerisinde koiCode değişkeniyle gönderilmesi gerekiyor.
Sadece taksitli işlemlerde geçerli. Tek çekim işlemlerde koiCode alanının olmaması gerekiyor.
<?xml version="1.0" encoding="ISO-8859-9"?> <posnetRequest> <mid>{CLIENT ID}</mid> <tid>{TERMINAL ID}</tid> <username>{USERNAME}</username> <password>{PASSWORD}</password> <koiCampaignQuery> <ccno>{CCNO}</ccno> </koiCampaignQuery> </posnetRequest>
Kur kodlarıyla ilgili sabitler ve sağlayıcı tarafından beklenen kur kodlarıyla ilgili değişken ve sabitlerin ödeme adaptörlerinden temizlenerek konfigürasyona taşınması.
Payu ödeme sistemi HTTP api entegrasyonu.
GVP sanal pos apisini kullanarak paranoia nın satış, iptal, iade gibi temel işlevleri yerine getirebilmesinin sağlanması.
Dayi selam,
Onerilerimi topluca yazmak istedim.
Sipariş ile ilgili hareketlerin Posnet sanal pos apisinden sorgulanması ile ilgili geliştirmenin gerçekleştirilmesi.
$response = $adapter->sale($request);
bu satır sayfa aşağıdaki gibi bir suru yazı print ediyor.
bu satırı kaldırıncada işlem yapmıyor. bu problemi nasıl çözeriz
: Request Url:https://www.fbwebpos.com/servlet/cc5ApiServer Data: DATA=%3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22%3F%3Eode%3E%3C%2FMode%3E%0A%3C%2FCC5Request%3E%0A Type: Response Url:https://www.fbwebpos.com/servlet/cc5ApiServer Data: ORDER0001001397477602 ORDER0001001397477602 Approved 557497 410415483433 00 14104PNWG06024920 84 20140414 15:13:22 ISLEMINIZ ONAYLANDI 00 000 N
EST php veya .net kodu veriyor.
Nodejs / javascript kullananlar için PHP 'ye geçip tekrar geriye sayfa başlatmak zor oluyor.
Çözüm ne olabilirdi ?
Selam
Gökhan
Merhabalar,
PayU desteği eklenmesi bu proje için çok iyi olur düşüncesindeyim. PayU çok iyi destek sun(a)mıyor. Bunun da böyle bir pakette yer alması çok hoş olurdu. Ben "order hash" çıkartmakta güçlük çekiyorum.
Ayrıca Laravel ve Symfony gibi kullanımlar için "wrapper"lar yazılabilir.
Composer, PSR-0'a geçiş olacak mı?
Projenin Zend framework'üne bağımlı olması şart mı?
Hesap bilgilerinin alınması için Zend_Config_Ini fonksiyonu kullanılıyor bunu proje içinde bağımsız bir config dosyası ile çözebiliriz.
Autoloader olarak ise PSR-0 standartlarına uyumlu bir namespace/klasör yapısında yazmak yeterli olacaktır. Bu sayede birçok framework kütüphaneyi rahatça kullanmaya başlayabilecektir.
İbrahim Selam,
Entegre edilen banka ve ödeme sistemlerinin tamamının Türkiyede olduğunu göz önüne alırsak kütüphane dökümantasyonunun ve issueların ingilizce olması pek mantıklı görünmüyor.
Bunları türkçeye çevirirsek proje daha büyük bir kitleye hitap edecektir.
Kredinin banka tarafından onaylanıp satış işleminin sonradan ayrı bir istekle yapılması gerektiği durumlarda kullanmak üzere Pre/Post authorization işlemi ile ilgili geliştirme yapılması.
Dökümantasyonu deniyorum. Bakalım olacak mı?
Kredinin banka tarafından onaylanıp satış işleminin sonradan ayrı bir istekle yapılması gerektiği durumlarda kullanmak üzere Pre/Post authorization işlemi ile ilgili geliştirme yapılması.
Yaptığı kampanyalarla vs. Turkcell Cüzdan'dan daha popüler durumda.
Bence eklenecekler listesinde olmalı.
asseco bankalara sağladığı sanal pos servisini nestpay olarak adlandırıyor.
http://www.asseco-see.com.tr/nestpay.asp
Bizim tarafta da güncelleyebiliriz belki bunu?
EST sağlayıcısı kullanarak 3D secure ödeme işlevinin paranoia ya uyarlanması.
Posnet iptal işleminde iptal edilecek işlemin ne olduğunun gönderilmesini istiyor.
Alması gereken değerler;
Provizyon iptalinde -> "auth"
Ödeme İptalinde -> "sale"
Finansallaştırma iptalinde -> "capt"
Puan Kullanımı iptalinde -> "pointUsage"
Readme.md 'nin de Türkçe olması daha mantıklı olacaktır diye düşünüyorum.
Ben müsait bir zamanda halledebilirim bunu.
proje unittestler sırasında gerçek sunuculara bağlanmaya çalıştığı için bağlantı hatası, ip restriction gibi bizim kontrolümüz dışındaki durumlar yüzünden proje fail olabiliyor.
Acaba yeni bir repo üzerinde her bir adapter'ın olması gereken talebi bekleyen ve doğru yanlış durumlarına göre olumlu/ olumsuz mesaj dönen sanal bir servis hazırlasak mantıklı olur mu?
Bu repoda da composer'ın test gereksinimlerine o repoyu ekleriz.
Iyzico popüler olmaya başladı, yatırım da aldılar bildiğim kadarıyla. Entegre edilmesi düşünülebilir.
Oldukça basit html form örneğini burada paylaşmışlar fakat direkt API entegrasyonu da var. Dökümanlar mevcut gerektiği takdirde sağlayabilirim.
https://www.iyzico.com/entegrasyondirectentegrasyon
Mevcut yapıda tüm sanal pos implementasyonları Container sınıfını inherit eder. Ancak Container sınıfları yalnızca api ile iletişimi sağlamakla sorumludur ve bir ödeme implementasyonu ile aynı davranışı sergilemesi beklenmez. Dolayısıyla payment implementasyonlarıyla olan ilişkisi kalıtım ilişkisi olmamalıdır. Her bir implementasyonun için CONTAINER_TYPE gibi bir sabit tanımlanarak soyut sınıfın içindeki sendRequest metodunun bu sabite göre bir taşıyıcı seçmesi sağlanmalıdır.
Gerçekelştirilen işlemler sırasında fırlatılan hata sınıflarının sayısı fazla. Bunları hatanın tipine göre gruplayarak hatanın içeriği hatanın mesajında belirtilmeli. Böylece işin gerçekleştiği tarafta hataların yakalanması kolaylaşacaktır.
Bilgileri doğru girmeme rağmen aşağıdaki hatayı döndürüyor. diğer pos'larda sorun yok herşey super, yüreyinize sağlık :)
Type: Response Url:https://www.posnet.ykb.com/PosnetWebService/XML Data: 0 0002 XNIException: ::::3:9:-1:cvc-complex-type.2.4.a: 'Sale' öğesiyle başlayan geçersiz içerik saptandı.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.