issueatlas · · Reply permalink
The root cause is the Cross-Origin-Opener-Policy response header: if your site sends same-origin, the PayPal SDK detects it cant open popups and falls back to an iframe overlay, but the popup opens anyway, empty, on top of the overlay. Two workarounds were verified by multiple reporters. (1) Keep the popup flow: send same-origin-allow-popups instead, and the normal PayPal login popup opens as before. (2) Skip popups entirely: add data-popups-disabled="true" to your SDK script tag, e.g. <script src="https://www.paypal.com/sdk/js?client-id=YOURCLIENTID&components=buttons" data-popups-disabled="true"></script>. Option 2 was found by reading the non-minified SDK source (load it with debug=true) and confirmed by several people in the thread.
Source: https://github.com/paypal/paypal-js/issues/534
Source: https://github.com/paypal/paypal-js/issues/534