I have an issue right now that is killing me, I have implemented several payment options but never used paypal, I don't know why is it so complicated.
The website already exists and wasn't developed by myself.
I don't know the ammount of the order it is dynamic, so the "create payment buttons" on the paypal website doesn't work for me, at this point i developed a solution using
PayPal developers
But it turns out that i only have the option to pay with a PayPal account or register a PayPal account, I do not want to force customers to do this, it has no sense. is there any relatively easy solution out there using the same PayPal API?
EDIT
The whole site code is in PHP so i need the solution in this language
As you have mentioned that you are aware of one payment method i.e. Express Checkout ( in which user needs to have a valid Paypal account) so the other method which I think you need is the Direct Payment (i.e. a user can pay with credit cards directly without any Paypal account) API.
For this direct payment api you need to enable Website Payment Pro WPP , here you can get info about WPP.
Related
I integrated OmniPay in my project few days ago, and I wondered if there is any option coming with it to actually enable credit card payments.
https://github.com/thephpleague/omnipay
I want to understand how to enable the PayPal credit card payments (which do not require an paypal account) using it.
What PayPal API settings should I enable?
How can I code this?
Is there any option to do this using PayPal & PHP at all ?
I tried to document myself on this and I couldn't find any answer to this question. Neither on the https://github.com/thephpleague/omnipay nor on Stack.
The setting mentioned in comments, 'PayPal Account Optional' exists so you have the ability to only accept payments from people with an account (when set to 'No').
If set to 'Yes', payments without an account can be possible. But whether the option will be offered to a particular payer in a particular PayPal checkout attempt depends on very many factors, which you do not control.
The only way to have some guarantee of a guest method being offered is to show a credit card form on your own site, before the buyer reaches a PayPal.com page, using the black 'Debit or Credit Card' button that is part of the JS SDK. You can see an example demo here: https://developer.paypal.com/demo/checkout/#/pattern/server
That JS code used for payer approval can be paired with any backend to create and capture the order via API -- including Omnipay, which essentially acts as a proxy for the PayPal API. This JS replaces any redirect over to PayPal which you might be familiar with from oler legacy integrations; the JS SDK is a more modern way to get the payer's approval, via a small in-context window or open a credit card form iframe instead which is a better UX than redirecting away anyway.
I want my PHP web application to have the ability to save the user's PayPal details in their user account.
When they go to purchase items, rather than going through the standard PayPal form, it will automatically grab the user's PayPal details from their user account, and make the payment directly from my website. There is definitely a way to do this, as I have seen this feature on sites such as Freelancer.com
Thanks for the help! :)
No, you don't need Payments Pro for that. That would only be if you want to do it with direct credit cards. What you're after in general is called Reference Transactions, and when done with PayPal Express Checkout it uses Billing Agreements.
You'll use Express Checkout and/or Payments Pro (optional) to process an original authorization or sale transaction. Then, you can send that ID you get back in that original transaction along with a new amount in the DoReferenceTransaction API and that new amount will be instantly processed without any redirection or further authorization required.
I am trying to figure out exactly what payment solution to use for my site.
I would like to do the same thing as Spotify (https://www.spotify.com/us/freetrial/ - You'll need to login to see it), allowing users to choose whether they want to pay with PayPal or use a credit card and then taking them to a payment selection screen (on PayPal), then returning them to my site to click confirm and buy.
I am already paying for recurring payments (even though I've yet to use it) and am unsure if that is applicable here. I have also integrated express checkout but I don't know if it will allow recurring payments.
EDIT: Do I need a separate token for recurring payments? Do I have to use the old recurring payments checkout screen? How can this be done as efficiently as possible, like Spotify? Here are my efforts to create a recurring payments profile after express checkout: http://pastie.org/private/sakzopltnwfv93wwmduqq
Diagram:
Select Buy & PayPal (subscription) --> Choose Payment (on PayPal) --> confirm & pay (my site)
This is what spotify's checkout looks like (It wouldn't say update for first time users):
Are they using recurring payments + express checkout? I would really appreciate some help with this.
Yes, you can get this done with Express Checkout + Recurring Payments. That said, if the person chooses credit card when setting up a recurring payment they will have to create a PayPal account. If they're paying a non-recurring checkout then they could use the credit card option without creating a PayPal account.
You mentioned that you're already paying for recurring payments..?? Are you referring to Payments Pro? If so, you don't need to pay for that to use EC + RP. Pro is only necessary if you want to process credit cards directly on your site without ever redirecting to PayPal. This can sometimes make things seem a little more professional and would also give you the ability to let people setup recurring payments without creating a PayPal account when using a credit card.
When using EC you just need to make sure to include the billing agreement parameters in order to get a token back that will work within CreateRecurringPaymentsProfile. Refer to the SetExpressCheckout API reference for more details on that.
This is kind of old now, but is still useful. Take a look at this sample express checkout set of api calls. You'll notice it uses the same token throughout all of the calls.
Just like Spotify -you would need to build that option on your site. If the user chooses to subscribe with a credit card - use the recurring payments w/ direct credit card (see below). If the user chooses to subscribe with a PayPal account - use the recurring payments w/ PayPal Account (this is what Andrew is suggesting above in his response).
Here are the how-to guides:
For direct credit card subscriptions: https://www.x.com/developers/paypal/documentation-tools/paypal-payments-pro/how-set-recurring-payments-profile-using-direct-payment
For PayPal Account subscriptions: https://www.x.com/developers/paypal/documentation-tools/express-checkout/how-to/ht_ec-recurringPaymentProfile-curl-etc
The APIs would allow you to do things like trial periods, setup fee, etc. For example here is a how to on building a freemium kind of model: https://www.x.com/developers/paypal/documentation-tools/express-checkout/how-to/ht_ec-freeTrialRecurringPayments-curl-etc
I want to Use the Paypal API for chained payment (adaptive payment), but i wan't that the user will not get out from my site, so I need to use the DoDirectPayment also...
Is it possible to integrate them both?
I couldn't found the answer for this question...
Thanks.
They both are part of two different API suites from PayPal. The chained payment is from Adaptive Payments API and DoDirectPayment is from PayPal Payments Pro (Direct edition). So make sure you sign up for them as required.
As Prash mentioned, for chained payments w/ PayPal accounts you must redirect to PayPal. But instead of using full browser redirect - you can use the Embedded Payments experience that uses iframe/mini-browser window that provides a more contextual experience to your users.
The user must leave your site in order to login to PayPal, however they are redirected back to your site afterwards where you can process the payment.
I have a database where you can select articles etc, users have an account, it's all in mysql and php (i guess you don't need that code).
What i was wondering was how to write a script that allows users to pay online for the articles they selected?
It doesn't need to be any code, just ideas / hints / tips / ... (that are doable in PHP or something similar)
Thanks in advance!!
-Samuel
You have to do that through a service that collects money, such as paypal or a bank.
You make an account there, and they will provide the necessary files and documentation to do that.
Usually it will mean
when the user wants to pay, you redirect them to a specific page in the payment site
you host an IPN (Instant Payment Notification) file where that site will contact you when he receives a payment
I've done some paypal coding before and it is easy to set up, suggest that you should search for payment gateway that, i've work with ipay88.com before its one of payment gateway at my place.
Usually if you setup the paypal for the business transaction you will need to register as merchant account and they will charge you per transaction, same goes with payment gateway.
It is a very broad question. But basically you need to integrate some payment module, such as paypal. Look at their website, where there are tutorials on how to get it working with php.