Using the Paypal API endpoint as described in the documentation here: Paypal Documentation I want to retroactively require a shipping address for an active subscription. Is there a way to have the API use the default address data of the customer as it would have been used during the checkout? I don't have any address data collected but maybe Paypal provides a solution like shipping_address.default
No. Patch the subcription with the data obtained yourself, or have the customer re-subscribe again. PayPal won't manufacture data for you without a checkout.
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.
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
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.
My website is using subscriptions payments and the old programmer did not used ipn, to activate the account he used a custom return url (ya, very stupid).
The issue here, is that old subscription does not have any custom information attached to the ipn (new subscriptions are ok).
Is there a way to find out the return url used in the initial payment?
Thanks
There isn't a way to view this information from the PayPal account. However, the account holder can contact PayPal and have them check the transaction details of one of these old transactions, and they can tell him what the redirect/return URL was for that transaction. If you have any trouble getting this information from customer support, the account hold can also open up a ticket with PayPal MTS at www.paypal.com/mts requesting the information. He would need to use the email address registered on his PayPal account and he would need to provide a transaction id for one of the transactions that the client wants the return URL for. If you have any trouble after that just let me know, send me a PM with the ticket number.
my requirement is to store users credit card information to pay-later. whether there is any option in paypal to store users credit-card information and pay it later or is there any options for this in any payment methods
Auth.Net's CIM is a viable option, but it is not a standard feature of an Auth.Net account and requires an extra fee each month to use. Depending on the PayPal payment method you're using, you can get a similar feature for free through reference transactions or billing agreements.
For up to a year after processing a credit card payment at PayPal, you can generate a follow-up reference transaction that uses the same payment details previously used to capture new money. If your customer paid using a PayPal account balance, you can establish a billing agreement that lets you charge their card at an arbitrary time in the future as well.
As far as I know, neither one of these features requires additional payment on your behalf. You just have to have a PayPal account that supports the API you want to use and know how to integrate it.
Yes. You would need to the use Authorize.Net's Customer Information Manager (CIM) API which allows you to store payment information as a payment profile on their server. You can then charge against it at any point in the future.