Hace unos dias, buscando cómo implementar una funcionalidad que necesitaba en un sitio de comercio electrónico me topé con el módulo Payment - http://drupal.org/project/payment. Este módulo que no conocía, propone una idea/solución bastante interesante; eliminar la dependencia que existe entre la implementación de los módulos de sistema de pago (Paypal, authorize.net, 2checkout, etc.) y el módulo de e-commerce que estemos utilizando (Drupal Commerce, Ubercart, Basic cart, etc.).
Actualmente, existen módulos del mismo sistema de pago para cada uno de los módulos de e-commerce que hay en Drupal y algunos de ellos no están implementados para todos los módulos de e-commerce, como vemos en el siguiente esquema:
Soy de los que cree en la reutilización de código y al igual que Xano, el creador de este módulo, me parece una pena que en este momento se esté realizado esfuerzo doble para construir y mantener diferentes módulos cási idénticos en los que prácticamente sólo cambia la forma en cómo comunicarse con el módulo de e-commerce que se esté utilizando, al final, terminamos con más código que mantener que se traduce en más bugs que resolver.
Con Payment, podemos entonces tener algo como: Menos módulos que mantener, una sola interfaz, Drupaleros felices :). En las próximas semanas tengo que implementar un sistema de pago de mi país y de seguro lo haré sobre Payment, los invito a que comiencen a utilizar el módulo para sus nuevas implementaciones o a migrar los sistemas de pago que ya manejan.