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.
Related
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
We had a page set up to receive PayPal payments - it was still on testing/development, so we used a sandbox business account to receive payments.
Unfortunately, some users gained access to the page and successfully made payments. I logged into sandbox and found out that it successfully received the payments from non-sandbox accounts of real users.
I thought this would not be possible. So I tried it for myself - made a payment using my real PayPal account, and I was right - it did not work.
My question is: How was it possible that they were able to pay using their real account, but I couldn't? Second, since they paid to a sandbox account, was actual money deducted from their account? If yes, would refunding it from inside our sandbox business account work?
The only way I can think anybody could have completed the transaction using a "real" account is if they paid using a credit card through a Payments Pro integration. Are you using Payments Pro?
Any money paid to a sandbox account is fake, and no money would actually be transferred.
I'm currently trying my app to notify the buyer if he/she has no funds. But every time I use a paypal test account without funds, the payment still proceeds. What could be the cause of this error? I have negative testing on for my facilitator account.
If you have a credit card attached to the sandbox account it will use that as the funding source.
With negative testing, though, what you do is send a specific amount in the transaction request in order to get a specific error code back for testing.
See this documentation for more details.
I try to establish recurring payment from CiviCRM, using Website Payments Pro mode.
The positive testing works perfectly, I see the created payment profile, I get the IPN notifications, it's perfect.
I enabled negative testing at the profile, I tried two methods to trigger the negative case - when the initial payment fails:
PayPal recurring payments negative testing (https://developer.paypal.com/docs/classic/lifecycle/sb_error-conditions/ - with the amount of 106.10 $)
With IPN error code: https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNTesting/ - 31.22
In both cases, the payment completed successfully.
I contacted the paypal support and their best answer was this:
" You can test it with close expiry date. Usually when the expiry date almost come, PayPal will sent notification to the buyer to change credit card. But if the buyers just ignore the notification, it will lead to failed transaction. "
Even if it works, it's unacceptable, that I might have to wait 1 month to see the result. Paypal does not allow to set already expired card for the recurring payment profile.
Do you see an efficient way to test negative outcome? Maybe with IPN simulator? But how can I be sure that Send Paypal Recurring Payments commands with IPN Simulator contains the proper messages that PayPal uses today for my type of account?
Here is how to proceed: forget the sandbox, it is just not mature enough. Use the production/live paypal account, lower the recurring fee to 0.5$, launch the recurring payment from Civicrm, wait for the initial payment, you have the successful case, then ask your bank to set the POS limit to 0$, then the next recurring payment will fail. This is a totally robust way to test negative case. Do not forget to set your IPN first (https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNSetup/). Do you have any better method?
The following method works for recurring payments with Express Checkout, might as well work for Payments Pro:
Login to https://www.sandbox.paypal.com using your buyer's test PayPal account.
Replace the contents of the street address Line-1 of the buyer's test credit card, with CCREJECT-REFUSED.
Execute a typical Express Checkout payment flow against the Sandbox test environment using the same buyer account and with the same credit
card that you just modified.
This method is described on a page in the bottom of a locked filing cabinet stuck in a disused lavatory with a sign on the door saying 'Beware of the Leopard' helpfully titled How To Recover from Funding Failure Error Code 10486 in Express Checkout
I've been working (or should I say struggling) with the PayPal SDK to get recurring billing running for my website. I managed to get it to work, however I do not see how to automatically "claim" the money?
Basically what happens is:
The profile is created, after 24 hours the payment is done and I see the following in my merchant sandbox account:
It seems I need to manually accept the payment for the amount to be added to my PayPal balance.
Is there a way of doing this automatically?
This is usually caused by an issue with the recipient's account. Most commonly, The recipient hasn’t confirmed the email address on their PayPal account. Once the email address is confirmed the amount would automatically post to the balance on future payments.