Giter VIP home page Giter VIP logo

omnipay-girocheckout's Issues

Branch for Omnipay 3.0

This driver is being built initially for Omnipay 2.x for legacy systems.

Once fully built, it will be branched to allow for continued support, but the master branch will continue down the Omnipay 3.x route.

Proper use of the recurring flag

The use of the recurring flag is a little confusing, and I am not convinced I am using it correctly. It seems to be largely independent of the use of the PKN. This response (thank you Michael) to my question about this flag may help to shed some light:


We try to describe the recurring process here:
http://api.girocheckout.de/en:girocheckout:creditcard:start#recurring_credit_card_payment

It's probably not very clear, but the essence is that pkn is not equivalent to recurrent. You could make a transaction with a pkn that is not recurrent.

For example, if you used a pkn to store a customer's credit card data, and when he returns to your store you allow him to pay with that card again, without having to reenter his data. In that case he will only have to enter his CVV.

Recurring payment is normally used by backend systems for subscriptions. The system may bill the customer without any intervention at all, using the pkn as well. But in that case the recurring flag needs to be set.

Also it's important to know that in order to be able to use recurring, the merchant needs a special contract with the credit card acquirer authorizing this kind of transactions.

Order of construction

The payment methods are to be built in the following order:

  1. CreditCard
    • Authorize
    • Purchase
    • Capture
    • Refund
    • Void
    • Query Pseudo Card (PKN Info)
    • Recurring (repeat) transaction)
  2. PayPal
    • Purchase
  3. DirectDebit
    • Authorize with payment page
    • Authorize without payment page
    • Purchase with payment page
    • Purchase without payment page
    • Capture
    • Refund
    • Void
    • Query Pseudo Card (PKN Info)
  4. Giropay
    • Authorize (not sure if this is available)
    • Purchase (initialise)
    • Check bankstatus
    • Giropay issuer bank query
    • Retrieve sender information
    • Bank selection widget (not a message, perhaps a helper)
  5. Paydirekt
    • Authorize
    • Purchase
    • Capture
    • Refund
    • Void
  6. iDEAL
    • Purchase
  7. EPS

iDEAL and EPS are not used in Germany, so are taking a lower priority.

The PaymentPage payment type supports multiple payment types, selectable by the user.

  • Get Transaction message (covers all payment types)

Fetch cardReference during completeAuthorize

If a card reference is being created when authorizing (by setting the createCard flag) then the card reference must be fetched as a separate request for all payment types except Payment Page.

This change is needed to avoid the need to make that second, explicit API call. During CompleteRequest::send() an API call is made to fetch the card details and supplement the data already returned to the merchant site with the end user. The createCard option needs to be set when completing the transaction in order to trigger this functionality.

Change root namespace "Academe" to "Omnipay"

The automatic discovery of a driver depends on the root namespace part being Omnipay. There is a workaround using the full path, but it is a little ugly, so we'll just change the root namespace for consistency with just about every other Omnipay driver ou tthere.

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.