CentOS 7
PHP 7.0.17
Magento 2.1.5
Theme: SMMarket / Magentech
Problem
When attempting to complete a checkout transaction the card is being correctly processed by Payflow Pro but once the transaction through Payflow Pro completes there is no confirmation or furthering of the order process. In effect, the card is authorized or charged, but the store stalls out at this point, so the order isn't placed or finalized. The cart continues to show "1 item" and I can click on "place order" again -- which will then re-authorize or re-charge the card, again with nothing else occuring.
No error is presented on the screen and the page looks the same as before clicking on "place order."
When I go into the payflow manager, the transactions are there and match the returned authorization codes and reference numbers -- and the Magento 2 debug log indicates approval:
'result' =>
array (
'result' => '0',
'pnref' => 'AT0*******',
'respmsg' => 'Approved',
'authcode' => '024*****',
'avsaddr' => 'Y',
'avszip' => 'Y',
'hostcode' => '00',
'resptext' => 'APPROVAL',
'procavs' => 'Y',
'visacardlevel' => 'G3',
'iavs' => 'N',
'result_code' => '0'
We've tried changing between Authorization and Sale in payflow settings, we've also alternated between live and test mode. It looks like everything on the payflow side is now working as expected, but the approval result isn't triggering the correct action.
Is there another setting we're missing somewhere that is preventing the page from advancing?
Back Information
Just getting payflow pro working has been a bit of a pain, apparently our payflow account is an older account that didn't have "Hosted Pages" integrated. Magento2 is now using transparent transactions via hosted pages to process payflow pro payments. I'm including it here so that if someone else runs into this issue it may point them in the direction of contacting payflow support and requesting this piece.
IE: If you get a token result like below, but then the page doesn't show an error and doesn't do anything else; you likely need to reach out to payflow pro support, or activate hosted pages in the payflow manager:
'result' =>
array (
'result' => '0',
'securetoken' => 'T8M5pzdM0d0WcWWTrfAz7GwUb',
'securetokenid' => '6ce763c1b6a5e565b924bc1316c31329',
'respmsg' => 'Approved',
'result_code' => '0',
),
To confirm this, you can use firebug or another console with net traffic view to watch the post to paypal, then view the response. In my case I was getting a "Merchant Identification Failed" error, which finally led me to call Payflow Pro and get it all sorted out. (Our other platforms that are direct posting to Payflow Pro are not effected, which further stalled us on debugging this issue).