I have a PayPal button where cmd = _xclick. I have no_note set to 0, and in Sandbox there was a 'Note to seller' option. However, we've just launched and there's no note field. How can I enable it?
Bonus points if you can make it open by default :)
That parameter works for the Classic flow of PayPal, however for the new checkout flow it is no longer supported and from my understanding the classic checkout will be removed in the future.
New Checkout
Related
I am currently implementing a very simple paypal checkout option on a website. For this I am using Express Checkout (Client side version).
It works just fine, but the dialog informs the user, that they will be able to review the order before confirming. However, when they click "continue" the payment instantly goes through.
If you look at their full working demo, you can see, that it is just what happens:
https://developer.paypal.com/demo/checkout/#/pattern/client
This seems highly inconvenient.
Is there any way I can get express checkout to show that review page?
You should specify commit: true in the button options.
I'm attempting to conduct financial transactions with the paypal api using what their documentation describes as 'in context, express checkout'. I have everything working properly when I use USD as the checkout currency but I'm having trouble using HKD and I will outline my situation below.
Given a normal in context express checkout flow of
get express checkout token
give user a link that paypal checkout.js detects the click of
user authrorizes the in context transaction
paypal post the token/payer_id back to my server
USD FLOW - everything ok
get express checkout token,
POST TO PAY PAL
"USER=hidden-facilitator_api1.gmail.com&PWD=NWhidden3TK&SIGNATURE=Arhidden3tCjMfqZyNAlfdDvZ6YAyktOYxObIAzKBgV0N2&METHOD=SetExpressCheckout&VERSION=109.0&PAYMENTREQUEST_0_PAYMENTACTION=SALE&PAYMENTREQUEST_0_AMT=2000.00&PAYMENTREQUEST_0_CURRENCYCODE=USD&RETURNURL=http://localhost:3000/checkout/complete?cartId=126&CANCELURL=http://localhost:3000/checkout/cancel&LANDING=Billing&ADDROVERRIDE=0&NOSHIPPING=1"
Returns Express checkout token
EC-8GN42843W29871826
Which I then embed in the browser as
https://www.sandbox.paypal.com/checkoutnow?useraction=commit&token=EC-8GN42843W29871826&ul=0
Which works fine, initiating the in context checkout flow as referenced here,
https://www.dropbox.com/s/nbigq78achl0xsy/Screenshot%202015-08-05%2011.43.12.png?dl=0
HKD FLOW - everything BROKEN
GET express checkout token
POST TO PAY PAL
"USER=hidden-facilitator_api1.gmail.com&PWD=NWXhiddenTK&SIGNATURE=ArOphiddenzfdDvZ6YAyktOYxObIAzKBgV0N2&METHOD=SetExpressCheckout&VERSION=109.0&PAYMENTREQUEST_0_PAYMENTACTION=SALE&PAYMENTREQUEST_0_AMT=2000.00&PAYMENTREQUEST_0_CURRENCYCODE=HKD&RETURNURL=http://localhost:3000/checkout/complete?cartId=126&CANCELURL=http://localhost:3000/checkout/cancel&LANDING=Billing&ADDROVERRIDE=0&NOSHIPPING=1"
Returns Express Checkout Token
EC-4JK68416ST774680H
Which is embedded as get in the browser as
https://www.sandbox.paypal.com/checkoutnow?useraction=commit&token=EC-4JK68416ST774680H&ul=0
Which when clicked actually totally hijacks and pretty much breaks the checkout process, the in context browser 'modal' opens but then something bad happens, the browser modal window closes itself and the parent browser context appears to be in some kind of redirect loop.
https://www.dropbox.com/s/y2snlujy8mtljwv/Screenshot%202015-08-05%2011.47.18.png?dl=0
I've contacted PayPal merchant/technical support crew and their answers were so bad it was almost like they either weren't reading my email, didn't care about my problem or just generally were incompetent and I hesitate to criticize someone professionally, but if paypal is taking a cut of transactions, I expect the supporting api and documentation to not be terrible.
What can I do in this situation to gain further insight into the problem that I'm having ?
Cheers and thanks,
JD
UPDATES:
The process is failing specifically related to HKD when I attempt to launch the in context browser window with paypal.checkout and I can successfully complete this process with other foreign currencies including (but not limited to) 'PLN' (polish zloty), 'DKK' (danish krone) but fails for 'HKD' (hong kong dollar) and 'THB' (thai baht), so maybe paypal checkout.js doesn't like certain regions ?
It would appear that the devil was in the details but PayPal express checkout and pay pal checkout support HKD but in context checkout using checkout.js does not support this and my troubles were tied to erroneously believing the the false parts.
https://www.dropbox.com/s/g7s0i5g0y718c8r/Screenshot%202015-08-05%2013.44.27.png?dl=0
I'm currently using PayPal Express Checkout.
Here's a screenshot of the checkout page I want people taken to:
http://i.stack.imgur.com/wz0UC.png
For some reason users are taken to the older looking checkout page. I can't seem to find any documentation anywhere that let's you choose to specific for this template to be used instead of the older one.
Does anyone know if there's a variable in their API or perhaps a URL parameter that can be set to force all users to this page?
There is no way to force to use the new layout of PayPal Checkout. It has been rolled out gradually and partially deployed, and it is random. Something like A/B Testing. You can refer to this similar question.
Just been trying to find the new IPN History link on the new PayPal website and I can't see it anywhere.
Are they still supporting this?
The current PayPal for Business interface only provides a way to access IPN History if you have manually configured IPN in your PayPal account settings. In this case, you'd go to [your name] > Account Settings > Notifications > Instant Payment Notifications (click Update here), then the explanatory text there will include a link to the IPN History page.
However, that link would not appear if you have not manually configured IPN -- e.g., when your ecommerce platform automatically transmits IPN parameters to PayPal for each checkout. While you could manually enable IPN with a dummy Notification URL in order to get the IPN History link, this could result in PayPal completely disabling IPN for your PayPal account if they try sending any actual notifications to that dummy URL.
In that case, you can use this link to access IPN History directly once you're already logged into PayPal:
https://www.paypal.com/cgi-bin/webscr?cmd=_display-ipns-history
Note that if you have not manually configured IPN in PayPal, you will see a notice in IPN History saying, "The IPN feature is turned off. You must turn on IPN in order to create history data." That notice is irrelevant if your ecommerce platform specs IPN dynamically for each checkout; in that scenario, you can still view/search your IPN History without manually turning on IPN there.
More menu -> Site map -> Transactions -> IPN History
2020
Sitemap (Footer) -> Instant Payment Notification (IPN) history (under "Transactions")
It's still available in the same place. If you want to navigate to it
Log in
Profile link (white bar up top)
IPN settings
History link on this page
Currently it's directly at https://www.paypal.com/us/cgi-bin/webscr?cmd=_profile-ipn-notify (provided you're logged in)
In the latest UI: Settings > My Selling Tools > Instant Payment Notifications click "Update". You will see a link there called "IPN History page".
As of May 2022, it's still convoluted.
TL;DR:
For IPN History, try https://www.paypal.com/us/cgi-bin/webscr?cmd=_display-ipns-history
For IPN Settings, try https://www.paypal.com/cgi-bin/customerprofileweb?cmd=_profile-ipn-notify
Also, a few reminders:
PayPal IPN is a completely separate feature from PayPal Webhooks.
Even though it's the exact same concept (argh!).
PayPal IPN is associated with your normal/business PaypPal account. It is is not a part of the PayPal Developer experience.
Also, PayPal IPN is now clearly deprecated, if not effectively obsolete, so if your application code is still reliant on PayPal IPN you really should update it to use PayPal Developer APIs and the Webhook service instead.
Anyway, here's the steps I took to find it today on 1st May, 20222:
Start off on your PayPal Business Account Dashboard page:
https://www.paypal.com/mep/dashboard
It should look like this:
Don't confuse this with the Developer Not
Use the top-left menu to go to Account Settings:
https://www.paypal.com/businessmanage/account/accountAccess
On the Account Settings page, look for "Notifications" in the left-side menu:
https://www.paypal.com/businessmanage/account/notifications
Then you'll see the link to PayPal Instant Payment Notifications.
Annoyingly, they don't use the term "IPN" so Ctrl+Fing for that won't work.
Click the "Update" link (even though we aren't updating anything: we just want to see IPN History), and you'll be taken to a page belonging to Olde PayPal just with a new header:
https://www.paypal.com/cgi-bin/customerprofileweb?cmd=_profile-ipn-notify
And the link to the History page is disguised in the page's text:
https://www.paypal.com/us/cgi-bin/webscr?cmd=_display-ipns-history
And you'll be welcomed back-in-time to 2005 with a page that looks like this:
we plan to change the domain name for our service. Therefore we need to update the IPN-url for our existing customers. I have tried googling a solution on how to change the IPN-url for current subscriptions, but I haven't been able to find anything.
Any help is appreciated.
best regards
Thomas
I ran into this problem today.
Folks who are saying that you can change the IPN URL on an existing Paypal recurring payment are incorrect; you can't, you can only change the IPN URL for future notifications.
To resolve this, I used an Apache rewrite:
RewriteRule ^sites/all/modules/civicrm/extern/ipn.php$ https://example.org/wp-content/plugins/civicrm/civicrm/extern/ipn.php [R=307,L]
The magic is the R=307. A 307 redirect indicates that a POST request must be resent as a POST. Otherwise you lose the IPN data.
I had exactly the same problem .... I had to move servers which meant my IPN url changed.
I have spoken to 3 different paypal reps and even had a meeting with a tech support guy from there.
Unfortunately, there is NO WAY to change the IPN url for existing customers/subscriptions.
I have been advised that all existing customers/subscriptions would need to be setup again, your customers would then need to start a new subscription based on the new IPN url.
This is a right PITA ... I have just over 1500 customers I need to do this for, and I can guarantee I will lose some due to the hassle of this.
Sorry this wasn't the answer you were looking for :(
If you need to chnage IPN Url make sure that it is still turned on check from History>IPN History and turn it on.
IPN can be enabled in one of 2 ways.
In the PayPal account Profile
Passing an IPN URL as a parameter in an API call or button code.
To enable IPN in your account profile follow these steps:
Log into your account at https://www.paypal.com
Click on the Profile
subtab In "My selling tools" click Update in the Instant Payment Notifications section.
Click the Edit button or Choose IPN settings
Enter your IPN URL in the Notification URL field Make sure the radio button for 'Receive IPN messages (Enabled)' is selected
Click Save
IPN can be enabled directly in this section of the account: https://www.paypal.com/ie/cgi-bin/webscr?cmd=_profile-ipn-notify-edit (access requires login)
To pass an IPN URL as a code-level parameter you should refer to the documentation of the feature you are implementing. Typically the API variable you would pass is 'NotifyURL' but it can differ based on the API call, if the API is Name-Value-Pair (NVP) or SOAP format or if you are using non-hosted PayPal Standard button code. For standard buttons the variable is "notify_url".
This profile setting is frequently overridden by shopping carts. Still, IPN should be enabled in the account.
It's 1 May 2013 & PayPal has changed the location for the IPN.
Login, go to Profile -> My selling tools ->Instant Payment Notifications...(Update)
This shows your current IPN URL, and there is an EDIT button.
In the absence of a solution from Paypal, I would encourage anyone to submit a support ticket requesting a manual change. If enough of us do this, they will have to provide this option eventually.
Contact Paypal Technical Support here.
EDIT: I managed to successfully change all my prior IPN URLs via a ticket with Paypal Support. They told me it has to be done manually, but obliged my request. It took about a week. They were very helpful. Hope this helps someone.
Dec 2022 update:
There is IPN URL settings at https://www.paypal.com/merchantnotification/ipn/preference . I changed the IPN URL and since then all IPN notifications are coming to the new IPN URL. I do not know if super old subscription notifications will also come to this URL or not, but I can confirm that 1.5 year old subscriptions are going to this new URL now.
I have just done it.
Login, go to Profile -> My Account Settings ->Instant Payment Notifications...(Update)
This shows your current IPN URL, and there is an EDIT button, which works.
This is April 2013, so PayPal might have changed since this question was posted