Description

This documentation will explain why you get notification emails from the paypal payment plugin, what they mean and how to react to them. It will also answer questions about problems occuring during the setup of the plugin.

Once an order has been made on your website, your customers will be redirected to the payment gateway (Paypal, authorize.net, etc) in order to safely pay for the order. Payment gateways usually have a way for your website to automatically get notified of the payment once the payment gateway processed the payment. In order to avoid attacks from thieves, this notification needs to be confirmed to the payment gateway and several checks are done on it. Based on the results of those checks, the system will validate the order or not and for each case, send you an email so that you can always change the order status manually from the back end.

 

The seller accepts encrypted website payments only. You cannot pay the seller through un-encrypted buttons

This error is displayed because your PayPal Account Profile is set to only accept payments from "encrypted" buttons, however, your item button code is "not" encrypted. This condition interrupts the payment process and displays the error message.

To turn off this option:
1. Log in to your PayPal Account.
2. Click "Profile" tab or "Edit Profile" link.
3. Under "Selling Preferences", select "Website Payment Preferences".
4. In the section titled "Encrypted Website Payments" select "Off".
5. Click "Save".

Encrypted buttons are not useful for HikaShop as other securities are put in place. The payment amount is checked by hikashop when receiving the payment notification from paypal so even if someone try to change the amount to pay for an order, hikashop will detect it and refuse the payment. So you don't have to worry, you can deactivate that option of your PayPal account.

 

This invoice has already been paid. For more information, please contact the merchant

It is possible for Paypal to report an order as already being paid if they have received an identical invoice number in the past. That can happen when for example you were already using another e-commerce solution before switching to HikaShop with your PayPal account.

There are a couple ways to resolve this issue:

In Your Paypal Account:

  • Log into your PayPal business account on paypal.com.
  • Click the profile icon (Profile menu) at the top of the page, and then select Profile and settings in the Business Profile menu. Click My selling tools.
    Note: If you do not see the profile icon at the top of the page, click Profile, which appears in the top menu when the My Account tab is selected, and then click My selling tools.
  • Click Update next to Block payments in the Getting paid and managing my risk section.
  • Scroll down the page to the Block accidental payments setting, and select "No, allow multiple payments per invoice ID"
  • Scroll to the bottom of the page and click Save.

On the HikaShop side:

Open your phpmyadmin (a tool provided by your hosting company in order to administer your database) and select your database. There, increase the auto_increment value of the hikashop_order table by running a query like this:

ALTER TABLE jos_hikashop_order auto_increment = 100000;

That query will result in the order id of your orders to start at 100000. That way, it won't conflict with other e-commerce application using your paypal account with order ids starting at 0 like HikaShop does by default. Note that if you use another table prefix than jos_ you need to change it to your table prefix in the query.

 

Unable to process payment. Please contact the merchant as the shipping address provided by the merchant is invalid, and the merchant has requested that your order must be shipped to that address.

This error will be displayed when there is a problem with the address sent by HikaShop to PayPal.

First, this can happen if you unpublished some of the default custom address fields via the menu Display->Custom fields while still having the "No address" option of the PayPal plugin turned off. So either publish the fields back or turn on that option. Also, sometimes, changing the "address override" option of the PayPal plugin's options can solve the problem.

 

No payment notification/order confirmation email received after payment

After an order, PayPal contacts HikaShop in order to tell HikaShop that the payment has been received. At that point, you should receive a payment notification from HikaShop as the shop owner (and the user an email confirming his order). If you don't then, it can come from one of these points:

 

  • Your website is on localhost (ie. not accessible from the Internet). PayPal can only send payment notifications to HikaShop if your website is accessible from the outside.
  • Your website is protected by an .htaccess which only allows the access when the correct username/password is entered. PayPal doesn't know the username/password of your .htaccess and thus cannot contact HikaShop.
  • You changed your .htaccess file to add rules to increase your website security and it doesn't allow PayPal servers to send the notifications. You should try to remove them to see if it works.
  • Your website is in maintenance and only accessible for users with an administrator account. PayPal won't be able to contact HikaShop because Joomla won't authorize him.
  • In the same manner, the menu on the checkout is not accessible to non logged in users.
  • The option "allow payment notifications from paypal" of the PayPal is turned off. You should turn it on.
  • You changed the IPs in the PayPal IPs option of the PayPal plugin.
  • You have a security component which forbids scripts to contact your website. You should ask a solution from your security component provider.
  • With versions of Joomla before 2.5.4 the languagefilter plugin had a bug removing the POST information by doing a redirect when it was not necessary. So if you use an older version of Joomla with the languagefilter plugin activated, either deactivate it if you don't use it or update Joomla.
  • MobileJoomla apparently redirects payment requests loosing the POST data in the process.
  • Your HikaShop menus have not the access level public. Because of that PayPal servers cannot access your shop to notify HikaShop from the payment. You should configure the "force a menu on checkout" option of the configuration to a public menu that while your categories/products listings are not accessible to your users, PayPal will be able to notify HikaShop.
  • Please make sure that the access level Public of your PayPal payment method is ticked, otherwise the access to the notification will be denied to PayPal (for the Business edition only).
  • Please make sure that the payment is accepted in your PayPal account. If the automatic validation of the payments is not turned on in your PayPal account, PayPal won't send the payment notification to HikaShop and your orders won't be confirmed !
  • Please check that your PayPal merchant account is configured to send UTF8 payment notifications as explained here: https://simple-membership-plugin.com/setting-utf-8-formatting-for-your-paypal-ipn-messages/
What to do next if you still can't get your payment notifications ?
That's where it gets difficult. You need to turn on the debug option of your payment plugin and process a new order. Then, look at your payment log file in the Files tab of the configuration. There will be written the traces of what happened when the payment plugin was triggered.
If the file is empty, it means that something blocked the notification before it reached HikaShop. In that case, you should look in your website access log for the notification URL of the paypal plugin: index.php?option=com_hikashop&ctrl=checkout&task=notify&notif_payment=paypal
On the same line you should get the status of the request. If it's a 303 or 301, in means that something else on your website redirected the request before reaching HikaSop (it is highly likely to be a system plugin). If it's a 500, it means that there was some kind of fatal error during the processing and thus you should look the PHP error log of your server for the fatal error message. If it's a 403 or 401 or 404 request, it means that the page was not found and it usually happens because of the SEF of joomla which couldn't match the Itemid parameter of the URL with HikaShop menu items.
If the file is not empty, it should give valuable information on what is happening. Like when it stops, what the data received for the notification, does it stop at the security check etc. On top of that, if you get information on the log, you should also get a payment notification email with information on why it couldn't process the notification.

 

IP not valid

Paypal might change or add IPs  for their servers when they need to handle more transactions. When your server receives a notification from another IP than the IPs of paypal listed in the paypal payment plugin options, you will receive an email automatically to your paypal address informing you of it. You can refresh this list  of IPs by clicking on the link below. If paypal really added new IPs you should see them appear here. Otherwise, if you are sure that the IP from which the notification came from is a valid paypal IP you can add it to the list manually. If the notification came from someone else, it might be an attack attempt (if the payment has not been received on your paypal account for instance), in which case you can ignore it as the system blocked it. Finally, you can always disable this feature by removing all the IPs in the list and saving the paypal payment method options. You will always be able to retrieve the paypal IPs later on to reactivate the feature.

Connection to paypal failed

When your server receives a notification it needs first to confirm whether this notification comes from your payment gateway or not because it is always possible that a valid IP address has been injected and that someone else is tried to validate an order. So there is a mechanism in place to contact a paypal server HikaShop knows as being an official paypal server to confirm that it comes from paypal. If this connection fails, that means that either your hosting company is blocking outgoing connections from your server or you don't have the openssl option activated in your PHP configuration or that the paypal servers are down, the later being a lot less likely. So you should check that you website is able to make outgoing connections and that the SSL is activated. Also, we advise you to contact your hosting provider to ask them about their policies on outgoing connections. If they are not blocking them, then you might want to contact us via our forum as we might need to adapt our plugin to a change from paypal.

Invalid transaction

When your server receives a notification it needs first to confirm whether this notification comes from your payment gateway and not from someone else tried to validate his order. So there is a mechanism in place to contact a paypal server HikaShop knows as being an official paypal server to confirm that it comes from paypal. If paypal returns an invalid status, it means that the notification didn't come from paypal, so the notification was discarded. You can thus ignore the email you received.

Invalid response

When your server receives a notification it needs first to confirm whether this notification comes from your payment gateway and not from someone else tried to validate his order. So there is a mechanism in place to contact a paypal server HikaShop knows as being an official paypal server to confirm that it comes from paypal. If paypal returns an unknowns response format, it might be that paypal changed its notification system (very unlikely) so can contact us via our forum as we might need to adapt our plugin.

Notification not handled

The notification from paypal can have a status not handled by HikaShop. In that case, HikaShop will notify you by email and stop its processing of the notification.

Invalid amount

It could happen that the amount paid is different from the amount of the order. In that case the status of the order will be changed to the invalid status you can configure in the paypal payment plugin options.

The option "Send details of the order" can create an invalid amount. Paypal could not round the final price like HikaShop (which round only the final price and not the product's prices). So this option can generate little differences in the price (1 centime). At this moment we recommend you to deactivate the option to solve the problem.

Pending payment

A pending notification means that the customer entered his payment information but that paypal could not yet receive the funds. In that case, we highly recommend you to check your paypal account, the order information, and maybe contact your customer, and decide yourself what to do with the order.