CVS edit link for j.payne

I have several modules I would like to contribute back to the drupal community. I work with OpenConcept, a drupal shop that specializes in developing websites for non-profits and charities. We also focus on bringing accessibility to government.

The specific module that I would like to contribute at the moment is a module that adds Chase Paymentech hosted checkout as a payment method to Ubercart. There isn't currently a module that integrates Ubercart with Chase paymentech. Although Chase based their hosted checkout on Authorize.net's framework, their specific implementation and methods of response verification are different in functionality. There is not a sensible way to go about modifying the Authorize.net module that ships with Ubercart to incorporate Chase Paymentech without rewriting the entire Authorize.net module to make it more generic and adaptable to other Payment Companies and their implementations of the authorize.net framework. This may be an option for the future. However, at the moment, a properly maintained and secure module to integrate Chase Paymentech with Ubercart is certainly needed. I have found other similar implementations that have not been shared with drupal.org, but these hacked together modules were incomplete and had glaring security holes. I will be sharing my findings within the Ubercart forums where these contribs have been shared publicly.

I developed this module for an online yoga store called functionalsynergy.com. My chase module is currently the only payment method being used by the website and it replaced their former use of paypal. This module is complete in its ability to function as a payment interface between Ubercart and Chase paymentech. Upon checkout the user is sent to Chase's payment site for payment completion. When the customer completes their payment or their payment is declined a response is sent back to the user's site and their order is updated accordingly.

-----

Another module that I would like to contribute shortly, at the moment called clumps (name still to be determined), is a module that uses the PURL module api to add the ability to turn on or off specific menu items based on the section of a website, or websites the user is browsing. This is achieved using a persistent portion of a url, be it a domain, subdomain or path. I have written a blog that describes the module: http://openconcept.ca/blog/jesse/the_clumps_module

-----

Both modules listed above can be used on the example website:
http://test-clumps.dev.openconcept.ca

log in as: tester/testtest

best regards,
Jesse Payne

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

mgifford’s picture

Status: Postponed (maintainer needs more info) » Active

Please give Jesse CVS access. He's one of our developers.

acrazyanimal’s picture

acrazyanimal’s picture

Status: Active » Needs review
Dave Reid’s picture

Issue tags: +Ubercart, +Module review

Tagging so hopefully with someone who's familiar with Ubercart can review

Gerhard Killesreiter’s picture

Issue tags: -Ubercart, -Module review
      $form['#prefix'] = '<table style="display: inline; padding-top: 1em;"><tr><td>';

Not the best of practices.

      $title .= ' <img src="' . $path . '/images/' . $ctype . '.gif" alt="' . $cname . '" title="' . $cname . '" style="position: relative; top: 5px;">';

That's worse.

      $_SESSION['pay_method'] = $_POST['pay_method'];

Does this have to be that way (unsure here)?

Anyway, he seems to have understood the Drupal API in principle, so I'd be in favoru of giving him access.

Gerhard Killesreiter’s picture

Issue tags: +Ubercart, +Module review

putting tags back

Michelle’s picture

Status: Needs review » Fixed

Approved because he will be working with existing CVS account holders (mgifford and others) who can ensure the code is up to standards.

Michelle

acrazyanimal’s picture

Status: Fixed » Needs review

Thank you for the approval.

@Gerhard thanks for the comments. Its funny because the first two items are copied directly from uc_paypal which I used as my prime example and a starting point for this module. Do you have any suggestions to make those lines follow better practices?

As for the third point, $_SESSION['pay_method'] = $_POST['pay_method']; , I'm not sure here either, I added it in because I noticed that some other payment methods no using a gateway were including this. I assumed it was a part of the session that Ubercart expected. I will investigate further, but for the time being I will leave it in since the module is working well. I have also wrapped the post var in a check_plain() for a little protection.

apaderno’s picture

Status: Needs review » Fixed
$form['#prefix'] = '<table style="display: inline; padding-top: 1em;"><tr><td>';

It is better practice to put the rendering code in a theme function; CSS styles should not be inline styles, then.

$title .= ' <img src="' . $path . '/images/' . $ctype . '.gif" alt="' . $cname . '" title="' . $cname . '" style="position: relative; top: 5px;">';

There is a Drupal theme function for images (it is called with theme('image', $path, $alt, $title, $attributes)).
It is a better practice to pass to check_plain() the HTML attributes; I didn't look at the code, and I don't know if that is already done from the module.

Status: Fixed » Closed (fixed)
Issue tags: -Ubercart, -Module review

Automatically closed -- issue fixed for 2 weeks with no activity.