Troubleshooting Paypal Hosted Button Integration
1) I got an e-mail with this subject:
[DAP] http://yoursite.com: dap-paypal: Invalid IPN Coming In
This can happen if you click on this URL in a browser.
http://yoursite.com/dap/dap-paypal.php (replace yoursite.com with the name of your site).
This is a backend script and should not be called directly via browser. But if you click on this accidently, this error can be ignored. Just make sure that the DAP and Paypal are integrated and purchases via Paypal are getting registered in dap correctly.
2) DAP Paypal IPN Error (Rejected): IPN Product Name = does not match any DAP Product Name.
But REJECTING MISMATCH it because of your Config settings (Product Mismatch)
Make sure that the item_name in Paypal button is set to eXactly match a DAP product name otherwise DAP cannot process the payment notifications. If the notification is for a product that you sell outside of DAP, then DAP will reject it with this error message and no action is needed.
If you want DAP to process Paypal notifications even if the product name in DAP does not match the Paypal item_name, then enable this setting in DAP :
DAP Setup -> Config -> Payment Processing -> Should DAP process Customer Emails even when the Product names don`t match ->
Set this to “Y” if you want DAP to process non-dap defined product purchase notification from Paypal.
3) Paypal failing with “Check Product and Price(Reprocessible)” in DAP Orders page
Note: DAP Orders page moved under Payment/Coupons menu in DAP 4.0
This could be due to a problem with the CURL library on your site.
With DAP 4.0, you can easily switch your site to use FOPEN instead of CURL.
DAP Setup -> Config -> Payment Processing -> How DAP connects to Paypal -> Select FOPEN
4) Can I use my Paypal account to sell products outside of DAP even if the global IPN points to a DAP script?
Sure. Paypal has 2 IPN settings:
a) Local button level IPN
This one needs to point to the DAP script (http://yoursite.com/dap/dap-paypal.php) on your site so for all sales via this button,
Paypal can send a notification to DAP.
b) Global IPN – under your Paypal profile -> instant payment notification preferences
This one is used by Paypal ONLY if button level IPN is not set. If the button level IPN is set, then Paypal ignores the global IPN.
We recommend that you set both button level and global IPN to point to the same dap script –
(NOTE: replace yoursite.com with the name of your site)
Now, if you are selling other products outside of DAP using Paypal and for those Paypal buttons, if there is no button level IPN notification defined, then Paypal will look at the global IPN setting (which also points to dap) and send notifications to dap. But dap will reject that message because the product is not defined in DAP.
That is when you receive these ‘IPN rejected’ messages and you can ignore them.
5) I have integrated DAP and Paypal per your documentation but it still does not work.
Three key things to watch out for when you integrate DAP and Paypal are:
a) Make sure that the Paypal button has the item_name set to exactly match a DAP product name otherwise DAP cannot process the payment notifications.
b) Button-level IPN must point to DAP script (http://yoursite.com/dap/dap-paypal.php – replace yoursite.com with the name of your site).
In Paypal button creation page, under Ã¢â‚¬Å“Step 3: Customize advanced features (optional)Ã¢â‚¬Â tab, within the Ã¢â‚¬Å“Advanced VariablesÃ¢â‚¬Â text box,
enter the following (change the text yoursite.com below to your domain name).
Note: replace yoursite.com with the name of your site
c) Global IPN must be enabled and pointed to the DAP script as descrbed in step 1 of this document.
6) What config items in DAP are required if I use Paypal HOSTED button?
If you want to use sandbox for testing, then
DAP Setup -> Config -> Payment Processing -> Use Paypal Sanbox For Testing -> Set to “Y”.
If your site has trouble connecting to Paypal via CURL and you see this error in DAP orders page – Check Product and Price(Reprocessible), then update the config to use FOPEN.
DAP Setup -> Config -> Payment Processing -> How DAP connects to Paypal –> Set to “Y”.
NOTE: In the DAP Products page, you ONLY need to set the Product Price, Trial Amount and Recurring Count if you use the DAP hosted/generated buttons for Paypal. Not needed if you use Paypal hosted buttons. You can leave it empty if you use Paypal hosted buttons. Even if you populate it, it will not be used.
If you use the Paypal hosted buttons, then you DO NOT need to set the following in DAP Setup -> Config -> Payment Processing ->
Paypal API Username – Only needed if you use the DAP upsell tree plugins for Paypal Payments Pro or Paypal Standard.
Paypal API Password – Only needed if you use the DAP upsell tree plugins for Paypal Payments Pro or Paypal Standard.
Paypal API Signature – Only needed if you use the DAP upsell tree plugins for Paypal Payments Pro or Paypal Standard.
Paypal API Endpoint – Only needed if you use the DAP upsell tree plugins for Paypal Payments Pro or Paypal Standard.
Paypal Business Email ID – Only needed if you use the DAP generated button for Paypal (DAP Payments/Coupons -> Generate paypal button)
Merchant’s Payment Gateway API Login ID – Only needed if you use e-junkie or the DAP upsell tree plugin for Authorize.net
Merchant’s Payment Gateway Transaction Key – Only needed if you use e-junkie or the DAP upsell tree plugin for Authorize.net
Please check all of the steps at the link below…
Especially check the “notify_url” part towards the end.
If you are absolutely sure that you have followed all of the steps above, and DAP is still not creating an account for the new user, it is possible that your host is not allowing your server and Paypal to communicate correctly. You can confirm if this is an issue, by going to the “Orders” page, searching for all orders, and see if your test purchase in question has been recorded by DAP (even if DAP didn’t give access to the user).
If you find the order in DAP, but the user has not been created, then check with your host and make sure “fopen” or “curl” is enabled for your web site.
If they say it is enabled, and it still doesn’t work, please do the following:
1) Go to Setup > Config > Dap Log Level and set it to “5”.
2) Completely delete test user from DAP
3) Repeat test purchase
3) Go to System > Logs and copy/paste the information there into a support ticket
4) And then please update the ticket with…
* Domain name where DAP is installed
* FTP info
* DAP admin info
And we’ll investigate this asap.
5) Go to Setup > Config > Dap Log Level and set it back to “1”.