Add shipping to PayPal simple chained payment? - paypal

I am using a PayPal simple chained payment flow rather than embedded for my website's transactiosn. Is it possible to allow buyers to choose their PayPal verified shipping address in the transaction?

To my knowledge there's no way (currently) to allow users to choose a shipping address from their account within an Adaptive Payments flow, however, you can use SetPaymentOptions to bind a shipping address to the payment if you have the user fill it into your app at some point.
You would call Pay with the action set to CREATE and then call SetPaymentOptions behind that to configure any additional options you'd like. There are quite a few things you can add with that additional call.

No, shipping addresses are only supported in the embedded payments flow.

Related

Set shipping address in PayPal Adaptive Payment call (chained and regular)

I would like to activate the seller protection option, this requires me to send over the shipping address the buyer has filled in on my website.
I have 2 scenarios: with 1 receiver and with no receivers.
I know that I need to use the SetPaymentOptions API call but I couldn't a way to pass the PAY or PAY_PRIMARY option I have in the PAY API.
Is it possible to pass shipping address with chained payments?
Please let me know what am I missing.
Thanks
Setup chained payment with shipping address, this can be implemented if you integrate chained payment by using embeded flow. This is the steps for you to follow to display and collect the selected shipping address
Call the Pay API operation with actionType set to CREATE to obtain a payment key.
Set senderOptions.requireShippingAddressSelection to true in your request to SetPaymentOptions and call the API operation.
Redirect the payment sender's browser to the embedded payment flow at https://www.paypal.com/webapps/adaptivepayment/flow/pay?paykey=... after obtaining the pay key.
After returning from the flow, call the GetShippingAddresses API operation to obtain the selected shipping address.
Note: This step assume that you have implemented the JavaScript for invoking the embedded payment flow, that you have set up your button or form to invoke the flow, and that you have included the code to close the window associated with the flow.
For more information, here is the reference link for you:
Adaptive payment : https://developer.paypal.com/docs/classic/adaptive-payments/integration-guide/APIntro/
Pay API : https://developer.paypal.com/docs/classic/api/adaptive-payments/Pay_API_Operation/
SetPaymentOptions API : https://developer.paypal.com/docs/classic/api/adaptive-payments/SetPaymentOptions_API_Operation/
Hope these could be helpful.

No shipping info with adaptive payments

I have been able to get a PayPal adaptive payments payment to work with a simple payment call.
But I want to get shipping details.
I have tried setting action type to create, then using the payKey returned sending a SetPaymentOptions call setting RequireShippingAddressSelection = True, then using the returned url from the payment call as before but still no shipping info.
I have seen others with this problem but without an answer.
Thanks
I have the same problem and here's what I got from PayPal Tech Support.
It is not possible for you to supply a shipping address as part of an
Adaptive Payments transaction. However, you can request that the
customer selects a shipping address from the addresses existing on
their PayPal account when they checkout using the embedded flow.
Details of the embedded flow are available here:
https://developer.paypal.com/webapps/developer/docs/classic/adaptive-payments/integration-guide/APIntro/
(Search for Embedded Payments)
If you think this is an option you would also be required to implement
another API call, SetPaymentOptions, which would be sent after the Pay
API request. Within the SetPaymentOptions API request you would add
the parameter requireShippingAddressSelection. Details of the
SetPaymentOptions API are located here:
https://developer.paypal.com/webapps/developer/docs/classic/api/adaptive-payments/SetPaymentOptions_API_Operation/
If your application requires that you supply a custom shipping address
to PayPal at the time of payment then you will need to consider using
Express Checkout instead of Adaptive Payments.
Are you sure the shipping info isn't passing? I don't think it's anything you'll see during the checkout process, but it will show up in the transaction details of the payment in your PayPal account.
I spent hours researching this and it appears to be an API bug from 2011 (great job PayPal!).
Unfortunately, you have to request the shipping info from the user before redirecting them to PayPal.
Source link

How do I prevent the user to change the shipping address? Or instant update callback for Payflow Pro Express Checkout

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.

Paypal express checkout API collect billing info

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.

How to reset the shipping address paypal while checkout?

I'm integrating PayPal into my web application. Here I want to make complete checkout process.It has direct payment and express checkout.
In Express checkout we need only PayPal account like
1)Clicking Check out with PayPal
2) Logs into PayPal to authenticate
3)Reviews the transaction on PayPal
4)Confirms the order and pays from your site
5)Receives an order confirmation
In Direct checkout(A generic checkout flow),
1)Checks out from the shopping cart page
2)Provides shipping information
3)Chooses a payment option and provides
4)billing and payment information
5)Reviews the order and pays
6)Receives an order confirmation
This the flow. In Direct checkout when you choose payment option as PayPal(step 3) you need to login and make payment. Any way there is one default shipping address available in PayPal account and also you must give shipping address in step 2.
Now I want to send the complete cart details and shipping address to PayPal?
and I want make the direct checkout(A generic checkout flow) here? Can any one help me to do this?
Use Express Checkout and DoDirectPayment (Website Payments Pro). Express Checkout gives you the redirect-to-PayPal-and-login functionality, whereas DoDirectPayment allows you to take card payments directly on your site.
In addition, you can override the PayPal Profile shipping address of the buyer by specifying ADDROVERRIDE=1 in the SetExpressCheckout API call. Remember you'll need to pass in the appropriate shipping address details information as well.
https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_nvp_r_SetExpressCheckout