PayPal sandbox IPN subscription payments not coming through? - paypal

I have setup two sandbox accounts with PayPal.
owner#example.com as the main business account
buyer#example.com as the payee/client account
I have tested my IPN script through the sandbox IPN simulator, and it works.
Now I am trying to test a subscription button where buyer#example.com signs up for a 1 week free trial subscription to owner#example.com
I have turned on IPN notifications in the owner#example.com sandbox account and have created and saved a custom button with the notify_url=http://example.com/ipn.php value set in section 3 of the custom button creator.
And after creating a subscription with buyer#example.com and a payment to owner#example.com ... the data is being shown in the sandbox account when I log in, but no IPN notifications are being sent to my http://example.com/ipn.php as I had specified. And there is no ipn history being shown on the sandbox paypal account history, either.
Has anybody encountered a similar experience? I am not receiving anything from PayPal after sending the test payments via sandbox.
What gives?

With subscriptions you're going to need to configure IPN in the PayPal account profile. It won't use the notify_url value for all of the payments on a profile. It will only use the URL (if any) configured in the profile.

Related

How can I get PayPal sandbox payments accepted automatically?

I integrate PayPal in my Symfony 4 App, but in sandbox payments still need to validated as we see in the picture behind.
How can I get payments accepted automatically ?
and I'm asking also if in Live mode, I'm going to have the same problem because I didn't have a business account to test it.
Is the issue that the payments are "PENDING"? Is the PayPal sandbox email not confirmed?
Log in with Sandbox account at https://www.sandbox.paypal.com/businessprofile/settings/email to check and resend any confirmation email
Then log in with Live developer account at https://www.paypal.com/signin?intent=developer&returnUri=https%3A%2F%2Fdeveloper.paypal.com%2Fdeveloper%2Fnotifications%2F to read the message notifications and confirm the email
One of the reason of that happens when the currency of the payment is not the same with the Paypal JS loaded script in client size.
So What you don't know that in the script loaded, the default Currency is USD, So you have to specify the currency in this script :
<script src="https://www.paypal.com/sdk/js?currency=EUR&client-id={{ data['clientId'] }}">
So in this case if the client pays with EUR, the payment is auto-accepted, else, you have to configure the strategy in Settings when you have two different currencies, So you have to login with your Business Account, then go to the Account Settings > Payment preferences > Block Payments.

paypal sandbox - verify identity

I am testing my payment integration using PayPal Sandbox
When I go to make payment using a sandbox account, the following message displays on the payment page
To use your balance next time, go to your PayPal account for an
identity check.
If I log into the sandbox account, I am not seeing any way to do this.
How do I set up the sandbox account so that it can use PayPal funds for the payment rather than the credit card option?
It doesn't matter how you are funding the payment in sandbox. There's no actual reason for you to be bothering to care about this issue, since the result of a completed PayPal payment on the receiver end will be identical.
But since you ask, you can create a bank verified account via https://www.paypal.com/signin?intent=developer&returnUri=https%3A%2F%2Fdeveloper.paypal.com%2Fdeveloper%2Faccounts%2F

PayPal IPN message is always payment - pending

Working on a sandbox, Paypal will always send me back and IPN message with the pair payment_status:pending.
I know that this might happen due to different currencies and that I can change settings in my account to accept different currencies.
But, I am using the service when a seller and a buyer that I don't know make a transaction, so I can not do anything about it .
Is there a way to allow any currency in the POST request ?
What really the seller see when the payment status is pending ?
If the payment status will change to completed later, how will my IPN message look? there is nothing that says how the object from IPN will look when status is changing ? how can I handle such change ?
Solved by sending money to the sandbox account and not to my real live account.
So, you must send funds from a sandbox email to another sandbox email.
Create another merchant account on the developer website
Send money from a sandbox buyer to a sandbox seller

PayPal IPN Sandbox Payments - Pay On Delivery or Bank Payment

I am trying to test PayPal payments that are authorised at a later date, examples being Pay on Delivery or a Bank Transfer.
I have created a new sandbox account with no credit/debit cards and £0 in the PayPal balance but when I come to make a payment I have to add a card.
I have set up a bank account and agreed the mandate so I must have something set up wrong somewhere because these type of payments happen in LIVE and we have an issue with the IPN message that comes X number of days later once the payment has cleared so I am trying to reproduce this to investigate.
Have you tried using the IPN Tester? (here after you log into your Sandbox account) https://developer.paypal.com/developer/ipnSimulator/ .
All sorts of conditions that you can test your 'listener' process against there.

How to test IPN on sandbox account?

I have a sandbox account on https://developer.paypal.com/ and I want to test ipn.
But where do I enter the IPN for the business account?
I can do a successful test sale but I cannot get the IPN to work.
You can setup IPN in the sandbox seller account the same way you would a live account. Just go to http://sandbox.paypal.com and login with the sandbox seller email and password. Then go into the profile and into IPN settings. Turn it on and point it to the URL you've got configured.
You can also make use of the IPN Simulator which is included in your developer.paypal.com account.