[bop-devel] Hosted Payment

Angus Rogerson arogerso at uwaterloo.ca
Wed Jul 23 11:04:29 PDT 2014


On 2014-07-19, at 12:36 AM, Stefan Hornburg (Racke) wrote:
> I would be very interested to extend BOP in a manner to support these callbacks, which are used in one or the other form
> by any gateway today (at least if you want to evade PCI compliance).
> 
> The question is if we:
> 
> 1. extend BOP itself
> 2. write a subclass of BOP adding methods needed for redirect
> 3. write BOP 2nd generation (Moo, get rid of HTTPS::Any, ...)



I don't have enough experience with OO programming to know which is most appropriate.

Whichever option (extend, subclass or rewrite) I would like there to be enough backwards compatibility to allow an application (like Interchange, of course) to be able to use either type of payment gateway. So, I would like to be able to have code in my application which can handle BOP Classic or BOP NextGen modules in the same way, something like:

BOP->create
while (BOP->is _nextgen() && BOP->says_redirect()) {
	do a redirect
	come back from the redirect
}
if (BOP->says_success()) { BOP->ACK the transaction if necessary } )
if (BOP->says_fail()) { go back to the user and get his money some other way })

(Of course, the while loop does not actually exist like that because we are writing web applications.)

As someone says on http://420.am/business-onlinepayment/ng.html

> • There's lots of code duplication in backend modules themselves. Fix this false laziness: provide more and cleaner methods/subroutines to backend module authors with common operations, etc.
> • Unless there is an overwhelmingly good reason not to, provide backwards-compatibility with the 2.0 interface. Also it would be super to provide Vend::Payment compatibility to migrate Interchange.
> 

Having spent far too many hours reading through the various interchange payment modules I would like to see something that provides more tools to future gateway developers so they are not tempted to reinvent the wheel (or steal another wheel, cut it into little pieces and glue it back again). For example: map variable names from application to B:OP or to gateway, bounce a user etc.

Angus

---
Angus Rogerson, BMath, BScN, RN

Trans-environment Communications Facilitator
University of Waterloo | Retail Services | Information Systems

Visit Us Online & Right On Campus www.retailservices.uwaterloo.ca







More information about the bop-devel mailing list