Where's the documentation for integration? - paypal

Sounds an odd question since there's a whole PayPal developer section...
About a decade ago I wrote the code to integrate our e-com solution with PayPal.
Customer on merchant site > basket > login or register > checkout > pay using PayPal button > user goes to PayPal site and pays > e-com solution receives background post ("IPN?") to notify it of payment received > customer sent back to merchant site which then shows result.
Was a long time ago. E-com codebase was completely reworked. We didn't include PayPal at that time.
Looking for the documentation for same to do same. PayPal is never used by any of our merchants as the primary payment provider so this is an additional option to be provided at the checkout. So, not interested in the customer leaving the merchant's site at the basket, nor any of the more advanced features, nor uploading the cart contents.
I've spent ages trying to hunt this down. It looks like it's called "PayPal Payments Standard". The documentation argues with itself about whether this is for single items or multiple (e.g. a basket). Not interested in passing across the items, just the amount to pay.
From what I can see, the methodology is the same as it ever was except that I need to create a "button" labelled "Pay Now" - amount is the entire cart, the item is "cart contents" by calling the API to get me back the button code and thus the link that takes the user to PayPal. Every button created this way will say "Pay Now" and a new button is needed for every single transaction. There is however something nagging at me that this is not quite right.
I thought I'd found the documentation - the PDF integration guide. That just comes up with a link saying it's moved. Click that and I get a link saying it's moved. Click that and I'm back at the PayPal site again - no PDF. Round and round we go.
I must just be getting old or going blind.
Can anyone point me at the right solution and where the documentation is. Am an experienced coder so ideally I just want a PDF and sample code.
Thanks,
Mark

Related

How to remove message "You'll be able to review your order before you complete your purchase" from PayPal payment page?

Is there any way to remove following message from the PayPal payment page?
You'll be able to review your order before you complete your purchase.
I'm using REST API without the Express Checkout Custom Button. The payment happens AFTER the order is submitted so this message makes no sense and is misleading.
Not sure if anyone still needs this, but here's a link to a similar question on GitHub that has been answered as of March 2, 2018. If you add 'commit: true' when calling your paypal.Button.Render() function, it will switch to a more "Pay Now" mode, and remove the "...review your order..." text from the window. Hope that helps someone. Here's the link:
https://github.com/paypal/paypal-checkout/issues/554
I believe the answer to this is that it is not possible without PayPal fixing it. I have googled extensively and the only reference to this issue I could find was this 4-day-old post. It had 3 people (including myself) responding and saying that they had the same issue, 2 of which have now been deleted because they were not "answers" (why the 3rd is still there as of this writing I don't know).
If at least 4 people have found this to be a problem in the last 4 days and there is no sign of anyone with the issue before that, that leads me to believe it is a recent issue (and there will be more people discovering it in coming days).
Also, this PayPal help page details how to change your "Continue" button to a "Pay Now" button.
https://developer.paypal.com/docs/classic/express-checkout/integration-guide/ECCustomizing/#display-a-pay-now-button
It does not mention the "You'll be able to review your order before you complete your purchase." phrase at all. It seems like if it were possible to remove that on it's own, it would be documented in the same place.
I tried to submit a support ticket to PayPal at
https://www.paypal-techsupport.com/app/ask
But that form appears to not be working either. I just get "submitting..." with the animation spinning indefinitely. Perhaps someone can get it to work. Not sure how responsive they are. Or maybe they will just fix it eventually on their own.
Note to moderators: While this is not a definitive answer, I believe I have at the very least provided a reasoned theory, sharing my Google research and referencing the PayPal help page that, it seems, would provide the answer. Hopefully that's enough that it won't be deleted. I do feel that this answer could be helpful to someone who has the same issue.
I just asked PayPal for instructions on how to remove the text and was told:
"There is not a way to update this on your website. The purpose of the Express Checkout is so that your customers can sign in to an existing PayPal account or can check out as a guest. PayPal always tries to give the opportunity for the customers to cancel the payment prior to initiating it. Please let us know if you have any further issues."
So in answer to your question, there is not currently a way to remove that text.
I'm suffering with the same issue, this would be great to be able to remove as the button is set to "Pay Now" at PayPal, which leads the customer to believe they click this button and payment is taken...? Or am I not thinking this through clearly?
I'm also experiencing this issue. image of the checkout experience. I even went to the trouble of creating a payment experience with the user action to commit so that the "Continue" button says "Pay Now" "flow_config":{"user_action":"commit"}
I don't understand why the "You’ll be able to review your order before you complete your purchase." line remains, even though the button says Pay Now. This link suggests that the commit action means you can "complete the payment without additional interaction from the buyer." This seems contrary to the message displayed below the Pay Now button to the buyer.
I'm using this api : developer.paypal.com/docs/api/payment-experience/ in postman to create the experience, then creating payments using the experience ID that paypal responds with.
I know this post is kind of old but if you append &useraction=commit to the approval URL that you redirect the user to, the message will go away and the button will change to "Pay Now." The user will then be redirected back to the return URL you provided after they click the button.
See also:
Does PayPal Rest API have the classic useraction equivalent

PayPal API no longer showing the credit card form first with SetExpressCheckout

I have the following variables defined in my SetExpressCheckout API code:
SOLUTIONTYPE=Sole
LANDINGPAGE=Billing
USERSELECTEDFUNDINGSOURCE=CreditCard
Previously, this worked so that the shopper is first shown a form where he can enter his credit card details, followed by an option to log into his existing PayPal account. Since about a week however, everyone gets this screen:
Yes, I tested it from several machines, several countries, with cookies cleared, etc. And the sandbox is giving me the same issue.
Unfortunately, not all of our users are tech savvy and we've heard from several of them that they found no way to pay with credit card, even though the PayPal button to pay with a card is there - just not very visible because it's grey.
Is anyone experiencing the same thing lately? Have you found a way around it to display the credit card form first?
Unfortunately, there's nothing you can do about this.
PayPal is split testing those checkout pages. I've seen 3 different versions pop up lately. The old/original one where the full form is displayed by default, this new page design/style with the button only, and I've also seen another new page design that does display the full form as well by default.
They are letting their split tests run their course, though, and in theory will choose the one that performs the best over all.

Is it possible to generate PayPal payment links that are valid for a certain amount of time?

Let's say we have a hotel booking system and we want to receive payments via PayPal.
When user goes through the booking process he / she ends up on the page that says "complete your payment here" which is a link to PayPal.
Because this link is in a different system (PayPal) it would be nice if it would be valid for a certain amount of time. Otherwise I can open this link after one day and pay while my real booking was already cancelled.
===
The only way to implement something similar I have found so far is to use option "Can customers buy an item when it is sold out?".
The idea is to have a link like this:
https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&charset=utf-8&business=email-is-here&item_name=Prepayment+of+booking&amount=1&currency_code=USD&notify_url=https://my-booking-mega-system.com/pingback&first_name=fn&last_name=ln&expires=1433234400000
PayPal does not provide this functionality.
However, you could build it yourself:
You can add arbitrary functionality (such as checking an expiration date, or inventory, or offer conditions...) by having the "payment" link go to your website rather than PayPal's, do the checks, then redirect to PayPal.
Just respect PayPal's branding rules (I have not checked them recently but they may not let you use their regular button to silently go to your site, but might require that you use a "buy now with PayPal" button or something).
Using PayPal REST SDK you can generate new links to be used by users for checkouts. So every time a user makes a request e.g clicks a button "complete your payment here" a new link is generated for the particular service. So no need for embedding an old link to the button.
Their SDK supports most of the programming languages
and also check out their GitHub for examples and usage.

Inconsistent checkout screens for Paypal express checkout

We're developing an application that uses Paypal Express Checkout, and we're finding that we get two different landing pages. We're actually finding a problem that seems superficially similar to Can you force PayPal Payments Standard API to show credit card fields first?, but with a few differences:
Everything is fine with the sandbox, and we get exactly the appearance (credit card first) we want.
On the live site, about 50% of the time we get exactly the appearance (credit card first) we want.
Sometimes, we get a more "mobile-like" landing page, with the credit card stuff totally hidden in a "Check out as a guest" button, as shown.
This feels like a failing A/B test to me. We're sending exactly the variables in the question linked above, and as I said, all works fine with the older landing pages. I know there are also cookie issues, but in this case, we're seeing it even when Paypal is not able to identify an account and when cookies are cleared.
Does anybody know if there is anything we can do to work around this?
I can add code if needed, but the problem appears to be more data than logic.
I had the same question after I started to see users coming in from the 'new style' page.
I found the answer here:
Paypal express "order summary" page
I added the "force_sa=true" parameter to my Paypal URL:
https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&force_sa=true&token=…
The new page is definitely weighted to appear more often on mobile devices. Without the parameter I get the new style page on a iPad after about 5 refreshes, with the parameter I can refresh as much as I like and never see the new page.
Obviously, PayPal will roll out the new page to everyone in the end, but this technique allows us a stop gap while we get ready for it ;-)
The screen pictured is PayPal's new checkout. It is only partially deployed at this point, you can think of it as A/B testing.
Regarding whether the customer sees "credit cards first", this mostly depends on whether they have a PayPal email stored in their browser cookie. If they do, the top "Log in to PayPal" section will be expanded, the email filled out, and they just need to type in their password and do about 3 clicks to complete the checkout..
If they do not have a PayPal email stored in their cookies, the bottom Create an Account or Pay as Guest section will be expanded. (If you want guest checkout, pass SOLUTIONTYPE=Sole in your initial SetExpressCheckout request).
The customer can always switch between the two expanded sections, it's just a "smart default" of sorts.
Try doing all your "credit cards first" testing in an incognito / private browsing window.

Can you use Google Checkout as a simple payment receiver? IE. Without requring a full order?

I am trying to integrate Google Checkout (as an extra alternative to PayPal) into my website to take simple payments. This payment is for allowing people into a website and not for a digital or physical item that will actually get sent.
Is this possible to do with Google Checkout, as whenever I get a payment from my "Buy Now" button, it creates an "Order" in my account which I then have to click "Ship" in my control panel for. I, of course, don't have an order to "ship" - the IPN (or API callback) does the hard work.
PayPal doesn't have this limitation, I can just take payments from people and process them in my database via their IPN - thus giving the user access - no PayPal intervention required, no clicking "Ship" anywhere. It doesn't seem to care if there are any items to be shipped.
Is there a way of achieving the same thing with Google Checkout (or can you do this simply with Google Wallet? What’s the difference between the two!?).
Any help regarding this would be hugely appreciated.
Thank-you kindly.
Google Wallet/Checkout is not for person to person payments/money-transfer at this time. All their (Google) Payment APIs are based on the purchase of "something" - whether it be physical (shipped) or digital (dowload, app, game, etc.)
It's a not a limitation, it's what it is (at this time).