Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

Payments and Payment Gateway / APIs /

This is a forum for discussing SilverStripe can-do payments and their APIs / Gateways.

Moderators: martimiz, Sean, Normann, biapar, Willr, Ingo, swaiba

Stand-alone payment module

Go to End

20 Posts   9628 Views


Forum Moderator, 12 Posts

13 April 2010 at 11:25am

Hi guys,

We have discussed a lot of decoupling payment module from e-commerce module in the past, and have separated the files / folders of payment related from e-commerce files / folders. However, we didn't really decouple them in term of functionality. And every time when you want to use the payment module, you have to also check out e-commerce module, though it serves minimal functionality there, and most of the case just avoid from breaking the system.

Now, we have our first version of decoupled payment module, it is listed as new release of payment module. Currently, only DPS payment is our focus. We have done this by adding Payment two fields "PaidForClass" and "PaidForID", thus a payment object could be for any data object.

When also combine the Payments' fields Amount and Currency into one field Amount of Money field type, in order that, we could use the convenience that Money field type brings from SilverStripe core, especially, the thirdparty frame work Zend_Locale and Zend_Curreny. So, the payment is multiple currencies supported if the payment method support this feature.

DPSPayment is our most focused payment method. To make sure this payment is a reliable way, we have added Unit Tests of all its main payment type and made its database manipulation transactional if you use PostgreSQL. As an generic application of the module or showcase, we also had a payment-test module, which developers could check out and use it as a base for adding their own on-line payment section. You could play with it here.

SilverStripe DPSPayment now supports all dps-hosted (PxPost) and merchant-hosted (PxPay) payment types: Auth, Complete, Purchase, Refund, Validate. We also separate DPSPayment API handling from DPSPayment itself, the class is name as DPSAdapter which handles both dps-hosted and merchant-hosted API; The class is also handle fields and indicating mandatory fields that a specific type of DPS payment need to have in order to send data to DPS gateway.

To show these fields visually and results that we get from DPS gateway, we have added a develop / test tool: DPSHarness. You could play with it here.

In addition, we now have RecurringPayment and DPSRecurringPayment implemented. That is, if re-billing through DPS gateway is available from SilverStripe.

The payment module is listed with the new release here
The payment-test module is listed with the new release here


Community Member, 288 Posts

22 April 2010 at 8:05pm

This sounds really cool, awesome work!

Am I understanding this module correctly in that it can be used as a base for creating other payment modules and hooking them in so that SS can support other payment methods?

Right now I can only check out the module from SVN, downloading it through the download link in the module section gives me an empty archive.


Forum Moderator, 12 Posts

23 April 2010 at 4:37pm

Hi Smurkas,

Yes, the module previously tied to the eCommerce module too much in two aspects: data module, checkout process. So, every time if you want to use it alone, you have to check-out eCommerce module as well. This is not the case any more, and the payment-test module shows that this module could be used just as an on-line payment SilverStripe gateway, and anything else rather than just Product could be paid as long as you have an payable extension to the object.

Concerning payment methods, we just refactored DPS implementation in all aspects (including DPS-hosted DPS payment and Merchant-hosted DPS payment), other many payment methods are still there and have not been touched. That will be future works. (It is very appreciated if anyone can help on those other payment methods refactoring).

The download links in the module pages has been fixed.


Community Member, 178 Posts

23 May 2010 at 2:26pm

I truly appreciate your efforts here, this seems like a great increase in flexibility.
However being in Canada the payment gateway is not support here yet.. so I ask what the likelihood of PayPal support coming soon might be (sorry I really couldn't be of help adding this support.)

I have a project that could use this module directly (as done in your sample module) as well as in conjunction with the e-commerce module.
Can you tell me if there is a version of the ecommerce module that will work with this module being that it supports 2.4 and the latest ecommerce .6 beta (I believe) is still on the 2.3x branch as far as I can tell?


Forum Moderator, 12 Posts

24 May 2010 at 10:45am

Hi DsX,

Yes, DPS currently gets connectivity with only U.S.Bank in Canada.

Our Payment module has got a bunch of other payment methods as well, including PayPal, though it is not fully tested like DPSPayment. I will check for you what is the status of PayPal payment in SilverStripe.



Community Member, 1 Post

24 May 2010 at 11:35am

Hi Normann,

Great job on this module. Please let me know if you would like DPS to assist in any way.



Community Member, 178 Posts

24 May 2010 at 11:42am

Edited: 24/05/2010 11:43am

Thanks I would greatly appreciate any help you could give me in getting this running with PayPal...
Currently I am unsure as to whether I really need to use the ecommerce mod with it... it seems that the primary plus with it is the cart, taxes, and shipping settings.
If using payments only are there any additional tax or shipping settings?


Forum Moderator, 12 Posts

24 May 2010 at 12:24pm

Hi DsX,

The e-commerce module's latest release is actually 0.5.4 which should work with SilverStripe 2.3, I am pretty sure its 0.6_beta1 release is actually older than than its 0.5.4 stable release according to its change log and change set.

Because e-commence module is listed as "Not supported" in the module list, which means no SilverStripe core developer is actually working on it or its future release, its compatibility with any new SilverStripe releases is purely up to the community and the module maintainers at the moment. From my experience, there are not much changes from SilverStripe 2.3 and SilverStripe 2.4 which related with e-commence. The current version works with SilverStripe 2.3, and it should work with SilverStripe 2.4 with minor changes (mainly the javascripe file path).

And SilverStripe is evaluating to re-implement a more comprehensive e-commence module, not only a shopping cart, but also taxing, stock management, shipping management, etc. But this is really a future plan.

Our previous payment module works with e-commence module, and the new payment module's DPS payment should also work with e-commence, but not all other payment methods due to the data model has been slightly changed. :(. However, working towards the new payment module being able to cope with e-commence by all its supported payment methods again is definitely our next step.

If you want to use older version which works with e-commence, you can still get if from here Good luck.

Go to Top