If you feel you did all the integration steps properly and also activated the PayPal IPN Handling plugin in your Post Affiliate Pro (Network) and you can't see any commission in your PAP then this article should help you.
Required knowledge
Lets first explain how the PayPal integration works in general. The whole point of the PayPal integration is to get the value of the PAPVisitorId cookie which was given to the customer after he/she has clicked some affiliate link and pass it to Post Affiliate Pro alongside the information from the PayPal's IPN notification. There are 3 different ways how this is done depending on your PayPal button:
- Simple PayPal button integration consists of adding 2 input fields (custom and notify_url) to your PayPal button and a javascript code for writing cookie into the "custom" input field. This writes the cookie directly into the PayPal's IPN notification and tells PayPal to send the IPN notification to PAP's PayPal IPN Handling plugin which reads the notification and creates a commission based on it.
- Integration of PayPal button with notify_url input field already used by some other system consists of adding just the "custom" input field and the script for writing the cookie. Another part of the integration is about resending the received notification to PAP from the script to which the PayPal's IPN notification is sent.
- Integration of PayPal button with both notify_url and custom input fields already used by other system consists of adding id attribute to your notify_url input field and of a special script which appends the cookie to the notify_url as a GET parameter. Another part of the integration is about receiving the GET parameter and resending the received notification to PAP along with the cookie information from the script to which the PayPal's IPN notification is sent.
On hosted with us accounts it takes 5-15 minutes for the commission to appear after an order was placed. It would take the same time for the Event logs or Sale requests log to display for the request.
You can speed this up by forcing the requests to process.
Debugging
Click an affiliate link and make sure a click was tracked in Transactions->Clicks list. Remember there is the cron job. If your click isn't tracked follow click debugging article. Without it the tracking won't work.
Now when you get to the PayPal button page use your browser's developer tools to inspect your button and have a look whether the cookie ID (32 characters long string) was added to the "custom" or "notify_url" input field:
You should see something like this, or the same string added on the "notify_url" field if you are using the 3rd PayPal integration method.
Copy the string but without the account ID (default1 on this example), so without the first 8 characters, and look for it in your merchant panel Tools->Visitor affiliates. If you find a record for it which is marked as Actual then you can be sure that the visitor is referred by some affiliate and will create a commission if other settings match as well and the IPN notification will reach PAP.
Now if you don't see this value filled in or the cookie ID cannot be found in Tools->Visitor affiliates then one of the following is a problem:
- the URL to the notifysale.php/salejs.php script (depending on the integration) isn't correct.
- PayPal button is on HTTPS secured website while the URL to script is added as HTTP only
- If the script URL is HTTPS then Post Affiliate might not be accessible via HTTPS. (you don't have SSL certificate on your domain)
- "custom" OR "notify_url" input fields do not contain the important ID attribute by which the script is trying to locate the input field so pap_dx8vc2s5 OR pap_ab78y5t4a (depending on the integration method).
- there is no click tracking code on the website or no affiliate link was clicked and therefore the cookie ID written into the field is of unreferred visitor only. IDs of unreferred visitors cannot be found in Visitor affiliates list.
- in case of Post Affiliate Network you don't have correct account IDs in the click tracking and notifysale.php/salejs.php scripts. Make sure you have copied the integration codes from panels of your actual PAN merchants.
If you have solved this problem and you have correct cookie ID written in the PayPal button then continue with payment.
After the cron job has run go check Tools->Event logs of your merchant panel and search for PayPal, if you see some entry from the time you made the actual purchase then you can copy the group ID of this log message and search for the group ID to see the whole log for PayPal plugin. If there isn't any problem, especially if there isn't a problem with visitorId the commission should be saved or at least located in Tools->Sale requests log, so use that approach to debug further.
If you can't see any log with PayPal text then the IPN notification wasn't sent to Post Affiliate Pro (Network).
This can either happen if IPN isn't enabled in your PayPal account so please follow the PayPal guide to set it up and mainly have it Enabled, the URL entered there doesn't matter that much since it will be overruled by the "notify_url" input field of your button but in order to have the notification sent IPN must be enabled. If this is enabled and you still can't see any log for PayPal then try searching the PayPal IPN history in your PayPal account to see whether the IPN notification was sent to your PAP or your processing script without any error.
If the IPN was sent and you still don't see any log regarding PayPal and you use your own custom IPN handling script which you integrated with the cURL code from 2nd and 3rd PayPal integration methods then the problem is most probably that cURL functionality isn't working on your server or you haven't added the cURL call to correct file/function which really handles the IPN.