Does the billing agreement acceptance page support displaying shipping address and payment method? So far I've been unable to induce this behavior. Nor have I found documentation which states if this is or is not possible.
After much time and effort, PayPal tech support finally provided an answer. Turns out the AMT parameter for SetExpressCheckout is responsible for the display of the address and payment controls on the billing agreement page. Passing AMT=0 will hide the controls and a value greater than 0 will unhide the controls.
Related
I'm testing a PayPal integration on the sandbox using cmd=_express-checkout
(https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&useraction=commit&=token=..)
The store I'm working on calcs shipping costs from delivery address before initialising the PayPal transaction, so we need to display the shipping address as entered on our client's site and not the default address held by PayPal for the buyer.
I've tried sending address_override=1 along with the address parameters specified here (https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/Appx_websitestandard_htmlvariables/) but the [Ship To] displayed is still that of the test account default address.
address_override=1
useraction=commit
token=XXXX
address1=XXXX
city=XXXX
state=CA
country=US
zip=XXXXX
first_name=XXX
last_name=XXX
Am I missing something obvious or should I be doing it differently?
Thanks.
Looks like you have set NOSHIPPING=0.
Please change your request and set NOSHIPPING=2
NOSHIPPING
Determines whether PayPal displays shipping address fields on the PayPal pages. For digital goods, this field is required, and you must set it to 1. Value is:
0 — PayPal displays the shipping address on the PayPal pages.
1 — PayPal does not display shipping address fields and removes shipping information from the transaction.
2 — If you do not pass the shipping address, PayPal obtains it from the buyer's account profile.
Another one thing is for Express checkout integration you need to refer the documentation in here:
https://developer.paypal.com/docs/classic/api/merchant/SetExpressCheckout_API_Operation_NVP/
The link that you have provided earlier is for paypal payment standard integration.
This will requires us to pull the log.
Kindly create an MTS ticket at our Technical Portal (https://www.paypal-techsupport.com/) and provide the EC token for further checking.
When using PayPal's payments standard offering, how can it be configured so that when the user is taken to PayPal's site and selects recurring (see screenshot below), the billing address is submitted to the IPN post-back page (and also captured in the IPN history for the transaction)?
Non-recurring payments do currently capture the billing address as expected.
We've tried including and excluding address_override to see if that would make a difference, but it didn't (https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/formbasics/#id08A6F0T0JQN).
To get the billing information, you have to contact PayPal and ask them to submit a ticket to enable receiving the billing information. By default you just get shipping information but not billing to help protect PayPal users.
In this case shipping information was actually what was coming through for the non-recurring payments even though it labeled generically.
UPDATE: apparently this is actually only supported for non-recurring transactions.
I have a working paypal IPN, but ive been wondering: can I somehow set the "I have no paypal account" as the default choice when a customer is directed to paypal?
Short anwer: No, don't do that.
Long answer:
PayPal sets this dynamically based on customer information, primarily the cookie. In other words, people who have logged into PayPal on that device/browser before generally see that option presented first; people who have not are presented content that features the non-PayPal-login more prominently. This is done (primarily) to increase conversion for you (ie get the highest percentage of people to complete the payment & buy from you). Trying to defeat PayPal's code here would usually be counterproductive.
That said, there are also differences in how PayPal's screens are presented between various PayPal products (e.g. Payflow looks different from Express Checkout which looks different from Website Payments Standard) due in part to the mix of payment methods supported by each of these products, and also in part to expected customer mix with each of these. Some of these products also vary their behavior somewhat based on account settings or button/api parameters, again with the goal of being as effective for you as possible. But those parameters are product-specific and the question did not specify which PayPal product you are using.
As an example of variation between (and within) products:
Website Payments Standard (WPS) was designed to allow a merchant to accept payments from everyone, as the merchant's "sole solution." Express Checkout was originally designed to be used alongside a merchant's existing or separate credit card collection page, by merchant who would directly bill credit cards through a separate product (PayPal's DoDirectPayment or another processor). So PayPal's first WPS page was designed to present well to buyers with just credit cards or buyers with PayPal accounts. But a buyer would only be sent to the Express Checkout screen if they proactively chose to use PayPal rather than entering a credit card directly on the merchant's page, so PayPal's first Express Checkout screen could be aimed directly at PayPal account holders to generate the most intuitive buyer experience and highest conversion. Since that original version (ten years ago, in 2005!), however, Express Checkout has become more integrated into "PayPal Pro" and can also used as a sole solution, like WPS. For that usage it now supports an option that includes collecting card payments without a PayPal account.
PayPal also offers Payflow, Hosted Sole Solution, Adaptive Payments, and more payment flows.... each of which offers some slightly-different balances of buyer experience (and merchant experience/requirements -- e.g. some of these give the merchant access to credit card numbers and require PCI and merchant banking agreements, etc etc).
I have setup recurring payments in Paypal for my website using REST API. For one time payment, I know how to display transaction details by providing values for item_list (as in https://developer.paypal.com/docs/api/). However I don't know what values we should provide so that recurring payment profile will be shown on checkout page as well. Right now the only information shown is subscription agreement description.
How to add subscription details like recurring payment amount, initial payment amount etc to the checkout page? Thanks a million!
how about creating a custom checkout page? using the landing_page_type with Billing value can make it work with much more then just recurring payments display...
I have the exact same problem. This is how I deal with it for the moment:
I set the pricing information as string text into the description field of Agreement.
The down side is:
A maximum of 127 characters is allowed in the description field.
No format, no line break, just plain text.
But it is better than nothing.
I'm using Payflowlink Pro Express Checkout
Flow:
User select items on merchant site.
User clicks buy and fill shipping address.
Server get rates from USPS and FedEx for selected items.
User selects desired postal service with defined rate.
Server calls paypal to setup transaction with selected shipping rate.
User on paypal where he or she able to change shipping address, but shipping rate is already calculated for address what he inputted on merchant site.
I've found a solution of my problem only for classic API (Instant update callback), but not for Payflow Pro Express Checkout
Like a part of solution, user'll be warned about this situation on merchant site, but.. How do I prevent the PP user to change the shipping address or tell me please if it is possible to use instant update callback for Payflow Pro Express Checkout?
Try using the ADDROVERIDE variable with a value of 1. Doing that tells PayPal to use the shipping address you provided and not the address the buyer has set in their PayPal account.
The ADDROVERIDE and the shipping variables are available in the Express Checkout for Payflow Pro guide.
Sorry, I wanted to add this as a comment to the above, but my reputation is < 50
For some reason I couldn't get NOSHIPPING=1 and ADDROVERIDE=1 to prevent paypal asking for the shipping address; It may be due to me not supplying the address to PayPal in the first place.
However, 'no_shipping=1' does prevents PayPal asking the user for the shipping address (for me at least)
I think there may be two different solutions based on certain scenarios, so if one is not working try the other.