PHP PayPal REST API Client


Today I have published a PHP client for the PayPal REST API. There was an official SDK already, so why another library?

These are the reasons why I have decided to work on a new client:

  1. Using the official SDK felt a bit awkward: a lot of setters, a lot of static methods and a lot of coupling between classes.
  2. I tried to contribute to the official SDK and I failed: I gave myself a week (after work hours) to get a better understanding of the SDK, and to come up with a PR to make the SDK tests run without calling the actual paypal sandbox endpoints. At the end of 6/7 hours of work, I didn’t submit a PR: it would have broken a lot of interfaces and there were still tests calling the sandbox endpoints.
  3. No way of mocking the class making the calls: I was using the official SDK on a side project, and it was not possible to mock only the class that made the real calls – because it was always instantiated with a “new”. I had to implement a class that contained all the logic for using the SDK and mock that.
  4. I didn’t need to call all the endpoints: I only needed to get direct payment working with “paypal” payment method.

So these are the reasons why I delved into the PayPal REST API reference. I played around to make calls and see if I could come up with an OO library that did only what I needed.

Whit PHP PayPal REST API Client you can:

To start using the library just add the following line to your composer.json

"p16/paypal-rest-api-client": "0.1.1"

and then run

composer update p16/paypal-rest-api-client

Giving back to the community much less than what I’ve taken!

Feedback, PR and suggestions are more than welcome!