plainblack.com Username Password
Click here to register.
| View Cart (0)
download WebGUI now
search  

     develop > forum

Ogone Payment Plugin

User arjan
Date 2/20/2008 12:20 pm
Views 1198
Rating 7    Rate [
|
]
Previous · Next
User Message
arjan
Hi all,

Together with Procolix (Koen) I would like to develop a payment plugin.
I would like to have it distributed with the standard release. My aim
here is to
a) discover what requirements should be met for this - or any - plugin
and
b) whether our requirements are compatible with the new commerce system
and perhaps this case sharpens the specification.

Contents
1.  Our demands to the functionality
1.1 some demands that may have nothing to do with the plugin, but may
with the commerce system
1.2 the payment service provider (PSP) we would like to have support for
2. The demands the WebGUI community puts to such a plugin that I know
off
3. The questions about the specification this combination of demands
brings about

Demands to the functionality
Our main demand is to have the ability to have recurring payments. This
can be done with most credit cards and in Holland with something called
"Machtigingen" (literally translated: authorizations).
We would like to be able to sell something abroad. In Holland most
export is tax-free. This is may be a demand to the commerce system
itself. (and it may not be, see below)
We would like to use Ogone as PSP and make a plugin for their standard
e-commerce solution. (and make WebGUI a 'connector' in the process) I
think the best way to go is to use their option to hand off the process
to Ogone from the moment someone indicates he wishes to pay. This
probably is a demand to the commerce system itself. (see also below)
I will elaborate on the demands later, after I've studied the details of
the Ogone payment gateway.

The demands I know off
These are always true:
1. build tests (which tests exactly should become clear later in the
discussion)
2. internationalization
3. templatability of all views (which I have learned to specify:
selectable templates such as most of WebGUI's templates are)
4. follow the WebGUI best practices (all of the Rules that Damian Conway
describes?)
5. use the Class::InsideOut
But what demands should be met by a commerce plugin specifically, if
any, to be included? Should this be an arbitrary selection? I would
guess that perhaps somebody should be committed to maintain them?

The issues
The first two questions are related to 2) and 3) of the Must Haves:
"2. There must be a callback system after checkout."
"3. There's currently no way to apss off the checkout process to a
third-party web site such as PayPal, ..."

1. Some PSP's expect to take over the process from the selection of
billing options. If you have just one payment gateway defined, the most
elegant thing would be to directly direct this user to the PSP I guess.
In this way the 'display billing options' would be at the PSP's site.
2. How are recurring payments handled? I would guess there are cases in
which
- the customer selects this option at the PSP and the PSP confirms at
merchant somehow of the next payment without customer involvement
- the merchant sets option via the payment plugin at PSP and the PSP
confirms at merchant somehow of the next payment without customer
involvement
- the merchant triggers the next payment at PSP?
And if you allow customers to pay once for a subscription-like product:
- the merchant sends an email with a link to the merchants website,
where the product has already been put in his/another cart
- the merchant sends an email with a link to the PSP's website?
3. PSP's most often offer many different options, billing methods to use
or not, etc. Should such options be a part of the plugin, so they are
configurable via the WebGUI interface or would it be best if they were
configured elsewhere?
4. In the specification the payment gateway has a create method with a
hash reference with the parameters in the coupon table. Is this intended
for giving a discount on the basis of the chosen billing option?

I will look more deeply into the technical specs of Ogone to answer part
of these questions myself.

Some other things
1. In many countries you don't have to pay VAT for *some* products if
you export them to (most?) countries and the are produced or delivered
in the country of origin. Whether or not VAT has to be payed is
determined by the country of the customer in relation to the country of
the shop. I don't know if - in the case of Ogone - this is perhaps
handled by the PSP, but I will look into this. But if this is handled by
the PSP this probably creates more problems than are solved. So I guess
would be best if the commerce system can determine this.

Some small things I noticed
1. In the 'user experience' diagram of the shopping cart and check out
process, there is no arrow between "Log in or create account" and
"Display billing options". It would be elegant if the users which to
checkout is remembered and he is directed to the display of the billing
options or to the only payment gateway that is available after login or
create account in this case.
2. Shipping, should shipping/no-shipping be a property of all products
in the sense that shipping is completely hidden if all products in the
cart don't require shipping? Or should shipping always be visible in a
cart and you use the flat rate shipper with a rate of zero?
3. In the flat rate shipper module there is the calculate formula. It
says that the total price is multiplied with a percentageOfPrice. Is
that what you intend? A percentage off is always on a total, not on a
product?

Suggestions
1. Perhaps we could add to 'Pipe dream': upgrades. Many products are
only interesting if the customer has already bought something else.
Think: Dell's 3 years extra service, or upgrade you WebGUI hosting
account.

And P.s. what is a subscription recurring url?

Kind regards,
Arjan Widlak

Visit us:
http://www.unitedknowledge.nl

United Knowledge, inhoud en techniek
Keizersgracht 74
1015 CT Amsterdam
T +31 (0)20 52 18 300
F +31 (0)20 52 18 301
http://www.unitedknowledge.nl



Back to Top
Rate [
|
]
 
 
JT
> Together with Procolix (Koen) I would like to develop a payment  
> plugin.
> I would like to have it distributed with the standard release. My aim
> here is to
> a) discover what requirements should be met for this - or any - plugin
> and
> b) whether our requirements are compatible with the new commerce  
> system
> and perhaps this case sharpens the specification.

Great.

> Demands to the functionality
> Our main demand is to have the ability to have recurring payments.  
> This
> can be done with most credit cards and in Holland with something  
> called
> "Machtigingen" (literally translated: authorizations).

Whether you can do recurring payments with this provider connected to  
our commerce system is really up to how they handle recurring  
payments. If they support recurring payments, then I would say you  
have an 90% chance that it will work with our commerce system. I've  
only seen one that I would not allow so far because it required  
storing the credit card number on the webgui server, which is just a  
security nightmare waiting to happen.

> We would like to be able to sell something abroad. In Holland most
> export is tax-free. This is may be a demand to the commerce system
> itself. (and it may not be, see below)

Tax free is the default in the commerce system. Unless you specify a  
tax rate for a country it charges no tax. So this is already handled.

> We would like to use Ogone as PSP and make a plugin for their standard
> e-commerce solution. (and make WebGUI a 'connector' in the process) I
> think the best way to go is to use their option to hand off the  
> process
> to Ogone from the moment someone indicates he wishes to pay. This
> probably is a demand to the commerce system itself. (see also below)
> I will elaborate on the demands later, after I've studied the  
> details of
> the Ogone payment gateway.

So Ogone is like paypal in which it's a web interface handshake rather  
than a background payment system? Either way the new commerce system  
is set up to handle this. That was one of the key things I didn't like  
about the old one.


> The demands I know off
> These are always true:
> 1. build tests (which tests exactly should become clear later in the
> discussion)
> 2. internationalization
> 3. templatability of all views (which I have learned to specify:
> selectable templates such as most of WebGUI's templates are)
> 4. follow the WebGUI best practices (all of the Rules that Damian  
> Conway
> describes?)
> 5. use the Class::InsideOut

Yup on all counts.

> But what demands should be met by a commerce plugin specifically, if
> any, to be included? Should this be an arbitrary selection? I would
> guess that perhaps somebody should be committed to maintain them?

The big one is that the payment gateway has to work out of the box  
without installing any additional drivers or other such nonsense (it  
should be a web services or other http interface). The only one I know  
that requires this BS is PayFlowPro (aka CyberCash), so that shouldn't  
be a problem. If your payment gateway requires these drivers then it  
cannot be shipped as a standard component with WebGUI.

The other thing is that I don't want Plain Black to get stuck with  
maintaining a thousand different payment gateway adapters. Our goal is  
to choose a few of the most popular (one or two direct credit card  
processors, paypal, google checkout, and maybe 2checkout.com). But  
below you've offered to maintain it so that isn't a problem.


> The issues
> The first two questions are related to 2) and 3) of the Must Haves:
> "2. There must be a callback system after checkout."

The callback has nothing to do with the payment gateway. This is just  
a natural function of the commerce transaction subsystem.

>
> "3. There's currently no way to apss off the checkout process to a
> third-party web site such as PayPal, ..."

The new system cures this.

> 1. Some PSP's expect to take over the process from the selection of
> billing options. If you have just one payment gateway defined, the  
> most
> elegant thing would be to directly direct this user to the PSP I  
> guess.
> In this way the 'display billing options' would be at the PSP's site.

Not necessarily. Because you might have both google checkout and  
paypal defined as payment gateways on your WebGUI site. So you have  
buttons for each of those, which then redirect you to the appropriate  
PSP.

> 2. How are recurring payments handled? I would guess there are cases  
> in
> which
> - the customer selects this option at the PSP and the PSP confirms at
> merchant somehow of the next payment without customer involvement
> - the merchant sets option via the payment plugin at PSP and the PSP
> confirms at merchant somehow of the next payment without customer
> involvement
> - the merchant triggers the next payment at PSP?
> And if you allow customers to pay once for a subscription-like  
> product:
> - the merchant sends an email with a link to the merchants website,
> where the product has already been put in his/another cart
> - the merchant sends an email with a link to the PSP's website?

This depends entirely on your PSP. But for most of them what happens  
is the PSP triggers the next payment, and then calls a URL on your  
WebGUI site that triggers the next transaction.


> 3. PSP's most often offer many different options, billing methods to  
> use
> or not, etc. Should such options be a part of the plugin, so they are
> configurable via the WebGUI interface or would it be best if they were
> configured elsewhere?

This again depends upon the PSP. The new commerce system doesn't force  
any particular requirements upon you so you can do whatever the the  
PSP gives you access to do. However, my requirement is that you take  
the payment gateway as far as is possible with the APIs that are  
provided. By making as much configurable in WebGUI you make it easier  
for the end user. They don't have to go deal with someone else's  
interface.

> 4. In the specification the payment gateway has a create method with a
> hash reference with the parameters in the coupon table. Is this  
> intended
> for giving a discount on the basis of the chosen billing option?

That's a typo. The most recent version of the specification for  
payment gateways removes that.

> I will look more deeply into the technical specs of Ogone to answer  
> part
> of these questions myself.

Great.

>
> Some other things
> 1. In many countries you don't have to pay VAT for *some* products if
> you export them to (most?) countries and the are produced or delivered
> in the country of origin. Whether or not VAT has to be payed is
> determined by the country of the customer in relation to the country  
> of
> the shop. I don't know if - in the case of Ogone - this is perhaps
> handled by the PSP, but I will look into this. But if this is  
> handled by
> the PSP this probably creates more problems than are solved. So I  
> guess
> would be best if the commerce system can determine this.

I think our tax system automatically handles this case. I recommend  
you read the tax spec in the updated docs and make sure that's the case.

> Some small things I noticed
> 1. In the 'user experience' diagram of the shopping cart and check out
> process, there is no arrow between "Log in or create account" and
> "Display billing options". It would be elegant if the users which to
> checkout is remembered and he is directed to the display of the  
> billing
> options or to the only payment gateway that is available after login  
> or
> create account in this case.


Despite the lack of an arrow, the plan all along is that the user be  
redirect to the right spot after login. I've fixed the image in  
subversion now.

> 2. Shipping, should shipping/no-shipping be a property of all products
> in the sense that shipping is completely hidden if all products in the
> cart don't require shipping? Or should shipping always be visible in a
> cart and you use the flat rate shipper with a rate of zero?

isShippingRequired is a method on all Skus. And it will certainly be  
enabled in the Product asset, but some things like Subscriptions and  
Donations are never shippable. That's why there shouldn't always be a  
switch in the asset.

> 3. In the flat rate shipper module there is the calculate formula. It
> says that the total price is multiplied with a percentageOfPrice. Is
> that what you intend? A percentage off is always on a total, not on a
> product?

Typo. I've fixed it in the shipping docs now.

> Suggestions
> 1. Perhaps we could add to 'Pipe dream': upgrades. Many products are
> only interesting if the customer has already bought something else.
> Think: Dell's 3 years extra service, or upgrade you WebGUI hosting
> account.

That would be an option on the product type I would think. Cuz it's a  
property of the product rather than a separate product itself, at  
least as far as our commerce system is concerned.

>
> And P.s. what is a subscription recurring url?


It's an idea I'm toying with. Rather than have the payment gateway  
deal with recurring payment triggers, I'm thinking about having  
subscription and other recurring assets deal with their own. However,  
this is not set in stone, it's only a thought that is not entirely  
fleshed out yet. We'll deal with that as we get some of the commerce  
system completed and see what way will work best.



JT Smith
ph: 703-286-2525 x810
fx: 312-264-5382

Create like a god. Command like a king. Work like a slave.



Back to Top
Rate [
|
]
 
 
     develop > forum



© 2009 Plain Black Corporation | All Rights Reserved