Re: Adding Braintree payment module
ian,
are u using the latest version? or have you modified some of the code? my line numbers do not match to yours.
in the __ construct function, you can try changing a couple of lines to:
PHP Code:
$this->enabled = defined('MODULE_PAYMENT_BRAINTREE_STATUS') && (MODULE_PAYMENT_BRAINTREE_STATUS == 'True');
// Set the title & description text based on the mode we're in
if ($this->enabled && IS_ADMIN_FLAG === true) {
that may help you out.
Re: Adding Braintree payment module
Quote:
Originally Posted by
carlwhat
ian,
are u using the latest version? or have you modified some of the code? my line numbers do not match to yours.
in the __ construct function, you can try changing a couple of lines to:
PHP Code:
$this->enabled = defined('MODULE_PAYMENT_BRAINTREE_STATUS') && (MODULE_PAYMENT_BRAINTREE_STATUS == 'True');
// Set the title & description text based on the mode we're in
if ($this->enabled && IS_ADMIN_FLAG === true) {
that may help you out.
Thanks Carl
I downloaded the latest API plugin from Zen Cart . This is the code I have that is a problem as you can see the MODULE_PAYMENT_BRAINTREE_STATUS is already there as you suggested. Thank you
PHP Code:
function __construct() {
include_once(zen_get_file_directory(DIR_FS_CATALOG . DIR_WS_LANGUAGES . $_SESSION['language'] . '/modules/payment/', 'braintree_api.php', 'false')); global $order;
$this->code = 'braintree_api'; $this->title = MODULE_PAYMENT_BRAINTREE_TEXT_ADMIN_TITLE; $this->codeVersion = (defined('MODULE_PAYMENT_BRAINTREE_VERSION')) ? MODULE_PAYMENT_BRAINTREE_VERSION : false; $this->enabled = (defined('MODULE_PAYMENT_BRAINTREE_STATUS') && MODULE_PAYMENT_BRAINTREE_STATUS == 'True');
// Set the title & description text based on the mode we're in if (IS_ADMIN_FLAG === true) { if (file_exists(DIR_FS_CATALOG . DIR_WS_FUNCTIONS . 'plugin_support.php')) { require_once(DIR_FS_CATALOG . DIR_WS_FUNCTIONS . 'plugin_support.php'); $new_version_details = plugin_version_check_for_updates(1781, MODULE_PAYMENT_BRAINTREE_VERSION); if ($new_version_details !== FALSE) { $this->title .= '<span class="alert">' . ' - NOTE: A NEW VERSION OF THIS PLUGIN IS AVAILABLE. <a href="' . $new_version_details['link'] . '" target="_blank">[Details]</a>' . '</span>'; } } $this->description = sprintf(MODULE_PAYMENT_BRAINTREE_TEXT_ADMIN_DESCRIPTION, ($this->codeVersion) ? ' (rev' . $this->codeVersion . ')': ''); $this->title = MODULE_PAYMENT_BRAINTREE_TEXT_ADMIN_TITLE;
if ($this->enabled) {
if (MODULE_PAYMENT_BRAINTREE_SERVER == 'sandbox') $this->title .= '<strong><span class="alert"> (sandbox active)</span></strong>'; if (MODULE_PAYMENT_BRAINTREE_DEBUGGING == 'Log File' || MODULE_PAYMENT_BRAINTREE_DEBUGGING == 'Log and Email') $this->title .= '<strong> (Debug)</strong>'; if (!function_exists('curl_init')) $this->title .= '<strong><span class="alert"> CURL NOT FOUND. Cannot Use.</span></strong>'; } } else {
$this->description = MODULE_PAYMENT_BRAINTREE_TEXT_DESCRIPTION; $this->title = MODULE_PAYMENT_BRAINTREE_TEXT_TITLE; //cc }
if ((!defined('BRAINTREE_OVERRIDE_CURL_WARNING') || (defined('BRAINTREE_OVERRIDE_CURL_WARNING') && BRAINTREE_OVERRIDE_CURL_WARNING != 'True')) && !function_exists('curl_init')) $this->enabled = false;
$this->enableDebugging = (MODULE_PAYMENT_BRAINTREE_DEBUGGING == 'Log File' || MODULE_PAYMENT_BRAINTREE_DEBUGGING == 'Log and Email'); $this->emailAlerts = (MODULE_PAYMENT_BRAINTREE_DEBUGGING == 'Log and Email'); $this->sort_order = (defined('MODULE_PAYMENT_BRAINTREE_SORT_ORDER')) ? MODULE_PAYMENT_BRAINTREE_SORT_ORDER : null; $this->order_pending_status = (defined('MODULE_PAYMENT_BRAINTREE_ORDER_PENDING_STATUS_ID')) && MODULE_PAYMENT_BRAINTREE_ORDER_PENDING_STATUS_ID;
if (defined('MODULE_PAYMENT_BRAINTREE_ORDER_STATUS_ID') && (int) MODULE_PAYMENT_BRAINTREE_ORDER_STATUS_ID > 0) { $this->order_status = MODULE_PAYMENT_BRAINTREE_ORDER_STATUS_ID; }
$this->zone = (defined('MODULE_PAYMENT_BRAINTREE_ZONE')) && (int) MODULE_PAYMENT_BRAINTREE_ZONE;
if (is_object($order)) $this->update_status();
if (!(PROJECT_VERSION_MAJOR > 1 || (PROJECT_VERSION_MAJOR == 1 && substr(PROJECT_VERSION_MINOR, 0, 3) >= 5))) $this->enabled = false;
Re: Adding Braintree payment module
Its the MODULE_PAYMENT_BRAINTREE_DEBUGGING and MODULE_PAYMENT_BRAINTREE_VERSION that are showing a problem $new_version_details = plugin_version_check_for_updates(1781, MODULE_PAYMENT_BRAINTREE_VERSION)
even though I have this before
PHP Code:
$this->codeVersion = (defined('MODULE_PAYMENT_BRAINTREE_VERSION')) ? MODULE_PAYMENT_BRAINTREE_VERSION : false;
Just not too sure how fix undefined constant, just want to stop the PHP errors.
Thanks
Re: Adding Braintree payment module
Quote:
Originally Posted by
ianhg
Its the MODULE_PAYMENT_BRAINTREE_DEBUGGING and MODULE_PAYMENT_BRAINTREE_VERSION that are showing a problem $new_version_details = plugin_version_check_for_updates(1781, MODULE_PAYMENT_BRAINTREE_VERSION)
even though I have this before
PHP Code:
$this->codeVersion = (defined('MODULE_PAYMENT_BRAINTREE_VERSION')) ? MODULE_PAYMENT_BRAINTREE_VERSION : false;
Just not too sure how fix undefined constant, just want to stop the PHP errors.
Thanks
ian,
a few things:- when posting your code, try and keep the line feed or carriage returns. your post a couple above is a little hard to read.
- the errors that you are seeing are warnings and should not affect processing.
- warnings can be turned off by going to configuration -> logging.
- these warnings only occur when you are first installing the module and are of little consequence.
- i can not vouch for how the rest of the module works.
- if you want the warnings to disappear, you can replace the whole construct function to the code i have listed below. this has worked in my limited testing.
- hope that helps!
PHP Code:
function __construct() {
include_once(zen_get_file_directory(DIR_FS_CATALOG . DIR_WS_LANGUAGES . $_SESSION['language'] . '/modules/payment/', 'braintree_api.php', 'false'));
global $order;
$this->code = 'braintree_api';
$this->title = MODULE_PAYMENT_BRAINTREE_TEXT_ADMIN_TITLE;
$this->codeVersion = (defined('MODULE_PAYMENT_BRAINTREE_VERSION')) ? MODULE_PAYMENT_BRAINTREE_VERSION : false;
$this->enabled = defined('MODULE_PAYMENT_BRAINTREE_STATUS') && (MODULE_PAYMENT_BRAINTREE_STATUS == 'True');
// Set the title & description text based on the mode we're in
if ($this->enabled && IS_ADMIN_FLAG === true) {
if (file_exists(DIR_FS_CATALOG . DIR_WS_FUNCTIONS . 'plugin_support.php')) {
require_once(DIR_FS_CATALOG . DIR_WS_FUNCTIONS . 'plugin_support.php');
$new_version_details = plugin_version_check_for_updates(1781, MODULE_PAYMENT_BRAINTREE_VERSION);
if ($new_version_details !== FALSE) {
$this->title .= '<span class="alert">' . ' - NOTE: A NEW VERSION OF THIS PLUGIN IS AVAILABLE. <a href="' . $new_version_details['link'] . '" target="_blank">[Details]</a>' . '</span>';
}
}
$this->description = sprintf(MODULE_PAYMENT_BRAINTREE_TEXT_ADMIN_DESCRIPTION, ($this->codeVersion) ? ' (rev' . $this->codeVersion . ')': '');
$this->title = MODULE_PAYMENT_BRAINTREE_TEXT_ADMIN_TITLE;
if ($this->enabled) {
if (MODULE_PAYMENT_BRAINTREE_SERVER == 'sandbox')
$this->title .= '<strong><span class="alert"> (sandbox active)</span></strong>';
if (MODULE_PAYMENT_BRAINTREE_DEBUGGING == 'Log File' || MODULE_PAYMENT_BRAINTREE_DEBUGGING == 'Log and Email')
$this->title .= '<strong> (Debug)</strong>';
if (!function_exists('curl_init'))
$this->title .= '<strong><span class="alert"> CURL NOT FOUND. Cannot Use.</span></strong>';
}
} else {
$this->description = MODULE_PAYMENT_BRAINTREE_TEXT_DESCRIPTION;
$this->title = MODULE_PAYMENT_BRAINTREE_TEXT_TITLE; //cc
}
if ((!defined('BRAINTREE_OVERRIDE_CURL_WARNING') || (defined('BRAINTREE_OVERRIDE_CURL_WARNING') && BRAINTREE_OVERRIDE_CURL_WARNING != 'True')) && !function_exists('curl_init'))
$this->enabled = false;
if (empty($this->enabled) || !$this->enabled) {
return;
}
$this->enableDebugging = (MODULE_PAYMENT_BRAINTREE_DEBUGGING == 'Log File' || MODULE_PAYMENT_BRAINTREE_DEBUGGING == 'Log and Email');
$this->emailAlerts = (MODULE_PAYMENT_BRAINTREE_DEBUGGING == 'Log and Email');
$this->sort_order = MODULE_PAYMENT_BRAINTREE_SORT_ORDER;
$this->order_pending_status = MODULE_PAYMENT_BRAINTREE_ORDER_PENDING_STATUS_ID;
if ((int) MODULE_PAYMENT_BRAINTREE_ORDER_STATUS_ID > 0) {
$this->order_status = MODULE_PAYMENT_BRAINTREE_ORDER_STATUS_ID;
}
$this->zone = (int) MODULE_PAYMENT_BRAINTREE_ZONE;
if (is_object($order))
$this->update_status();
if (!(PROJECT_VERSION_MAJOR > 1 || (PROJECT_VERSION_MAJOR == 1 && substr(PROJECT_VERSION_MINOR, 0, 3) >= 5)))
$this->enabled = false;
// debug setup
if (!defined('DIR_FS_LOGS')) {
$log_dir = 'cache/';
} else {
$log_dir = DIR_FS_LOGS;
}
if (!@is_writable($log_dir))
$log_dir = DIR_FS_CATALOG . $log_dir;
if (!@is_writable($log_dir))
$log_dir = DIR_FS_SQL_CACHE;
// Regular mode:
if ($this->enableDebugging)
$this->_logLevel = 2;
// DEV MODE:
if (defined('BRAINTREE_DEV_MODE') && BRAINTREE_DEV_MODE == 'true')
$this->_logLevel = 3;
}
Re: Adding Braintree payment module
Note: while the difference may seem moot to you, "warnings" are different from "errors". Warnings are giving a heads-up that something might be wrong or might be treated more severely in the future. Errors mean something is broken and things probably aren't working.
Without having used or tested it, I'm thinking you can probably solve all of this with fewer changes. Most of those "not defined" situations are because the module hasn't been "installed" yet. After clicking "Install", most of those will go away.
Setting the $enabled to false by default, and then exiting ("early return") if the critical STATUS is not defined, should suffice:
https://share.getcloudapp.com/mXu5KRz1
Re: Adding Braintree payment module
Quote:
Originally Posted by
DrByte
Note: while the difference may seem moot to you, "warnings" are different from "errors". Warnings are giving a heads-up that something might be wrong or might be treated more severely in the future. Errors mean something is broken and things probably aren't working.
Thank you I will try to use the correct terminology ,appreciate the help.
Re: Adding Braintree payment module
Quote:
Originally Posted by
carlwhat
ian,
a few things:
- when posting your code, try and keep the line feed or carriage returns. your post a couple above is a little hard to read.
- the errors that you are seeing are warnings and should not affect processing.
- warnings can be turned off by going to configuration -> logging.
- these warnings only occur when you are first installing the module and are of little consequence.
- i can not vouch for how the rest of the module works.
- if you want the warnings to disappear, you can replace the whole construct function to the code i have listed below. this has worked in my limited testing.
- hope that helps!
PHP Code:
function __construct() {
include_once(zen_get_file_directory(DIR_FS_CATALOG . DIR_WS_LANGUAGES . $_SESSION['language'] . '/modules/payment/', 'braintree_api.php', 'false'));
global $order;
$this->code = 'braintree_api';
$this->title = MODULE_PAYMENT_BRAINTREE_TEXT_ADMIN_TITLE;
$this->codeVersion = (defined('MODULE_PAYMENT_BRAINTREE_VERSION')) ? MODULE_PAYMENT_BRAINTREE_VERSION : false;
$this->enabled = defined('MODULE_PAYMENT_BRAINTREE_STATUS') && (MODULE_PAYMENT_BRAINTREE_STATUS == 'True');
// Set the title & description text based on the mode we're in
if ($this->enabled && IS_ADMIN_FLAG === true) {
if (file_exists(DIR_FS_CATALOG . DIR_WS_FUNCTIONS . 'plugin_support.php')) {
require_once(DIR_FS_CATALOG . DIR_WS_FUNCTIONS . 'plugin_support.php');
$new_version_details = plugin_version_check_for_updates(1781, MODULE_PAYMENT_BRAINTREE_VERSION);
if ($new_version_details !== FALSE) {
$this->title .= '<span class="alert">' . ' - NOTE: A NEW VERSION OF THIS PLUGIN IS AVAILABLE. <a href="' . $new_version_details['link'] . '" target="_blank">[Details]</a>' . '</span>';
}
}
$this->description = sprintf(MODULE_PAYMENT_BRAINTREE_TEXT_ADMIN_DESCRIPTION, ($this->codeVersion) ? ' (rev' . $this->codeVersion . ')': '');
$this->title = MODULE_PAYMENT_BRAINTREE_TEXT_ADMIN_TITLE;
if ($this->enabled) {
if (MODULE_PAYMENT_BRAINTREE_SERVER == 'sandbox')
$this->title .= '<strong><span class="alert"> (sandbox active)</span></strong>';
if (MODULE_PAYMENT_BRAINTREE_DEBUGGING == 'Log File' || MODULE_PAYMENT_BRAINTREE_DEBUGGING == 'Log and Email')
$this->title .= '<strong> (Debug)</strong>';
if (!function_exists('curl_init'))
$this->title .= '<strong><span class="alert"> CURL NOT FOUND. Cannot Use.</span></strong>';
}
} else {
$this->description = MODULE_PAYMENT_BRAINTREE_TEXT_DESCRIPTION;
$this->title = MODULE_PAYMENT_BRAINTREE_TEXT_TITLE; //cc
}
if ((!defined('BRAINTREE_OVERRIDE_CURL_WARNING') || (defined('BRAINTREE_OVERRIDE_CURL_WARNING') && BRAINTREE_OVERRIDE_CURL_WARNING != 'True')) && !function_exists('curl_init'))
$this->enabled = false;
if (empty($this->enabled) || !$this->enabled) {
return;
}
$this->enableDebugging = (MODULE_PAYMENT_BRAINTREE_DEBUGGING == 'Log File' || MODULE_PAYMENT_BRAINTREE_DEBUGGING == 'Log and Email');
$this->emailAlerts = (MODULE_PAYMENT_BRAINTREE_DEBUGGING == 'Log and Email');
$this->sort_order = MODULE_PAYMENT_BRAINTREE_SORT_ORDER;
$this->order_pending_status = MODULE_PAYMENT_BRAINTREE_ORDER_PENDING_STATUS_ID;
if ((int) MODULE_PAYMENT_BRAINTREE_ORDER_STATUS_ID > 0) {
$this->order_status = MODULE_PAYMENT_BRAINTREE_ORDER_STATUS_ID;
}
$this->zone = (int) MODULE_PAYMENT_BRAINTREE_ZONE;
if (is_object($order))
$this->update_status();
if (!(PROJECT_VERSION_MAJOR > 1 || (PROJECT_VERSION_MAJOR == 1 && substr(PROJECT_VERSION_MINOR, 0, 3) >= 5)))
$this->enabled = false;
// debug setup
if (!defined('DIR_FS_LOGS')) {
$log_dir = 'cache/';
} else {
$log_dir = DIR_FS_LOGS;
}
if (!@is_writable($log_dir))
$log_dir = DIR_FS_CATALOG . $log_dir;
if (!@is_writable($log_dir))
$log_dir = DIR_FS_SQL_CACHE;
// Regular mode:
if ($this->enableDebugging)
$this->_logLevel = 2;
// DEV MODE:
if (defined('BRAINTREE_DEV_MODE') && BRAINTREE_DEV_MODE == 'true')
$this->_logLevel = 3;
}
Thank you Carl Appreciate the help and guide lines, much appreciated.
Re: Adding Braintree payment module
Numinix (the original author's of this plugin) have put out a new version here: https://bitbucket.org/numinix/braintree/src/master/
I mention it because the new version has a ton of changes (not much documentation on what those changes are for)
Couple notes:
- it will trigger some php warnings
- it will cause Console errors if you are not using the Braintree 3D Secure
- sandbox testing will cause a whitepage and an authentication error log (I did not take the time to debug)
- version number is not updated
Re: Adding Braintree payment module
Quote:
Originally Posted by
lindasdd
Numinix (the original author's of this plugin) have put out a new version here:
https://bitbucket.org/numinix/braintree/src/master/
I mention it because the new version has a ton of changes (not much documentation on what those changes are for)
Couple notes:
- it will trigger some php warnings
- it will cause Console errors if you are not using the Braintree 3D Secure
- sandbox testing will cause a whitepage and an authentication error log (I did not take the time to debug)
- version number is not updated
the comments that i posted here on numinix still apply:
https://www.zen-cart.com/showthread....66#post1374966
mind you, this is an open bitbucket repo, i'm not sure if it is released or what, so i am hesitant, but:
https://bitbucket.org/numinix/braint...intree_api.php
line 36 should be named __construct. am i wrong?
makes no sense to me.... else their testing is just non-existent....
best.
Re: Adding Braintree payment module
Quote:
Originally Posted by
carlwhat
I am not utilizing the Braintree version they put out for the reasons you mention (and other PHP fixes that are in the version I added to the plugin bank).
I mention the new version by the original author to provide as much info about the plugin as possible. Although I am using the plugin in a high volume Zen-Cart 1.5.7b store and don't know of issues, I am not an adept enough programmer to know if a change in 1.5.7 broke an aspect of the plugin (unless it totally breaks the plugin or throws an error log).