My question is how can i activate IPN without getting in my paypal acount...
Like did in OpenCart, that every one just insert is paypal acount, and the ipn works..
I hope you know what is OpenCart, If not , i think that my question is clear, if not tell me and i will edit.
Specify the parameter "notify_url" in WPS (Buy Now button, etc) source code, or "PAYMENTREQUEST_n_NOTIFYURL" in Express Checkout, for every transaction. Different URLs can be used for different transactions.
This option works if IPN is enabled in paypal profile. It does NOT work if IPN is disabled.
Related
I have a question about Paypal IPN, I was wondering when does the IPN activate and send it's message to my website.
I currently have my website that has a buy button. When the client buy the service, he is directed to paypal. Once he pay the service, nothing happen. In order for me to receive the IPN notification, the user has to click "Return to merchant website" or whatever the link is, then I receive the IPN notification.
Is it normal, does it work like that for everyone?
Cause right now, most people when they are done with the payment, just close the website and I don't receive any notification.
Thanks for any help !
Your question leaves a lot of missing information so I will go through each option for you:
Read here about how to setup a sandbox account if you don't already have one: https://developer.paypal.com/docs/classic/lifecycle/sb_create-accounts/
Bare in mind that your sandbox account is entirely separate in every way from your live paypal account. All settings will need to be checked and customised as needed.
Set up your IPN URL on your sandbox account Here: https://www.sandbox.paypal.com/uk/cgi-bin/webscr?cmd=_profile-ipn-notify
Once set up, you then need to download and set your code (PHP or something else) to the listener (referenced in the above sandbox profile link). You can find IPN code examples here: https://github.com/paypal/ipn-code-samples
When that's all set you need to set your listener to using the sandbox mode and then log in to your live account and then run the IPN simulator from here: https://developer.paypal.com/developer/ipnSimulator/
Paypal will send messages to your IPN listener and you need to do something with the messages, typically output them into some sort of log file. Any issues, you can read Paypals feedback and IPN data/delivery information here https://www.sandbox.paypal.com/uk/cgi-bin/webscr?cmd=_display-ipns-history&nav=0.3.4 [Found from History->ipnHistory on the Paypal menu] and it should list them out. You can resend any failed or queued or undelivered messages.
Paypal is a terribly documented and terribly structured system for coding with. I hate it. Use Stripe.
I love bullet points.
Paypal claims they will try and resend failed/queued IPNs 16 times over 5 days. I have yet to see this, you need to resend them manually (at least, sandbox ones)
Please remember all the settings and changes you have made to your Sandbox account will need to be also made to your live account before you make your payment system live!
Solution
My return_URL is the location of my IPN.php file which take care of the data sent and received. My problem is that the IPN is only firing when I click the "Return to merchant website" and not when the payment is actually completed
What you have done, from reading your comments, is set your IPN page to being your return from paypal page, this is NOT the way IPN is supposed to work, the IPN page should never be visited by the customer, only ever by Paypal.
Read through my anwser (points 2,3,4) and set up your IPN web link as I have described above, your return_url value should be a basic page to say to the customer "transaction complete". The IPN page is defined on your paypal accounts (sandbox and live) as I stated above.
This will fix your problem.
I new to paypal integration in asp.net . I found very difficult to understand the paypal api .
I under stood two types -
inline html form ( i.e is also called buy button )
payflow api
my questions are :
which one must be used for recurring payment ( subcription packages for end user)?
in first type , few sites suggested to use IPN for confirmation of payment. I want to know is it neccessary since without using IPN, also using notify_url we can confirm the payment success (as per my knowledge notify_url returns to your site when payment is completed at paypal site)?
for recurring payment , do i need to store user account details (i.e credt card or paypal account ) in my databas?
please do reply with you suggestion .
Thanks
1) You can do it with both, actually. If you want to stick with basic HTML forms then you'd be using Payments Standard, and they call it "Subscriptions". You can easily create a Subscription button from within your PayPal account.
If you're using the API then they call it Recurring Payments (or Recurring Billing). You would use Express Checkout for the PayPal signups, and Payments Pro if you want to handle credit cards directly on your site without any redirect to PayPal.
IPN is useful regardless of what integration method you're using, however, don't get it confused with PDT. PDT sends data back to your site's thank you page, or whatever final page you setup for it, and it only works with Payments Standard. When PDT is configured on Payments Standard, even with Auto-Return enabled, there is no guarantee the user will make it back to your return URL. IPN is very similar, but data will always be POSTed to your IPN listener regardless of whether or not the user makes it back to your site.
You'll also want to use IPN to handle updates for future payments on a subscription / recurring profile. For example, the actual payments, cancelations, suspensions, reactivations, etc.
The notify_url parameter you mentioned is used for IPN. Again, though, this is separate from PDT. A common mistake I've seen many times is when people have their PDT and IPN both set to the same URL. Then when people do make it back to your thank you page, the code actually runs twice. Once from the user actually hitting it, and once again from PayPal's IPN server hitting it. So make sure to avoid that sort of thing.
3) No, you will never save credit card details to your server. The subscription / recurring system handles that using the data that PayPal saves on their servers.
I have seen this done before so I know it's possible - when you redirect to a PayPal checkout from your site, paypal presents you with 2 options to make a payment. One is "Login with PayPal Account" and the other one is something like "Don't have a PayPal account? Pay with Credit/Debit Card". By default the second option is collapsed, but I've seen sites where it's uncollapsed by default. How can I achieve this effect?
NB - previous posts suggested that it's done by cookies, and if PayPal detects that you have a PayPal account it will display the first option (login with PayPal). However I've seen other sites that display the 'Credit/Debit' card option uncollapsed even if you've got a paypal account. Do they clear the cookies somehow before redirecting you to PayPal?
Thanks
just add :)
<input type="hidden" name="landing_page" value="billing">
You are redirected to billing page...
You can not set the credit card option to show by default if you are using Website Payments Standard. This is set by cookies. However, if you are using Express Checkout you can set the credit card section to show by default. This is most likely what you have seen on other sites. If you are using Express Checkout, and want to set this all you need to do is passing over the following 2 variables and values in your SetExpressCheckout API call.
SOLUTIONTYPE=Sole
LANDINGPAGE=Billing
You also need to make sure you have PayPal account optional turned on in your PayPal account. This is section is found in your profile.
A little bit late with this one but i recently had the same issue using Express Checkout JS
Managed to resolve this by adding the following to the js object
experience: {
flow_config: {
landing_page_type: "billing",
}
}
I came across from various sites regarding the same ask while I have workaround to achieve this for the time being. :) But your finding resolved my issue, that's cookies cause after I have my workaround applied.
The workaround to default the Paypal payment to Credit/Debit card option is to add the variables on your button such as country=COUNTRY_VALUE or any other variables you would think customer is fine to have it defaulted. Variables page https://developer.paypal.com/webapps/developer/docs/classic/paypal-payments-standard/integration-guide/Appx_websitestandard_htmlvariables/#id08A6HI0J0VU
Hope it helps you. :)
We had an error in one of our scripts and even if the notify_url from PayPal was called properly, our system was not able to record it since it had errors.
Therefore we have several transactions in PayPal that were not added to our Data Base, is there any way to recreate PayPal's IPN or re-execute the notify_url for each transaction?
Thanks!
FYI: we are using Website Payments Standard.
Go into your PayPal profile, then into Instant Payment Notification Preferences. You'll see a link there for IPN history. You can see all of the IPN's that have been sent by PayPal to your system and their status. You can select IPN's from this history list resend them as needed so your system can process them accordingly.
PayPal states:
Note: If you have turned on Auto
Return and have chosen to turn on
PayPal Account Optional for new users,
a new user will not be automatically
directed back to your website, but
will be given the option to return.
But if some of the customers don't get "Auto Returned", how do I handle them programmatically?
Paypal does not guarantee autoreturn especially when Paypal Account - optional setting is on.
The right way to handle the integration is with Instant Payment Notification (IPN) option. Using IPN Paypal will make POSTS to your page notifying you of payment events. The following link explains the IPN process pretty well.
To summarize, you will write code that will trap posts from Paypal and then make sure to update your billing data accordingly.
Also, IPN messages might be slightly delayed.
Create a script (cron or what) that does check for such payments at paypal perodically (e.g. every hour).
Is this what you mean?
https://www.paypal.com/cgi-bin/webscr?cmd=p/mer/express_return_summary-outside
If not, you may need to be a little more specific with your question. Like - are you using paypal pro? How are your customers checking out? etc. And now that I read the answer below mine, I wonder if you are even talking about the payment process and not something else.