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?
That is a rather odd problem. In fact, it contradicts what I've understood about the MP payment is that you can either have a normal fee structure or MP. If you need both you have to open a second account. So if you're getting a normal rate the question I'd have for you is are you sure the PayPal account is correct for the one getting the normal rate? I know you can link multiple to an account but I've never tried with the MP structure.
I also am not sure if Payments Standard is like this but in the Payment Details page for each transaction it tells me which were processed with the API. Failing that, the IPN notice is slightly different for most (not all) PayPal notices.
payer_status
will never beVerified
andprotection_eligibility
will never be anything butNone
for Credit Cards. it's not foolproof but it gives some a better idea at any rate.