HI,

I installed a clean drupal site and opened a developer account on payeezy .

When I use the API Key, API Secret and Reporting Token on the README file, the sandbox trasanction goes through.

When I use settings from my account, the transaction fails. I have tries this with 2 accounts.

The only error on the logs is "Payment failed for order 2: Credit card payment declined:" .

Comments

mutuku created an issue. See original summary.

modomoinc’s picture

I am having the same issue...
- I setup a developer account on payeezy and firstdata
- in payezzy I created a demo merchant and filled out the form items needed from first data such as hmac key etyc... now the demo merchant was created as well as the keys in payeezy.
- in the payeezy module i inserted this new api key, api secret, and return token.

Result: Payment doesn't process, but if I put in the api test keys given by the module it processes.(but you can't see transaction data in first data)

The end result is we are wanting to see the transaction data in our demo first data account.

I called First Data support and asked what fields the module gave? He said it was missing a merchant key field.

xrBfAAmVt’s picture

I was having the same issue.

There's a major problem with how the numbers are treated in payeezy_gateway_for_ubercart.module

FIRST: Payeezy receives the amount in CENTS, however the extension is sending the numbers as they are and wrongly converting it to INT on line 175

Line 175:

$amountFormat = (int) uc_currency_format($amount, FALSE, FALSE, '.');

Line 175 FIX:

$amountFormat        = uc_currency_format($amount, FALSE, FALSE, '.');
$amountFormat        = round($amountFormat*100,0);

SECOND: The returned amount becomes inflated in the admin status because the CENTS are being formatted with uc_currency_format without converting back from CENTS.

Line 272:

$response_amount = uc_currency_format($amount);

Line 272 FIX:

$response_amount = uc_currency_format(number_format(($amount/100), 2, '.', ' '));

Line 311:

$response_amount = uc_currency_format($response['amount']);

Line 311 FIX:

$response_amount = uc_currency_format(number_format(($response['amount']/100), 2, '.', ' '));

grabby’s picture

@ xrBfAAmVt you are absolutely correct on the number problem. I tried your suggested edits and while they did correct the amounts sent to the Payeezy portal I got a

Notice: A non well formed numeric value encountered in uc_currency_format() (line 960 of /mysite/sites/all/modules/ubercart/uc_store/uc_store.module).

warning. Did you encounter this as well? Any ideas on how to fix it? I’m only a site builder so I’m happy to test, but this is beyond my ability.

joshua1234511’s picture

Working on a solution to fix the issue. Will update the module soon

joshua1234511’s picture

Version: 7.x-1.1 » 7.x-1.2

Moving to 7.x-1.2 branch. Can you confirm are you still able to replicate the issue with the latest release branch?

joshua1234511’s picture

Priority: Normal » Major
Status: Active » Needs review
joshua1234511’s picture

Issue tags: +DIACWJuly2020
joshua1234511’s picture

Tagging for manual testing.