[bop-devel] Hosted Payment
Stefan Hornburg (Racke)
racke at linuxia.de
Thu Jul 24 03:20:14 PDT 2014
On 07/23/2014 08:04 PM, Angus Rogerson wrote:
>
> 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.)
For Interchange we can either extend the existing BOP module or add a BOP-Redirect one.
>
> 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.
>
Yes, I agree.
Regards
Racke
--
Perl and Dancer Development
Visit our Perl::Dancer conference 2014:
http://act.perl.dance/
More information about the bop-devel
mailing list