This project integrates MercadoPago into the Drupal Commerce payment and checkout systems.

Reviews of other projects:

https://drupal.org/node/1978262#comment-7609051

Comments

PA robot’s picture

We are currently quite busy with all the project applications and we prefer projects with a review bonus. Please help reviewing and 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.

rlmumford’s picture

Status: Needs review » Needs work

Hi jrviorato!

First question, are you wanting 7.x-1.x reviewed or 7.x-2.x. I know the link above says 7.x-1.x but I thought I'd check.

Automated Review

PARaview returned clean. So that's all good!

Manual Review

  • Module page is the best I've seen in ages. No problem there.
  • The git repo is good. You have the correct branch names. For future reference I think commit messages should be in English =)
  • README.txt is good!
  • Do you want ", development" in the description in .info? That seems like it should be removed for a release.
  • Docblock for mercado_pago_payment_menu should read Implements hook_menu().
  • Strings wrapped in t() should be in English. I don't know much about the translation stuff in Drupal, but you probably want to look into that and make sure all the strings get translated properly. Also all the $transaction->message bits in mercado_pago_payment_process_ipn.
  • The link on line 90 of .module should be passed through the l function.

It looks pretty close though, and its always good to see more extensions to commerce!

jrviorato’s picture

Issue summary: View changes

Change the git clone repository to the anonymus url. From vmunozp@git.drupal.org:sandbox/vmunozp/1643648.git to http://git.drupal.org/sandbox/vmunozp/1643648.git

jrviorato’s picture

Thank you rlmumford,

I decided to apply the version 7.x-1.x for a full project because it is the stable one. I would love both version to be reviewed. But version 7.x-2.x needs a lot much more work.

About your review, i did every thing that you said.

  • Remove ", development" from tha .info file
  • Change docblock form mercado_pago_payment_menu
  • I translate in to English all strings wrapped in t() and also the ones in $transaction->message. And move them to a es.po file
  • I passed the link to l() function, just like it is suggested in http://drupal.org/node/322774

And finally, I hope i can review your module soon in return.

jrviorato’s picture

Status: Needs work » Needs review

I forgot to change the status to needs review

jrviorato’s picture

Priority: Normal » Major

Changing priority. I have been awaiting for reviewers for more then 2 weeks.

Gaelan’s picture

Status: Needs review » Needs work

Ventral review is reporting an error again: http://ventral.org/pareview/httpgitdrupalorgsandboxvmunozp1643648git

Manual review

Line 91: I think it would be better to use l() here.

Lines 189-192: The last closing paren should be on a new line, and the rest of this section should be indented by two more spaces.

I think it would be possible to fake a payment by sending a POST request to the IPN URL.

Translation files are no longer included with the module; they are handled on translate.drupal.org.

Gaelan’s picture

Priority: Major » Normal
jrviorato’s picture

Sorry for not attending your review, a have been busy this past weeks.

Well, despite that your review is short, it is making me work a lot.

  1. About your comment on translation files. I don't know how to add my translation file to translate.drupal.org. I have been reading the documentation and I didn't find out. I suppose, I can simply remove the translation file from the module, but i don't know where to put it after that.
  2. About the possibility of fake IPN's, your are right. It is possible, in fact, I did my own IPN's for testing. This is because at the time of the developing, MercadoPago did not have testing options. Now a days, it is possible to make some testing.
    In order to verify the authenticity of the IPN, I should compare the information sent by the IPN with the one on the servers of MercadoPago; meaning, made a POST with the account information to their servers asking for the actual information. But in terms of Drupal Commerce, there are some complications to do that. I should extract from the IPN the payment method instance id used to create the payment. I checked PayPal module to understand how they did it and it is a nice solution.

So, it will take me a couple of weeks to do the work needed. I just want to keep you posted.

And, thanks for the review.

jrviorato’s picture

Status: Needs work » Needs review

Finally it is done.

I will answer one by one your suggestions.

Suggestion 1

Line 91: I think it would be better to use l() here.

rlmumford at comment-7272690 also suggested the same. But I can't find that suggestion on any part of the Drupal documentation. In fact, in Dynamic or static links and HTML in translatable strings you can find an opposite suggestion, and also on the core modules you can found that link's are been handled just like I did. For example, on search.module line 91:

<?php
 $output .= '<p>' . t('The Search module provides the ability to index and search for content by exact keywords, and for users by username or e-mail. For more information, see the online handbook entry for <a href="@search-module">Search module</a>.', array('@search-module' => 'http://drupal.org/documentation/modules/search/', '@search' => url('search'))) . '</p>';
?>

On the other hand, I notice some complains about HTML on translation strings. But I don't remember where.

Suggestion 2

Lines 189-192: The last closing paren should be on a new line, and the rest of this section should be indented by two more spaces.

Done, just like you suggested.

Suggestion 3

I think it would be possible to fake a payment by sending a POST request to the IPN URL.

This gave me a lot of trouble but I finally nailed it. It wasn't so simple as just make a POST to the MercadoPago Server to verify the information, because it was needed to recall the Payment Method Instance Id. I solve this by using the extra parameter accepted by Mercado Pago Server and in case of missing that parameter, I use the default Instance Id.

Suggestion 4

Translation files are no longer included with the module; they are handled on translate.drupal.org.

Ok, I get it. But I don't like too much the idea because, in my understanding, translate.drupal.org does not handle translations for sand projects. So, while my project still on review for promotion, there will be no translation file easily available. And my problem with that, is that all the user of this module are from Latin America, and translation is absolutely required. But, I did remove it as you suggested, in the hope that it will be promoted.

Thank you for taking your time to review my module and to read this long comment.

kscheirer’s picture

Status: Needs review » Needs work

There is a typo in your README, "REQUERIMENTS" should be "REQUIREMENTS". In the 7.x-2.x README "tipically" should be "typically", "instalation of" should be "installation".

You mentioned the 7.x-1.x branch is what you would like to have reviewed. So I will just mention that ventral find lots of issues with the 7.x-2.x branch: http://ventral.org/pareview/httpgitdrupalorgsandboxvmunozp1643648git-7x-2x. Also, in mercado_pago_payment.info, you don't need to list files[] = mercado_pago_payment.module.

Do both the 1.x and 2.x branches have the additional security you added in #9?

I'm not sure what the translation standard is, but since this payment method seems to be exclusive to predominantly spanish speaking countries I think it's fine.

Setting to needs work for the security question, otherwise this is RTBC from me.

----
Top Shelf Modules - Enterprise modules from the community for the community.

jrviorato’s picture

Status: Needs work » Needs review

Hi kscheirer,

I corrected the typos that you mention. I used your comment as an excuse to correct the big list of ventral issues for the 7.x-2.x branch.

For the security question, let me explain you first the difference between 7.x-1.x and 7.x-2.x. There are two version of MercadoPago API, lets call them 1.0 and 2.0. Version 7.x-1.x of my module use 1.0 version, and version 7.x-2.x can use both versions. So, after reading your comment, I realized that it got no sense to keep both versions on 7.x-2.x of the module, it is more natural and simple to work with only one version per module branch.

So, i remove the compatibility for Mercado API 1.0 on the module branch 7.x-2.x; after this, the security implementation on #9 no longer applies for 7.x-2.x branch. This is because 7.x-2.x works in a different way; Mercado Pago IPN 2.0 notifications does not post the payment status, and a post back to Mercado Server's is always required.

Thank you for reviewing the module.

kscheirer’s picture

Status: Needs review » Reviewed & tested by the community

Sounds good to me, thanks for the explanation, setting to RTBC.

If you're wondering what further action would help on your part, nothing is required, but the best thing you can do is get a Review Bonus by reviewing other applications. That will get you to the top of the list of projects to get reviewed (and hopefully approved).

----
Top Shelf Modules - Enterprise modules from the community for the community.

kscheirer’s picture

Issue summary: View changes

Accidentally erease the branch instrucction from clone repository

kscheirer’s picture

Status: Reviewed & tested by the community » Fixed

Code still looks good, consider supporting the Payment module to support Ubercart, Webform, and Commerce all together.

Thanks for your contribution, jrviorato!

I updated your account to let you 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 get 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.

----
Top Shelf Modules - Crafted, Curated, Contributed.

Status: Fixed » Closed (fixed)

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

Anonymous’s picture

Issue summary: View changes

Added a review to other project