PayflowPro Silent Post
In order to use the Payflow Pro gateway, we require that the client’s merchant account be configured to use “Silent Post”. This allows us to confirm transactions so that duplicate payments are not recorded.
The paypal documentation has the following instructions:
Silent Post ensures that the transaction data is passed back to your website when a transaction is completed. The Silent Post feature uses the HTML Post method to return data to your server for both approved and declined transactions. This occurs even if a customer closes the browser before returning to your site, or if the PayPal-hosted payment confirmation page is disabled. Silent Post data is sent to your server at the same time as when a payment confirmation page is displayed or as soon as a transaction is declined.
This feature is configured through https://manager.paypal.com:
Go to Service Settings, then from the Hosted Checkout Pages section select Setup
On the Setup page, set Use Silent Post to Yes.
On the same page, check the box next to “Void transaction when my server fails to receive data sent by the silent post”. This will help prevent duplicate transactions.
Note: To ensure that transactions proceed only if your script actually receives the data returned by the Silent Post, you must Force Silent Post Confirmation by checking Void transaction when my server fails to receive data sent by the silent post.
The following screenshot shows the correct settings: