I have looked at Paypal's HTML Variables for PayPal Payments Standard very closely
and looked all over the web for an answer. And I'm pretty sure I already know the answer to my own question, but it seems too absurd. So I'm asking just to make sure I'm not missing anything.
I realize this is basically a duplicate to this question, but he was given one stupid answer.
(Update: The stupid answer has been removed, and now there is a very good answer by another user)
I am collecting the customer's billing and shipping addresses on my site. I can send the billing address, but not the shipping address to PayPal.
The reason I want to send the shipping address is to use PayPal's shipping label service.
I realize that I could set the no_shipping variable to 2 to have PayPal prompt for and require a shipping address, but I am using the address they input on my site to calculate shipping costs with USPS' API. So I need to prompt on the site, and I don't want to make the customer fill in their address a SECOND time on PayPal.
So is there a way to make this work?
I need to:
Calculate shipping costs
Print labels
Keep the checkout process simple and fast
The document you reference does actually answer your question, although admittedly it is hard to pull out the specific answer you are looking for from all the possibilities. Look specifically here:
https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/formbasics/#id08A6F0SJ04Y
... under the heading "Overriding Addresses Stored With PayPal."
Or at least, that is the section for passing in a shipping address for PayPal account holders. If you are using PayPal account optional then it's even more complicated, see here:
https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/Appx_BillingShippingAddress/#id08A9BM00A5Z
Short answer: you can't pass in two separate addresses, but the address you pass is (usually, depending upon several related variables & conditions) treated as shipping address.
Part of the reason this is so complicated is that there are so many variants of checkout flows. PayPal recommends/prefers that you let them collect the buyer's shipping (and billing, where/if required) on their page and they will pass it back to you. (And this is by far the best for PayPal accountholders since they probably have the address(es) on file already with PayPal and thus don't have to type them at all.) But PayPal knows that isn't how every merchant wants to do it so the product is flexible -- to the point of being so complex it is almost incomprehensible at times.
Related
I'm using Paypal Pro API to process my purchase. It works well with card number, expire date and security code but I need to validate the address and the owner name of the card as well.
Is there any parameters or functions in the API to do this? I didn't found anything in the docs. Or maybe it is an additional option in the Paypal developer control panel?
Assuming that we're talking about the Payflow Gateway API (for PayPal Payments Pro and other things), it appears you can do address verification--see the section entitled Using Address Verification Service. Notice the note there that says it doesn't check street names, in case that's a deal-breaker for you.
As for name validation, I can't find anything about that other than that it's typically passed in the sale transaction itself (section: Typical Sale Transaction Parameter String). Whether it's then validated by the banks as part of their end of the transaction, I couldn't say.
Hope that gets you a bit further. I haven't worked with any of this stuff myself.
In the example for accepting payments by credit card (link) the billing address information is not present. However, the payment appears to go through. What are the circumstances that require me to include this data?
In the classic API, the address fields are required. I can't find a field reference for REST, oddly enough. I suppose you could omit them and try a sandbox call to see if it fails, but omitting the address means no address verification (done against the zip code). It opens you up some to fraud.
Is it possible to collect user billing detail after successful payment how?
You can collect any information you want at any time, but you might be slightly limited based on PayPal features you're using.
For example, if you're using a standard payment button you could setup a form for them to fill out on your return page after they've completed. There is no guarantee they'll even make it to this page, though, and even if they do they may choose not to fill out your form. As such, it's generally recommended to collect any necessary data prior to sending the user over to PayPal for payment.
That said, one of the benefits of using PayPal for buyers is that they don't have to fill in forms and don't have to share billing information with you, so you might actually lose sales if you do that.
PayPal will send you an address via IPN (or GetExpressCheckoutDetails, for example) but they only consider that a shipping address. If I'm working with a system that requires both a billing and a shipping I usually just use that same address for both.
I need to be able to initiate transactions between two unknown parties via Paypal, say donor and recipient, without ever having to be exposed to the money itself - is this possible?
Basically, I want a donor to be able to click the donate button, fill in the amount and then be passed to Paypal to verify their details. My site will also supply the recipients account details to Paypal so the money goes directly to them rather than to my Paypal account. Essentially I want to enable transactions without having any legal or tax responsibilities for the money.
This needs to happen for an unlimited number of donors and recipients.
Can I do this? Paypal haven't been very helpful at all.
I am sorry to hear that you feel PayPal hasn't been helpful at all, but there are many resources at your disposal. It sounds like you have just not been asking the right person, or asking the right questions. Customer service for large corporations are difficult to traverse, but there are many people at PayPal who would have been easily able to answer your questions.
I always say this, though i'm not sure how many times on this forum: It is possible to do whatever you want with PayPal. Give me your idea, I will give you the way. Whatever you want to do can be done with the right coding.
You can use Website Payments Standard (WPS), and you would only need your merchant's email address to create buttons that go to their account. (set the business variable)
You can also use third party API calls for Website Payments Pro (WPP) and Express Checkout (EC) to process direct credit card transactions as well as PayPal payments via API for your merchants. (set the subject variable to the seller you're submitting the API on behalf of)
As for not having any legal or tax responsibilities for offering the service of payment connectivity (marketplace functionality) between sellers and merchants: IMHO you are dreaming. However, you will want to contact your local legal and tax representative to ask what liability you have. Though this should go without saying; this is StackOverflow, where you should ask questions regarding programming, not tax and legal advice.
Your tax and legal concerns are separate concerns, irrelevant to the technical question of whether it is possible to do what you want with PayPal or not.
I'm writing a basic ecommerce website and the only payment mean is Paypal.
Users don't have to register however, they will be mailed their product.
As far as I know you to be registered to use Paypal, and therefore Paypal stores your personnal informations (Address, names, etc..)
So my question is do I need to ask to users to enter their personnal informations while it is available on Paypal, and I guess, hope, there is an API to retrieve them.
Thank you
You have to ask for their e-mail addresses where they want the product delivered, as it do not neccesarily matches the one they used on PayPal. You will get an invoice in e-mail form PayPal for accounting purposes that sould do.
If you need customer details, you should look into the Instant Payment Notification feature of PayPal, you basically give a URL on your site, then PayPal POST-s all the details to that script. This way you can be sure that the customer actually payed for the services.
There is an extra setep involved, to verify the details you got in your IPN script as anyone who knows its URL can post anything to your script. Also a good idea to put your it into a random directory like dsf6dfsjj345432f8dsfj5j243826d and publish no liks to it, to minimze the possibility of someone trying to play around with your script.
If I understand your question correctly, you do not need to store a client's details on your end. Paypal just requires pricing, product and an invoice reference. They manage storing and securing customer CC details (for example). You might consider storing some client details (such as email, name, address and so on.... but not CC details).
Paypal will often post back order details, which do include client details (i.e. email, contact, shipping details and so on). I, however, am not entirely sure that they supply an API where this information can queried retrospectively.... maybe someone else can help on this on.
HTH and good luck
Look into their Express Checkout approach. That is designed for "preparing" a transaction which you later on finalize from your end, after you have received the customers shipping address. What you decide to do with that is up to you.