PayPal IPN Fail

Hello guys, I'm trying to get sandbox payments from long time and still without luck.
Here's what I've done:
userman and user signup are working
I'm port forwarding port 80 from my main router (not MikroTik) to the local address of MikroTik.
The forwarding is working and I can access router / userman from external network via the public IP.
On Customer -> Public Host field I've set http://publicIP/user
In settings - payment
I'm using sandbox test accounts
I've set in signup_pay_form.html
I've added static DNS with the sandbox current IP (following the only guide I know about How to make User Manager work with PayPal Sandbox)
I've set up the merchant account in sandbox.paypal.com to use IPN on URL http://publicIP/user
So I can successfully pay for a profile, the account is created, money does come. However the last thing log says about the transaction is that is "Successfully started". User's account doesn't activate. IPN history shows IPN retrying and then failed. Another weird thing is in IPN history it says "Notification URL
http://http://publicIP/user/user?serviceId=MWT.Payment&method=2" Notice the double http:// ?
I can send IPN from the simulator.
I tried some variants, what can I check if it fails me?

Little trial and error:
IPN URL = http://publicIP/user

Public host settings :

  1. publicIP
    log: paypal != FAIL: paypal resp!= "VERIFIED" [INVALID]
    IPN Sent
    Notification URL
    http://publicIP/user?serviceId=MWT.Payment&method=2
    HTTP response code
    200

  2. http://publicIP
    no log, IPN retrying
    Notification URL
    http://http://publicIP/user?serviceId=MWT.Payment&method=2

  3. http://publicIP/user
    no log, IPN retrying
    Notification URL
    http://http://publicIP/user/user?serviceId=MWT.Payment&method=2


IPN URL = http://publicIP

Public host settings:
4) http://publicIP/user - no log, IPN retrying
Notification URL
http://http://publicIP/user/user?serviceId=MWT.Payment&method=2

So what should really be in public host and paypal's IPN URL? Seems nothing works for me :frowning:

I still haven’t figured it out (I’m not sure what can I even test anymore) and since I’m doing this for school project, my time runs out, can anyone help me with an idea? :frowning:

bumping this thread because i have also been unable to get this working right.