Re: Authorize.net API with Card on File transactions support thread...
Quote:
Originally Posted by
apollowilcox
So, we've been testing this mod a bit. We didn't even realize that the plug-in included one feature that it going to be super helpful.
With this plug-in, we can capture a partial amount and it will create a new authorization for the balance. The balance is displayed on the order-admin and can be easily captured later after the backorder ships. Super cool. Thanks Carl! We would have asked for this long ago but never even thought it possible.:D
Quote:
Originally Posted by
apollowilcox
Okay... that's good for me to understand. It seems a bit misleading to the customer. If it were me, I would expect that I truly deleted the card from existence with this vendor/ website.
Any thoughts or advice on the other issue: where the card is being stored despite the customer unchecking the "save this card" checkbox?
This is a complex plug-in. Amazing how well it works with Authorize CIM.
matt,
perhaps you can see the contradictions in the things that you say here. perhaps not....
there is a reason why everything is done the way it is done.
with regards to thoughts or advice, if you want to change the way the plugin operates, you are free to do so. if you would like me to do it, feel free to PM me.
best.
Re: Authorize.net API with Card on File transactions support thread...
v2.3.2 now ready for downloading!
reminder that php 7.0 is required for this version.
if your server is running less than php7.0, time to upgrade!
more fixes with regards to mysql strict mode; running under php 8.1; new notifier; and further bug fixes. also removes all references to the deprecated (under php 8.1) strftime method.
enjoy!
nbl.
Re: Authorize.net API with Card on File transactions support thread...
In getTransactionDetails(), I'm seeing logs on includes/modules/payment/authorizenet_cim.php" line 1263
PHP Fatal error: Uncaught Error: Call to a member function getMessages() on null
Should the two lines
$errorMessages = $response->getMessages()->getMessage();
$logData .= "Response : " . $errorMessages[0]->getCode() . " " . $errorMessages[0]->getText() . "\n";
be wrapped in a check for ($response != null)?
Re: Authorize.net API with Card on File transactions support thread...
Quote:
Originally Posted by
swguy
In getTransactionDetails(), I'm seeing logs on includes/modules/payment/authorizenet_cim.php" line 1263
PHP Fatal error: Uncaught Error: Call to a member function getMessages() on null
Should the two lines
$errorMessages = $response->getMessages()->getMessage();
$logData .= "Response : " . $errorMessages[0]->getCode() . " " . $errorMessages[0]->getText() . "\n";
be wrapped in a check for ($response != null)?
@swguy,
i do not think so. i would look into why the $response is null. that method seems real simple to me:
- it creates a request.
- it populates the request with the merchant credentials.
- it populates the transaction id.
- it then makes a request via the controller.
i have not been able to get a $response of null, despite trying. (and i do see this line, where that same conditional seems superfluous):
https://github.com/proseLA/authorize..._cim.php#L1256
if i populate $transactionId with a random numeric, i still get a response. the message is:
The record cannot be found.
if i populate $transactionId with null or a character string, i get the following message:
The element 'getTransactionDetailsRequest' in namespace 'AnetApi/xml/v1/schema/AnetApiSchema.xsd' has incomplete content. List of possible elements expected: 'refId, transId' in namespace 'AnetApi/xml/v1/schema/AnetApiSchema.xsd'.
something seems much further off in the implementation to be getting a null value as the $response.
is this a new install? are you sure the merchant credentials are correct?
Re: Authorize.net API with Card on File transactions support thread...
For the setting Validation Mode (liveMode validates cardInfo) what should it be set to? None or Livemode
I set it to Livemode initially but that generates two transitions per sale one the actual sale and another which is voided with he following statement:
"Test transaction for ValidateCustomerPaymentProfile."
Re: Authorize.net API with Card on File transactions support thread...
Quote:
Originally Posted by
marcopolo
For the setting Validation Mode (liveMode validates cardInfo) what should it be set to? None or Livemode
I set it to Livemode initially but that generates two transitions per sale one the actual sale and another which is voided with he following statement:
"Test transaction for ValidateCustomerPaymentProfile."
hi marco,
you can read about it here:
https://tinyurl.com/24lbescc
so what you are seeing is correct.
copied from that page:
Specifies how the payment gateway will validate the customer's card prior to creating the profile. Either liveMode or testMode. The field defaults to liveMode.
liveMode generates a transaction to the processor in the amount of 0.01 or 0.00. If successful, the transaction is immediately voided. Visa authorizations in liveMode use 0.00 for all processors. All other credit card types use 0.01.
Standard gateway and merchant account fees may apply to the authorization transactions. For Visa transactions using 0.00, the billTo address and billTo postal code fields are required.
testMode performs field validation only. All fields are validated. However, fields with unrestricted field definitions, such as telephone number, do not generate errors.
If you set this parameter to testMode, a 1.00 test transaction is submitted using the Luhn mod 10 algorithm to verify that the credit card number is in a valid format. This test transaction is not authorized at the processor, and does not appear on the customer's card statement, but it will generate and send a transaction receipt email to the merchant.
best.
Re: Authorize.net API with Card on File transactions support thread...
Found a bug:
If a credit card that was previously used to make an order and customer choose NOT to save it then looking at the table customers_cc the enable field is N which hides the card from the customer update card screen and having it available as a saved card for future COF orders.
Now if the customer on a future order uses the same card but this time chooses to save it then the table customers_cc enabled field is not being updated to Y from N.
If you ADD the card from the update card page that does work.
Re: Authorize.net API with Card on File transactions support thread...
Another Bug:
If you try to update the billing address from the card_update page it does not change it on Authorize.net CIM online profile. You can update the credit card expiration date from card_update page just the address is not updating. Also when adding a new address from the card_update the company name is not being populated on Authorize.net CIM online profile.
Re: Authorize.net API with Card on File transactions support thread...
i will look at it when i can...
best.
Re: Authorize.net API with Card on File transactions support thread...
Quote:
Originally Posted by
carlwhat
i will look at it when i can...
best.
Great thank you. Below fixes the one issue where the company name is not being populated when adding a new address from the update_card page.
Around line 603 added the line that is in green below:
$return['company'] = $_POST['company'];
PHP Code:
if ($_POST['address_selection'] == 'new') {
$this->addNewAddress();
$return['firstname'] = $_POST['firstname'];
$return['lastname'] = $_POST['lastname'];
$return['company'] = $_POST['company'];
$return['street_address'] = $_POST['street_address'];
$return['city'] = $_POST['city'];
if (empty($_POST['zone_id'])) {
$return['state'] = $_POST['state'];
} else {
$return['state'] = zen_get_zone_name($_POST['zone_country_id'], $_POST['zone_id'],
($_POST['state'] ?? ''));
}
$return['postcode'] = $_POST['postcode'];
$return['country']['title'] = zen_get_country_name($_POST['zone_country_id']);