helcim payments by mxWorks.cc
this will be the new support forum for a new payment module from helcim by mxWorks.cc.
this module reduces PCI scope while allowing customers to use card on file transactions.
it is ONLY available for US and Canadian merchants.
please post all support questions here.
module should be available once approved by the ZC admins.
it is a totally encapsulated plugin; although it does require the latest version of admin -> orders.php from the zen-cart github repo (although that file is included in the download).
it has only been tested on v2.1.0; with plans to fully support it going forward (assuming there is enough interest in its use).
a testing API token is provided for store owners to test on their development/staging severs without the need to create a new account. although creating your own account will give you a more complete experience.
Re: helcim payments by mxWorks.cc
Very exciting! Thanks for this contribution; it has been approved.
For clarification: Does this module have less PCI risk than Square Webpay, or is it the same?
This might be a new area for documentation.
Re: helcim payments by mxWorks.cc
Quote:
Originally Posted by
swguy
Very exciting! Thanks for this contribution; it has been approved.
For clarification: Does this module have less PCI risk than Square Webpay, or is it the same?
This might be a new area for documentation.
pci is all about scope, and reducing the number of systems that touch sensitive cardholder data.
with regards to the methodology of the payment processor providing an iframe where the consumer then enters their cc information there and it not touching the zc store, both payment modules operate in the same way.
as to which implementation has less risk, i am truly not in a position to say.
i am a fan of both implementations as they both minimize scope more than some of the other payment modules at which i have looked.
Re: helcim payments by mxWorks.cc
minor bug on install found.
v1.0.1 submitted.
Re: helcim payments by mxWorks.cc
> pci is all about scope ...
This is a great framing, thank you.
> v1.0.1 submitted.
Update is now approved.
Re: helcim payments by mxWorks.cc
I attempted the 1.5.8a install and there's nothing output to the error logs. If I click 'Install' on the plugin page it just reloads the page with no error output to the page or logs. I've gone over the changes in the orders.php file and that should be easy enough to fix but I need to figure out why the installer is failing first and then I can start to figure out how to get this to work for 1.5.8a. I'll be back if I don't find any glaring issues with the sql queries.
Re: helcim payments by mxWorks.cc
Quote:
Originally Posted by
clam_man
I attempted the 1.5.8a install and there's nothing output to the error logs. If I click 'Install' on the plugin page it just reloads the page with no error output to the page or logs. I've gone over the changes in the orders.php file and that should be easy enough to fix but I need to figure out why the installer is failing first and then I can start to figure out how to get this to work for 1.5.8a. I'll be back if I don't find any glaring issues with the sql queries.
the installer will never work in a v158a environment. it makes use of the some methods (specifically addConfigurationKey) which is not available in v158.
as to why you are not getting logs, my guess is that php error logs are getting created, but the zc override of those log errors has not loaded at that time.
i would look at:
zc_plugins/mxWorksHelcim/1.0.1/Installer/ScriptedInstaller.php
and specifically at the insert constants method and rewrite that and see if it works.
all we are doing are adding some constants there, and there are plenty of examples out there as to how add those config values to the configuration table. look at one of my other payment modules, or any plugin that adds values to the configuration table.
i would think that the creation of the helcim tables will work just fine as those methods were available in v158a.
good luck.
Re: helcim payments by mxWorks.cc
in thinking about this further, even after you get the installer to work, the encapsulation in v158 will, in all likelihood, not work.
to get this to work in v158a, you will need to de-encapsulate all of the various scripts.
as far as the code for installing goes, you can use this as a model to replace the aforementioned script. ensure that all of the config values are included from the released version as they may not all be included here:
PHP Code:
global $db;
if (!defined('MODULE_PAYMENT_HELCIM_STATUS')) {
$db->Execute("INSERT INTO " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) VALUES ('Enable Helcim Payments', 'MODULE_PAYMENT_HELCIM_STATUS', 'True', 'Do you want to accept Helcim payments?', '6', '0', 'zen_cfg_select_option(array(\'True\', \'False\'), ', now())");
}
if (!defined('MODULE_PAYMENT_HELCIM_API_TOKEN')) {
$db->Execute("INSERT INTO " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added, use_function) VALUES ('Application ID', 'MODULE_PAYMENT_HELCIM_API_TOKEN', '', 'Enter the API Token from your Dashboard. (All Tools; Integrations; API Access)', '6', '0', now(), 'zen_cfg_password_display')");
}
if (!defined('MODULE_PAYMENT_HELCIM_TRANSACTION_TYPE')) {
$db->Execute("INSERT INTO " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) VALUES ('Transaction Type', 'MODULE_PAYMENT_HELCIM_TRANSACTION_TYPE', 'purchase', 'Should payments be [authorized] only, or be completed [purchases]?<br>NOTE: If you use [authorize] then you must manually capture each payment within 6 days or it will be voided automatically.', '6', '0', 'zen_cfg_select_option(array(\'authorize\', \'purchase\'), ', now())");
}
if (!defined('MODULE_PAYMENT_HELCIM_SORT_ORDER')) {
$db->Execute("INSERT INTO " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) VALUES ('<hr>Sort order of display.', 'MODULE_PAYMENT_HELCIM_SORT_ORDER', '0', 'Sort order of displaying payment options to the customer. Lowest is displayed first.', '6', '0', now())");
}
if (!defined('MODULE_PAYMENT_HELCIM_ZONE')) {
$db->Execute("INSERT INTO " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) VALUES ('Payment Zone', 'MODULE_PAYMENT_HELCIM_ZONE', '0', 'If a zone is selected, only enable this payment method for that zone.', '6', '2', 'zen_get_zone_class_title', 'zen_cfg_pull_down_zone_classes(', now())");
}
if (!defined('MODULE_PAYMENT_HELCIM_ORDER_STATUS_ID')) {
$db->Execute("INSERT INTO " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, use_function, date_added) VALUES ('Set Order Status', 'MODULE_PAYMENT_HELCIM_ORDER_STATUS_ID', '2', 'Set the status of Paid orders made with this payment module to this value', '6', '0', 'zen_cfg_pull_down_order_statuses(', 'zen_get_order_status_name', now())");
}
if (!defined('MODULE_PAYMENT_HELCIM_REFUNDED_ORDER_STATUS_ID')) {
$db->Execute("INSERT INTO " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, use_function, date_added) VALUES ('Set Refunded Order Status', 'MODULE_PAYMENT_HELCIM_REFUNDED_ORDER_STATUS_ID', '1', 'Set the status of refunded orders to this value', '6', '0', 'zen_cfg_pull_down_order_statuses(', 'zen_get_order_status_name', now())");
}
if (!defined('MODULE_PAYMENT_HELCIM_LOGGING')) {
$db->Execute("INSERT INTO " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) VALUES ('Log Mode', 'MODULE_PAYMENT_HELCIM_LOGGING', 'Log on Failures', 'Would you like to enable debug mode? All transactions will be stored in the database, and/or emailed to store owner.', '6', '0', 'zen_cfg_select_option(array(\'Log Always\', \'Log on Failures\', \'Log Always and Email on Failures\', \'Log on Failures and Email on Failures\'), ', now())");
}
if (!defined('MODULE_PAYMENT_HELCIM_P_TOKEN')) {
$db->Execute("INSERT INTO " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) VALUES ('p Token', 'MODULE_PAYMENT_HELCIM_P_TOKEN', 'd574f1aca93a65', 'P Token; DO NOT CHANGE!', '6', '155', now())");
define('MODULE_PAYMENT_HELCIM_P_TOKEN', 'd574f1aca93a65');
}
best.
Re: helcim payments by mxWorks.cc
Awesome work on this payment method. Working great on my zen-cart. By any chance do you have a way to apply a ACH transaction to the checkout as well? This would be great for wholesale customers... I wouldn't use it for retail customers.
Thanks!
Re: helcim payments by mxWorks.cc
Quote:
Originally Posted by
larsaquatics
Awesome work on this payment method. Working great on my zen-cart. By any chance do you have a way to apply a ACH transaction to the checkout as well? This would be great for wholesale customers... I wouldn't use it for retail customers.
Thanks!
hey lars,
that's great that you like it and hopefully are using it! i put a bunch of effort into making it work and as seemless as possible with the ZC standard 3 page checkout as well as one page checkout (OPC).
as you are aware, it it a totally encapsulated plugin, which while great, unfortunately limits its use to store owners running zc v210. i am thinking about a new version that is not encapsulated for those store owners running v157 or v158. although i am not sure about it at this time. (perhaps it will encourage other store owners to update to the latest ZC version.)
currently i have not coded ACH transfers, although it does seem that helcim offers that transaction type.
i have a number of things on my plate right now; but if enough people start using this module (or someone wants to pay for the development of ACH transfers) i will add that to its functionality in a future release.
best.