PayPal as payment gateway on my marketplace website - paypal

I have a website where my users can create custom pages to sell virtual things. At the moment, the only payment gateway their buyers can use is Stripe since it's the only my website currently supports. I would like to add PayPal support, so my sellers can enter their PayPal email, then buyers can purchase goods using PayPal.
I looked into PayPal's API, and the only thing I could really find was the checkout API for commerce. I'm not interested in having any of that fancy API, or needing to have sellers enter API key(s). I simply want sellers to enter their PayPal email, and boom - done. I also do not want to have to get a verified business on PayPal if possible since I still need to do a lot of work before submitting my application for approval from PayPal.
Example:
Joe creates a page on my website to sell pictures. He wants to add PayPal support, so he goes to my website's dashboard, enters his PayPal email, and then clicks confirm. Now his buyers can purchase his pictures using PayPal.
Where should I be looking for information on this?

Create a PayPal business account. Follow the Set up standard payments guide and make 2 routes on your server, one for 'Create Order' and one for 'Capture Order', documented here. Both routes should return only JSON data (no HTML or text). Inside the 2nd route, when the capture API is successful you should store its resulting payment details in your database (particularly purchase_units[0].payments.captures[0].id, which is the PayPal transaction ID) and perform any necessary business logic (such as sending confirmation emails or reserving product) immediately before forwarding your return JSON to the frontend caller.
Pair those 2 routes with the frontend approval flow: https://developer.paypal.com/demo/checkout/#/pattern/server
To send the funds to another account, specify a payee in the order creation request.

Related

Simple PayPal Payment Form or Email Link

I do all my accounting in Quickbooks Online and customers can pay invoices online. However sometimes I need to accept a payment that isn't tied to one specific invoice. I'd greatly appreciate it if someone can confirm which of these options are feasible and simplest/easiest way to implement. I'd like to avoid a PayPal Payments Pro Subscription as I will rarely need this functionality but if that's the only way, then so be it.
1) Send the customer a link to a simple payment form where either they can enter any payment amount or it pre-populates with the requested amount. (I'd prefer not to have to code a payment form on my site. I'd just like to do it with an iframe, framing in a PayPal hosted payment form.)
2) Create a payment request but email them the link to the request payment form myself rather than the request being mailed separately from PayPal.
You might have a look at the "Quickbooks Payment Request Wizard". it allows you to easily insert a PayPal payment button in e-mail versions of your QuickBooks invoices and estimates.
https://www.paypal.com/us/cgi-bin/?cmd=xpt/Marketplaces/seller/QuickBooksPaymentWizardIntro-outside
A similar version of this tool allows you to embed a payment button into an Outlook email.
https://www.paypal.com/cgi-bin/webscr?cmd=p/sell/payment_wizard_intro-outside
Both tools are free and require only a standard PayPal Business or Premier account.

Verifying paypal account

I am building website which requires customer to update paypal account.
Is there anyway to check the reality of customer's account?
When my customer fill out their paypal account in my site, I want them to be directed to paypal login page to login and paypal will return the result.
Does paypal api support this situation?
Pretty much any implementation of PayPal you choose would follow the flow you mentioned.
Payments Standard would allow you to create basic buttons or create an HTML form and POST directly to PayPal to process. It would send the user to PayPal for login and approval to complete the payment. The transaction details would include the payer status (verified or unverified) as well as the address status (confirmed or unconfirmed) and lots of other details about the order.
Express Checkout is basically the API version of Standard, but it's much more advanced and open to integrate in the way that works best for your site or application. In this case, some of buyer/transaction data is available during the process within your app through API requests and responses, and then you can also get to it via transaction details after the fact just like payments standard provides.
Another option would be to use Adaptive Payments, but if you're doing a general payment of any kind you probably don't need that. That's what you would use if/when you start wanting to split payments among multiple receivers within the same transaction, setup preapproval profiles, etc.
If you happen to be working with PHP my class library for PayPal will make the API calls very simple for you.
You could do what PayPal itself does when you register. Send them a few cents and have them tell you how many when they get it. The payment itself will fail if the account doesn't exist, and telling you how many cents proves that they own the account.

PayPal API - How to keep the payment process on my website?

I run a small marketplace with multiple sellers where buyers can buy items and pay with PayPal. The problem is, when someone makes a payment, they are then displayed the "Payment Confirmation" on the PayPal website and are given a choice to either return to their PayPal account, or return to the website.
Is there any way to keep the payment flow on my website, except for the payment part? I notice when buying on Etsy for example, the buyer goes to PayPal to make the payment and is then immediately returned to Etsy for the payment confirmation. They never see the PayPal payment confirmation page.
I assume it could be because Etsy and PayPal have a special arrangement that isn't available to other sites? Or am I missing something in the API?
Right now, with the normal PayPal API, this is what buyers see:
NAME, you've just completed your payment.
Your transaction ID for this payment is: XXXXXXXXXXXXXXXXXXXX.
We'll send a confirmation email to your#email.com
Go to PayPal account overview.
Go back to "seller#email.com".
I can't even figure out how to change the "Go back to..." link to my website name in the hidden fields. PayPal just chooses to display the seller's (the person that received the payment) email address.
Is there any way to at least set a website name for them to return to with hidden variables? Keep in mind that I have different sellers, so it's not something I could set inside each seller's PayPal account.
Thank you :)
I assume you are using Express Checkout with Set/Get/Do EC API integration. Please check the below document for experience options available with Express Checkout API.
https://developer.paypal.com/webapps/developer/docs/classic/express-checkout/integration-guide/ECCustomizing/
The 'useraction=commit' in the PayPal payment auth url triigers the 'Buy' button. If you do not send that request paramter then it will show 'continue' button and you can complete rest of the process on your site.
However, if you are using Paypal Payment Standard product then you need to use Express Checkout to accomplish the outcome you are seeking.

Paypal Payments - What to store from them?

I was wondering, if you have coded a website which uses paypal payments as a payment method (the kind of payments where you get redirected to their site for payment, not web payment pro).
What kind of details can I store? Is it just their paypal email address that can get supplied to me or do other details regarding their paypal account also get sent to me via their API which can be stored on my site?
As already mentioned, you get the details of the transaction, so email address, name, delivery address and the contents of the shopping cart.
You can send custom parameters from your form though, such as phone number.
Paypal, by default doesn't ask users to provide a phone number and therefore usually doesn't send you one. However, it's often useful for retailers to have a customers phone number.
If your shopping cart is populated by your website and then customers are asked to complete a brief, name, phone number, email form before submitting to Paypals site you can send these extra form fields to Paypal and have them come back to your server for storage/checking.
However... I found it very erratic! There seemed to be a problem with my account when I did this and the PP technical team couldn't explain why it was only sometimes working! I gave up in the end and found a Payment gateway with credit card and Paypal integration, now all my payments come through the same channel and callback methods regardless of type.
http://www.securehosting.com I use now.
Mostly only the details pertaining to the transaction can be retrieved in the usual procedure, as it appears even when you see the transaction details in your paypal account when you receive payments. However, it would be helpful for you if you can provide more information on what you wish to look for.

Could I make users config their PayPal account info in my website, so they can receive payments without giving me private info?

I'm building a web application and I would like that each user could configure their necessary information about their PayPal accounts in order to receive payments from the app. Can this be done?
I've seen a website that asks each user to type their PayPal email in order to receive payments, but I don't know what I have to do programmatically in order to use that user's account information so that person receives the payment.
Thanks,
Brian
Yes, it is possible to do this using PayPal Website Payments integration. Essentially your client needs to set their PayPal account up to receive payments, this usually requires them to prove that they're a legitimate business, although charities and some other personal reasons for taking payments such as wedding gifts are allowed as well.
Once setup they will be given a unique vendor id which can be embedded into a form on your website. When a customer wants to purchase something, this vendor id is passed to paypal and they handle the transaction from there. This means you don't have to store any credit card information on your website.
Check out the PayPal Website integration guide here: https://www.paypalobjects.com/en_US/pdf/PP_WebsitePaymentsStandard_IntegrationGuide.pdf