9
votes

I'm trying to understand the API differences between Paypal's Express Checkout and Website Payment Standard. I know the user-facing differences (Express Checkout forces you to have a Paypal account, while Website Payment Standard also processes credit cards), but I don't know the differences between how you can interface with them programmatically, specifically from a Rails app. Active Merchant says that it supports Express Checkout but doesn't mention Website Payment Standard. For recurring payments, I found this gem, but it only mentions Express Checkout. How does it function (if at all) with Website Payment Standard?

I realize Paypal has multiple APIs, and that while Active Merchant communicates via Paypal's SOAP endpoints, you can also communicate via their URL-based API. I'm just getting confused because there is such an overload of documentation that it's difficult to understand what works with what.

EDIT - To clarify, what I mean by accepting credit cards is not forcing the user to have a Paypal account - having Paypal function solely as a credit card gateway (like AuthNet, for example). I know that credit cards can be tied to your Paypal account, and this is not what I am talking about.

Thanks!

2

2 Answers

9
votes

Rather than edit my previously edited answer, I'm going to try again.

Express Checkout was made to sit next to your existing payment solution as a "Pay with Paypal" option. It has a more full API, and only requires your customers to leave your site to enter their payment information. There is a more detailed writeup here

For clarification, YES, both Paypal's Express Checkout and Website Payment Standard allow you to accept payments from "Guest Accounts" (Customers without paypal accounts.)

I agree that the documentation is sometimes confusing. Since you mention Rails, here is how to enable "Guest Accounts" in Express Checkout with Active Merchant.

I believe express checkout is only available for business acccounts (not personal). If you have a business account, you will find a setting in your paypal profile - Profile>My selling tools>Selling Online>Website preferences Scroll down to PayPal Account Optional and select the On radio button.

Edit: Apparently this option can be found under Profile>Website Payment Preferences>Paypal Account Optional

Then using Active Merchant, call paypal with the allow_guest_checkout (This code is based on the railscast on express checkout episode)

response = EXPRESS_GATEWAY.setup_purchase(current_cart.build_order.price_in_cents,
  :ip                => request.remote_ip,
  :return_url        => new_order_url,
  :cancel_return_url => products_url,
  :allow_guest_checkout => true

)

Hope this helps.

3
votes

Both Website Payment Standard (WPS) & Express Checkout WILL accept credit cards. Express Checkout has more features (e.g. a return POST) and now both allow credit card usage directly, so the differences are smaller.

There is a setting in your paypal profile, probably under Profile=>My selling preferences=>Selling Online section that has the return and custom landing page options.

For a sole gateway function, you need to have Website Payments Pro and/or other form of solution that allows you to do a direct POST, which might include other hurdles like PCI compliance etc.

As for activemerchant, check out the Railscast series on paypal (specifically express checkout)

The videos are a bit old, but I set up a payment solution using activemerchant and paypal express based off those videos just last year. Should work for you