Code Monkey home page Code Monkey logo

paranoia's Introduction

Travis Scrutinizer Packagist

Paranoia Nedir ?

Paranoia, Türkiye genelinde sanal pos servisi veren banka ve ödeme servisi sağlayıcıların apilerini ortak bir arayüz üzerinden basitce kullanılabilmesini sağlayarak geliştirme maliyetlerini aşağıya çekmeyi hedefleyen açık kaynaklı bir PHP kütüphanesidir.

Neler Yapılabilir ?

Paranoia, senkron çalışan kartlı ödeme sistemleri üzerinden peşin ve taksitli olmak üzere ön satış onayı (pre authorization), satışa dönüştürme (post authorization), satış (sale), iade (refund) ve iptal (cancel) işlemlerini gerçekleştirebilmektedir.

Nasıl Kullanılır ?

Paranoia kütüphanesinin kurulum ve kullanımı ile ilgili olarak dökümanları inceleyebilirsiniz.

paranoia's People

Contributors

aykutfarsak avatar erdalceylan avatar feridmovsumov avatar fg avatar goktugozturk avatar hasandz avatar ibrahimgunduz34 avatar o 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  avatar  avatar  avatar  avatar  avatar  avatar

paranoia's Issues

Olay yönetimi ile ilgili geliştirme

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.)

Türkçe

İ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.

Test

Dökümantasyonu deniyorum. Bakalım olacak mı?

Zend

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.

musteri ve siparis verilerinin eksta bilgi olarak eklenebilmesi.

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.

Posnet UnitTest'leri

Posnet test sunucusuna erişim için ip yetkilendirmesi ve user/pass gerekiyor.
Bu sebeple testleri aktif edemiyoruz.

Posnet kampanya sorgulama ile ilgili geliştirme

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>

PayU ve Diğer Öneriler

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ı?

Posnet buildCancelRequest fonksiyonu

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"

xml serialization işlemi için jms/serializer kullanımı

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.

Interface exception alıyorum

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

Print Hatası..

$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

Oneriler

Dayi selam,

Onerilerimi topluca yazmak istedim.

  • Composer entegrasyonu
  • Zend_Loader'in kaldirilmasi (Composer Symfony2 Classloader kullandigindan buna gerek yok)
  • Pext (?)'in composer kullanimina binaen ayri repoya alinmasi ya da JMS\Serializer ile replace edilmesi
  • EventManager'in cok daha guclu bir EventManager ile degistirilmesi (e.g Symfony2 EventDispatcher)
  • PSR2 Standartlarina uygunluk
  • Communication yapisinda yer alan HTTP adapter'in Amazon PHP SDK'sininda kullandigi Guzzle ile degistirilmesi
  • Event dispatcher vasitasiyla Logger entegrasyonu (Guzzle da da logger mevcut, buna gerek kalmayabilir)(Monolog PSR-3 Logger)
  • SOAP icin Zend\Soap entegrasyonu

Sanal pos implementasyonları container sınıfıyla kalıtım ilişkisi içinde olmamalı.

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.

Eklenti mimarisi ile ilgili geliştirme

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.

Exceptionlar türüne göre gruplanmalı

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.

BKM Express

Yaptığı kampanyalarla vs. Turkcell Cüzdan'dan daha popüler durumda.
Bence eklenecekler listesinde olmalı.

Turkcell Cüzdan ile ödeme geliştirmesi

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.

numara formatlama hatası.

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ı.

Readme.md Türkçeleştirme

Readme.md 'nin de Türkçe olması daha mantıklı olacaktır diye düşünüyorum.
Ben müsait bir zamanda halledebilirim bunu.

adapter unit testleri için sandbox

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.

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.