PayPal payment cannot be seen?

  • Posts: 589
  • Thank you received: 12
  • Hikashop Business Vessel Template
1 month 1 day ago #372498

-- HikaShop version -- : 6.5.0
-- Joomla version -- : 5.4.6
-- PHP version -- : 8.3.31
-- Browser(s) name and version -- : Chrome
-- Error-message(debug-mod must be tuned on) -- : none

Hi, I have an ongoing issue with PayPal users not being able to see the PayPal payment function after they have left checkout?
It appears to be device related bit I cannot be 100% on that. It always works correctly for me when testing on: iPhone, MacBook, iPad, PC and Laptop.

This is causing dropped orders, it occasionally happens with Worldpay as well but not as often as PayPal?
These are last night drop outs.

Attachments:

Please Log in or Create an account to join the conversation.

  • Posts: 86027
  • Thank you received: 14171
  • MODERATOR
1 month 1 day ago #372501

Hi,

It's possible this comes from the same thing as you reported before:
www.hikashop.com/forum/payment-methods/9...h-paypal/370600.html
If you PayPal account already has payments with order ids matching with futur order ids on your website, all the payments for matching ids will fail while payments for ids not already in PayPal will work fine.
So, as I said 4 months ago, make sure the "No, allow multiple payments per invoice ID" setting is selected in your PayPal account.
This could be the same with Worldpay. I don't know if they have a similar mechanism.

Please Log in or Create an account to join the conversation.

  • Posts: 589
  • Thank you received: 12
  • Hikashop Business Vessel Template
1 month 22 hours ago #372507

Hi, I moved it on over 10,000 which would have been way more than needed.

This is intermittent so surely every order would be effected?

Rgds

Please Log in or Create an account to join the conversation.

  • Posts: 86027
  • Thank you received: 14171
  • MODERATOR
1 month 12 hours ago #372513

Hi,

You're right that intermittent rules out the invoice ID collision: that one is deterministic, so every matching order would fail, not the occasional one. And since Worldpay does it too, and it has no PayPal invoice ID, we can set that track aside. What PayPal and Worldpay share is that both send the buyer off your site to the gateway after checkout, so the issue is most likely at that hand-off rather than PayPal itself.

On the confirmation page HikaShop auto-submits a form that forwards the buyer to the gateway. If that submit does not fire, the customer is left on your site with no way to pay, which matches what you describe. The most common device-related reason is the buyer being inside an app's built-in browser (Facebook, Instagram, Gmail...) instead of a normal browser: there the forward can open in a blocked popup and simply do nothing, which would be intermittent and look device-related since it depends on how each buyer reached your site.

To pin it down, next time it happens could you check:
- Does the customer stay on your site, or do they reach paypal.com and it is blank there?
- On the page they are stuck on, is there a "Pay now" button with a "click here if you are not redirected" message, or is it blank?
- Do the affected orders tend to come from an app's in-built browser rather than Chrome/Safari?

That will tell us whether it is the redirect being blocked, the page not loading fully, or something on the gateway side.

Please Log in or Create an account to join the conversation.

  • Posts: 589
  • Thank you received: 12
  • Hikashop Business Vessel Template
1 month 11 hours ago #372516

Hi, The response I always get when they contact me is

After pressing pay now, the next PayPal pay options are missing: login etc.?

Is there a log file that would display the users browser/device etc.?

Just got hold of an Android to test on. Showed ok but, it 'created' 2 orders? I only went through to see is the PayPal login showed, which it did and then cancelled??

I will be swapping to your new template in a few weeks so I hope this fixes a few issues I am having.

Rgds

Last edit: 1 month 9 hours ago by mohairbears. Reason: update

Please Log in or Create an account to join the conversation.

  • Posts: 86027
  • Thank you received: 14171
  • MODERATOR
1 month 6 hours ago #372518

Hi,

Think would indicate a CSP issue.
Try disabling the HTTP header plugin and see if that helps.

The following user(s) said Thank You: mohairbears

Please Log in or Create an account to join the conversation.

  • Posts: 589
  • Thank you received: 12
  • Hikashop Business Vessel Template
4 weeks 12 hours ago #372559

Hi, This solution appears to have worked.

Thank you

The following user(s) said Thank You: nicolas

Please Log in or Create an account to join the conversation.

  • Posts: 589
  • Thank you received: 12
  • Hikashop Business Vessel Template
1 week 2 days ago #372889

Hi, Revisiting this as its started again.
This appears to be Firefox related?
Do you have any idea why its not displaying correctly please?
2 photos attached, 1 Firefox, 1 Chrome

Attachments:
Last edit: 1 week 2 days ago by mohairbears.

Please Log in or Create an account to join the conversation.

  • Posts: 86027
  • Thank you received: 14171
  • MODERATOR
1 week 2 days ago #372891

Hi,

If you're able to reproduce the issue, open the console of your browser on the page with the issue. There, you should see a lot of information from PayPal about what is going on. That should allow us to tell you what to do.

Please Log in or Create an account to join the conversation.

  • Posts: 589
  • Thank you received: 12
  • Hikashop Business Vessel Template
1 week 2 days ago #372895

Hi, That's the problem, I cannot replicate it? every browser and phone works as it should when testing.
Chrome
Firefox
Safari
iPhone
iPad
Samsung

Rgds

Please Log in or Create an account to join the conversation.

  • Posts: 86027
  • Thank you received: 14171
  • MODERATOR
1 week 1 day ago #372900

Hi,

Ok. I've made changes to the PayPal Checkout plugin to be able to log that.
Download the install package of HikaShop on our website and install it on yours. Make sure the debug setting of the PayPal Checkout payment method in enabled.
Then, next time someone has the issue on your website, you'll get the debug data from the console in the "Payment log file" in the HikaShop configuration. So we'll be able to debug the issue even if it only happens in some rare cases.

The following user(s) said Thank You: mohairbears

Please Log in or Create an account to join the conversation.

  • Posts: 589
  • Thank you received: 12
  • Hikashop Business Vessel Template
1 week 1 day ago #372911

Hiya, I have just had 2 orders with the issue, there is no reference to the orders in the log file?

I can send you the log file?

Rgds

Please Log in or Create an account to join the conversation.

  • Posts: 86027
  • Thank you received: 14171
  • MODERATOR
1 week 1 day ago #372914

Yes, please send it via email to the our contact email address.

Please Log in or Create an account to join the conversation.

  • Posts: 86027
  • Thank you received: 14171
  • MODERATOR
6 days 14 hours ago #372942

Hi,

Thank you for the log file.

Your pages are currently sent with this header:

content-security-policy: default-src 'self' 'unsafe-inline'

That header tells the browser of your visitors to only load things coming from your own domain. It contains no script-src, no frame-src and no connect-src, so all three fall back on that default-src, and everything coming from PayPal is refused by the browser: the script www.paypal.com/sdk/js which draws the payment buttons, the frames the buttons are drawn inside, and the calls that script makes to PayPal. Your customer is then left with an empty payment area and no way to log into PayPal, which is exactly what they describe.


Where it comes from :

Not from the Joomla plugin this time, which is why disabling that plugin, as you did in February, does not fix it anymore. The header comes from your server, from the .htaccess file at the root of your website:

- your static files carry a Content-Security-Policy too ( www.mohairbearmakingsupplies.co.uk/media...hop/css/hikashop.css answers with "default-src 'self'; script-src 'none';"), and those files are served by Apache without Joomla ever running, so the header can only come from the server configuration
- your pages also carry the same policy a second time under the old name x-content-security-policy, which the Joomla plugin never sends

If you use a security extension which writes your .htaccess file for you, Admin Tools and its .htaccess Maker being the usual one, change the setting there and let it write the file again. If you edit the .htaccess file directly, your change will be lost the next time that extension regenerates it.

How to configure it :

Keep the header, but allow PayPal in it. The value to use in place of the current one:

default-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' https://*.paypal.com https://*.paypalobjects.com; frame-src 'self' https://*.paypal.com; connect-src 'self' https://*.paypal.com; img-src 'self' data: https://*.paypal.com https://*.paypalobjects.com

Leave the rule for your static files alone, it is fine as it is and it does not concern PayPal.

If you ever go back to the "System - HTTP Headers" plugin of Joomla instead, the same thing is done in its "Content-Security-Policy (CSP)" tab, where you add one line per directive in the table at the bottom: script-src with the value 'self' 'unsafe-inline' https://*.paypal.com https://*.paypalobjects.com, then frame-src with 'self' https://*.paypal.com, then connect-src with 'self' https://*.paypal.com, and img-src with 'self' data: https://*.paypal.com https://*.paypalobjects.com.

One last thing, unrelated to the buttons :

Your log shows 62 payments refused by PayPal at the very last moment, against about 20 which went through. In each case the customer logged into PayPal and approved the payment, and when your website asked PayPal to take the money, PayPal answered:

DUPLICATE_INVOICE_ID: Duplicate Invoice ID detected. To avoid a potential duplicate transaction your account setting requires that Invoice Id be unique for each transaction.

The money is never taken and the order stays unpaid, while your customer believes they paid. The orders 92784, 92786, 92798, 92802, 92807, 92812, 92872, 92877, 92879 and 92884 are examples, and the most recent one is from the 4th of June. This is the setting I mentioned at the beginning of this thread: in your PayPal account, under Account Settings then Payment preferences, "Block accidental payments" has to be set to "No, allow multiple payments per invoice ID". PayPal names that setting itself in its answer, so it is still set the other way today.

The following user(s) said Thank You: mohairbears

Please Log in or Create an account to join the conversation.

Time to create page: 0.437 seconds
Powered by Kunena Forum