DPS (Direct Payment Solutions) Payment Express payment gateway plugin for Ubercart

Payment Express (provider hosted solution) is commonly used in Australia and New Zealand. This module implements pxpay2 based solution as an checkout payment method for drupal Ubercart

More details about this project can be found from https://www.drupal.org/sandbox/jingqian/2781691

This is a drupal 8 plugin compared to https://www.drupal.org/project/uc_paymentexpress which is still d7 based module in dev status

git clone: git clone --branch 8.x-1.x https://git.drupal.org/sandbox/JingQian/2781691.git

NOTIC:
PxPay_Curl.php used as lib php in this module, the detailed info can be found from https://www.paymentexpress.com/developer-e-commerce-paymentexpress-hoste...

Some minimum changes have applied to make it working in drupal 8, as a lib file, We have leave other parts unchanged.

Manual reviews of other projects
https://www.drupal.org/node/2603436#comment-11514973
https://www.drupal.org/node/2783697#comment-11514925
https://www.drupal.org/node/2783141#comment-11514899

Comments

Jing Qian created an issue. See original summary.

Jing Qian’s picture

Title: Ubercart DPS Payment [D8] » [D8] Ubercart DPS Payment
PA robot’s picture

Status: Needs review » Needs work

There are some errors reported by automated review tools, did you already check them? See http://pareview.sh/pareview/httpsgitdrupalorgsandboxJingQian2781691git

We are currently quite busy with all the project applications and we prefer projects with a review bonus. Please help reviewing and put yourself on the high priority list, then we will take a look at your project right away :-)

Also, you should get your friends, colleagues or other community members involved to review this application. Let them go through the review checklist and post a comment that sets this issue to "needs work" (they found some problems with the project) or "reviewed & tested by the community" (they found no major flaws).

I'm a robot and this is an automated message from Project Applications Scraper.

xurizaemon’s picture

Hi

I'm the maintainer of existing UC PaymentExpress (D7 only release for now) and would be happy to see this submitted to the UC PaymentExpress project if that's an option. I'm open to additional maintainers who have demonstrated enthusiasm for contributing, and Jing Qian has established that with the work shown here.

Thanks!

Jing Qian’s picture

seems I got no git clone problem on the scan - http://pareview.sh/pareview/httpsgitdrupalorgsandboxjingqian2781691git

Jing Qian’s picture

Hi Chris,

Sure, will be keen to be part of the maintainers for DPS :)

Cheers,
Jing Qian

dman’s picture

I think it's fair to note that from the pareview scan:

Issues with the library (DPSApi/PxPay_Curl.ph) that is code supplied verbatim from the gateway providers specifically for incorporating into projects like this uses a different code standard, and it's more beneficial to maintenance and security to keep it untouched than it is to rewrite it in this case.

75 | WARNING | t() calls should be avoided in classes, use dependency
| | injection and $this->t() instead

"$this->t(" is being used in the lines it identifies, as as far as I can tell, this seems to be a false positive.

I don't know the recommended way to rewrite

28 | WARNING | \Drupal calls should be avoided in classes, use
| | dependency injection instead

But I hope someone else can suggest the fix - if it's important.

The other complaints about SSL authentication and too-short commit messages are totally valid though.
You can't change old commit messages, but look at improving them going forwards.

Jing Qian’s picture

Status: Needs work » Needs review
Issue tags: ++PAReview: review bonus
Jing Qian’s picture

Issue tags: -+PAReview: review bonus +PAreview: review bonus
Jing Qian’s picture

Issue summary: View changes
Jing Qian’s picture

Issue summary: View changes
dieuwe’s picture

Status: Needs review » Reviewed & tested by the community

I've run through and tested the module. Configuration seemed to work fine, the instructions were adequate.

I should only note that since the "Cart" submodule is not listed as a dependency, even though the project page states it is, I had to enable it manually. This is probably not something that really concerns this module though, since "Cart" is listed as something that must be enabled for the entire UC bundle to work.

Tested checkout success and failure. Both worked as expected. Success recorded the payment and the failure sent me back to the checkout.

I'm afraid I can't add much to the PAReview comments, but a manual review of the code does review some inconsistent use of the single and double quotes. I believe that policy is to use single quotes unless double quotes are required. Array notation is also not consistent, array() and [] are both used. I suggest standardising on the newer brackets.

Some nitpicking for the grammar used in the failure messages (2 places): "... please make sure the card detail is correct" should read "... please make sure the card details are correct". Plural, not singular.

None of these things are really showstoppers though, so I am setting to RTBC. If someone has any more knowledge about how to deal with the remaining complaints raised by PAReview then we await your input.

dieuwe’s picture

I should also note that since it seems this sandbox will be merged as 8.x-1.x into the Ubercart PaymentExpress module, the namespaces used here should probably be changed to match those of that module at some point (before the merge).

chroid’s picture

Used Simplytest.me to spool up a clean test environment. Followed instructions provided and had no issues except for messing up a copy and paste of the PX UID (which I didn't discover until the checkout). Nothing here that would be a review blocker but might be worthwhile adding some form of debug control as a nice to have. (The logs were a long way from helpful if I was to rely on them for some detail about the issue).

Tested checkout success and failure with a multitude of different card types, including ALL common declines. Where there were failures I was redirected back to the checkout page with an appropriate message (agree with @dieuwe's grammar nitpicks above) and successful payments were lodged correctly into the ordering system.

On subsequent checkouts there was an issue whereby using "Saved addresses" didn't appear to correctly populate the appropriate fields, but I believe this is unrelated to the particular project.

dman’s picture

Sounds like we are almost ready to go.

What's the status RE taking over the https://www.drupal.org/project/uc_paymentexpress namespace?
My understanding is that:

  • @xurizaemon has indicated he's happy to give it to @Jing Qian to take forward (which is excellent)
  • On the strength of that endorsement + the above reviews, @Jing Qian can be promoted for that project immediately.
  • Shifting the current module into that project as a new 8.x branch takes a little git wrangling (which I'm not an expert in) and renaming, but would be the best long-term result.
  • There is no immediate expectation of an upgrade path between the 7.x and 8.x branch. (IMO) Re-configuring such a thing during a migrate will need manual intervention anyway.

Proposal:

  • Promote @Jing Qian = YES
  • Grant @Jing Qian maintenance of The existing module = @xurizaemon - will you do the honours please?
  • Further work = Jing branches the 7.x to 8.x (use git checkout --orphan 8.x-1.x) and integrates this sandbox there.

Alternative

:

  • Promote @Jing Qian = YES
  • Allow this project to be promoted to "Full project"
  • Update project page to refer to this as a successor.

(I prefer option A, but will take input on this)

dman’s picture

Disclosure @Jing and I both work at Sparks Interactive, and occasionally even touch the same projects.

To avoid any questions about the system and our part in it, I would prefer another project reviewer to weigh in and actually pull the trigger and complete the promotion process - which is ready to go, whichever way the old/new module decision (above) goes.

(If not, I'll bump it through after a week anyway, per normal d.o policy for unopposed RTBC applications)

dman’s picture

Status: Reviewed & tested by the community » Fixed
Issue tags: -PAreview: review bonus

This has been RTBC unopposed since August 24.
Per the policy, and the discussions above, let's do this.

Jing, Please check in with xurizaemon about the next steps for project transferral.

------------------

Thanks for your contribution, Jing!

I updated your account so you can promote this to a full project and also create new projects as either a sandbox or a "full" project.

Here are some recommended readings to help with excellent maintainership:

You can find lots more contributors chatting on IRC in #drupal-contribute. So, come hang out and stay involved!

Thanks, also, for your patience with the review process. Anyone is welcome to participate in the review process. Please consider reviewing other projects that are pending review. I encourage you to learn more about that process and join the group of reviewers.

Thanks to the dedicated reviewer(s) as well.

Status: Fixed » Closed (fixed)

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

xurizaemon’s picture

Jing, you've got full access to the project at https://www.drupal.org/project/uc_paymentexpress now.

Thanks!