After getting any type of IPN into my system fine, my issue now is how to handle disputes/claims/etc without logging into paypal store each time.
How can I post messages or escalate the claim from my own system?
I've done some googling and found there are these API calls:
CheckIsDisputeAllowed, CloseDispute,OpenDispute, UpdateDisputeItems, PostDisputeMessage, OpenExternalDispute, CloseExternalDispute
and subsequently have found these maybe in the payflow pro api. However, I am using the web payments pro system.
Has anyone else done this?
Essentially handling all claims/disputes from their own system rather than logging into paypal each time?
Oh and currently I am using the sandbox, so if you know whether or not these work let me know. So I can save myself some frustration.
Thanks
PayPal only give merchants with a high volume of monthly transaction access to the dispute APIs. The threshold doesn't seem to be fixed, I've heard different figures from the PayPal business support team in the UK. But as a rule of thumb, if you're turning over in excess of a $1m annually give them a call and put in a request for access.
Related
I've been developing a marketplace type platform. Implementing PayPal Payouts seemed to be perfect for dealing with commissions. Especially being as PayPal will be handling all payments too.
I've successfully developed this part of the system. Inc. the webhook and verifying transmissions.
Now I wish to get my eBay sales info into my system. So that we can see it all in one place and have the system work the commissions out for those sales too. Having just invested the time into learning and implementing this PayPal API integration, it would be nice to use it for getting this data too.
So having tested the sandbox app thoroughly for the Payouts, I configured the live one. This is in my PayPal developer account where the app settings are. I've done nothing in my main Paypal account. Am I meant too?
My live webhook URL is just set to log all received data from PayPal. So I waited for a eBay sale and went to check the log but no data received? Am I misunderstanding this? The webhook is subscribed to all events.
The Drupal Commerce shopping cart I'm using already implements a IPN. Is it the IPN that I need to be thinking about? I'd prefer to not interfere with it to be honest, to keep future security updates safer. That said, I suspect there will be a way to extend it.
I guess the actual question is - what is the easiest way to get eBay sales info through PayPal?
Any help would be much appreciated.
eBay has their own system for that called Platform Notifications.
If I'm working with payment data, and I just need extra data from eBay, I will typically start with PayPal IPN / Webhooks and then use the eBay APIs within my IPN app to pull and push data as necessary.
Of course, depending on the scenario, you may decide to build out your primary solution inside of an eBay Platform Notifications app, and then make calls to PayPal APIs within that if you need to pull/push data.
I'm new to PayPal and overwhelmed by all the possible approaches for integrating with PayPal.
As a start I want to implement one single subscription with monthly recurring payment. When the user returns to the site after fulfilling the payment, he/she will instantly be upgraded to "premium" member (digital product only - no shipping involved).
The first alternative I've looked into is the Express Checkout API, which looks ok, but is there any simpler way to do it?
Can I for example create a standard button (JS button or the form based), but still be able to verify the payment details when the user returns, using either the REST API, IPN or something else?
Any hints on best practices are appreciated.
Yes, there are entirely too many ways to solve this problem by now.
You can probably satisfy your requirements via buttons (aka Standard), Express Checkout (aka Pro) style APIs, or RESTful APIs, but there are a few gotchas to know:
First, PayPal has several products to do recurring payments; these products have functional differences and are tied to different integration styles. So (for example) PayPal's product called "subscriptions" (tied to Website Standard aka buttons) has different (and generally less flexible) capabilities than "recurring payments" (tied to Express Checkout) which in turn differs from "billing agreements" (tied to REST APIs, although the term "billing agreements" is also used in the express checkout recurring payments product). Oh, and there's another similar product tied to the Adaptive Payments suite of APIs.
Confused yet? Sorry. But it is important to determine whether the specific product you want to use will satisfy your requirements first before you do any integration, or you might end up redoing that integration work later (and potentially have to migrate customers, if you have already opened your business) in order to get access to specific features of another product later on. E.g., the subscriptions product has very limited ability for sellers to modify the subscriptions after they are set up. If that is OK, then great, use it -- it's simple to integrate. If I can oversimplify a bit: the Standard subscriptions product is the oldest and most limited; the Pro recurring payments is more flexible and mature; the REST billing agreement product is the newest, very flexible, but not yet as widely used; it may lack a feature you need today, but is the most likely to be continually improved going forward. I would not personally recommend the Adaptive product, although it also has its benefits.
Now, to your integration question: fortunately all these PayPal products can use IPNs. Unfortunately, IPNs are not instant. They generally arrive quickly (1-2 seconds) but delays can happen and it is quite awkward to be unable to process the customer. I would use IPNs only when shipping physical goods, not for immediate access to digital goods or in other cases where customers are waiting for a page from you. Fortunately, each of the other methods has a way to instantly determine the success of a PayPal action without waiting for an IPN:
Website Standard Payments will include GET or POST variables when it posts the user back to your site that will tell you about the outcome. If you use the Payment Data Transfer feature, these variables will include signature information so that you can post them back to PayPal & PayPal will verify their validity (so that a would-be thief could not fool you by engineering a post that looks like a PayPal success redirect).
The two API-based methods are even easier: the APIs themselves return all the information you need in the API response. So wherever in your code you make the call to create the subscription/agreement, if you get back a success then do your work to make your user premium.
There is the odd case of a user successfully paying and then getting "lost", as it were, e.g. the redirect failing/browser closing before they return to your site, or your site choking while trying to turn on the user. For this reason many people advise using IPNs, which PayPal will attempt to redeliver until you verify them back to PayPal. Not a bad idea, depending.
And of course you can call search & get details type APIs to get information about your transactions & agreements at PayPal -- although again, you will need to integrate with the right API that matches the product you are integrated with (e.g. Standard-based subscriptions won't show up if you ask the REST interface for billing agreements).
Hope this helps.
I am integrating PayPal into a Java payment service and was wondering if there is easy way to tell if PayPal API is up and running. I checked the documentation and found the error code 10101 - This API Temporarily Unavailable but couldn't find a method that should be used to poll the service. The idea is if the API is down I won't show PayPal as available payment option. The actual integration is Express checkout.
It's very, very rare that Paypal live APIs go down (in 2009 PayPal was doing $3,000 per second in transactions so a downtime costs them LOTS of money). I don't know that I would make an API call just to see if it's down. Just handle the errors when they happen.
I have gone through the Paypal website, looked at their dozens of FAQS and documents, and still don't have a great idea as to how to integrate the Paypal Masspay API. I was hoping I'd have better luck on here :).
I have an app that gives users prizes, with an oracle SQL database that populates whenever a user redeems a prize.
Would I need to download the SDK onto my app, include the PayPal IPN, and call the MassPay API each time a user redeems a prize?
I have attempted to contact Paypal multiple times to no avail.
Not sure which aspect of your question is most problematic for you. I assume that you've looked at the concept diagram at
https://www.paypal.com/webapps/mpp/mass-payments
where the Excel worksheet is roughly analogous to a table's (or query's) worth of payees.
You would normally provide scripting code on your server/website that would submit that payee/amount list through the MassPay API calls against the PayPal website. If you only have one or two payees at a time, this is not the usual way to make a payment to your users (one-offs are generally Adaptive Payments API). It's not a downloadable app, though.
So is your app something the users download and interact with your site? If so, the correct place to put the code that faces PayPal (and actually transfers money around) is on your site's server. Not on the handset.
I finally reached a capable support member of the PayPal Team. The answer I got:
No SDK needed. All I need to do is set up an API call from my server to their server each time I want to reference a payment.
We are using PayPal on a faily large website, integration went well with all code helpers from the integration wizard. Now we had processed a number of transactions in the first day of putting this live but a small percentage (5%) essentially had there transaction processed by PayPal but our system recieved a TimeOut. I believe this happens at the point where we submit the "DoExpressCheckoutPayment" Method. and because of this the system cannot tell if the payment has been complete or not.
This is a real tough one, as the website has a live currency that we need to update so paypal taking the money but the system not updating is not acceptable.
I'm interested to know if this is a common problem and how we should go about handeling it. I'm doing my best to re-create the issue but cannot at this time.
This looks like a similar problem - https://www.x.com/thread/45136
Any help would be appriciated!
Add retry logic to your application. This is a common way of handling this problem.
After looking into this in more depth, retry logic is not a good idea as the TimeOut is due to the response (So paypal has most likly credited the account).
Instant Payment Notification (IPN) seems to be the solution.