We use Paypal as one of the payment options on our site where we sell digital goods. Integration is via Shopify's ActiveMerchant gem.
There are 2 payment paths (per Paypal reqs, I believe): one is "pay by credit card" and the other "pay with Paypal" although they end up at the same place on Paypal, I believe, just with different forms showing (e.g. defaulting to credit card vs. defaulting to Paypal login).
In terms of ActiveMerchant integration, the call is identical for the 2 paths with the difference of one parameter, allow_guest_checkout
:
response = EXPRESS_GATEWAY.setup_purchase(order.total * 100.0,
:ip => request.remote_ip,
:return_url => checkout_paypal_ec_return_url,
:cancel_return_url => checkout_url,
:items => collect_items_for_paypal(order),
:order_id => order.id,
:allow_guest_checkout => params[:cc]=='true',
:max_amount => order.total * 100.0,
:req_confirm_shipping => 0,
:no_shipping => 1
)
What is happening is that if a user purchases with allow_guest_checkout
as true, we correctly get micropayments fees, but otherwise the transaction fees are Paypal's defaults, which are ridiculous for micropayments.
Now I know that it's possible that someone could go in via the guest checkout path but ultimately log in, but I'm going to assume people who click on the credit card icon actually want to purchase via credit card, not Paypal (as a side question, as far as I can tell when I look at transactions in the Paypal admin interface, there's no way to tell if a payment was made via Paypal or credit card. Is that really the case?)
Anyway--anyone have any suggestions on this before I go digging further?