1

We use PDT's cmd=_notify-synch API to validate transactions when the customer is redirect back to our website after a payment. We pass a "custom" value in our Paypal buttons with a customer id, and we expect to get this value back. This worked fine for the past 5 years.

Starting on or around 2018/10/19, the PDT API stopped returning the "custom" value that was passed in. This broke our payment flow.

Not sure if anybody else ran into this issue, and/or if there's a workaround or a configuration to change.

David Chatenay
  • 326
  • 2
  • 10
  • Update: apparently the PDT endpoint doesn't return the `subscr_id` field anymore either(!!!). – David Chatenay Oct 26 '18 at 23:47
  • Would need to see a sample of a payment request that includes those parameters along with the PDT response to verify what you're saying. – Drew Angell Oct 28 '18 at 19:49
  • The URL to start the buy process looks like this: `https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ATA3YYX8GWUK8&custom=43892ce6-5273-4a4e-8c52-12279d402fc9&return=...` As mentioned in another question, the value of `return` is ignored. – David Chatenay Oct 29 '18 at 21:13
  • The PDT URL looks like this: `POST https://www.paypal.com/cgi-bin/webscr` with `cmd=_notify-synch` and `tx=86M52133V5743064D`. The response doesn't contain `custom` or `subscr_id`. – David Chatenay Oct 29 '18 at 21:22

1 Answers1

1

That button URL is for a hosted button, which means all of the parameters are set within PayPal when you create the button. You cannot pass a return value directly to a hosted button. You would need to adjust that in the hosted button itself within the PayPal account.

The only way to set it there would be with the Advanced Variables section, but of course you won't be able to make that dynamic. If this is a problem you're going to need to switch to using a non-hosted button so that you can then pass parameters directly the way you are trying to do.

Beyond that you could switch to using the Express Checkout API, and then you have more freedom and flexibility to do whatever you need during checkout.

Drew Angell
  • 25,968
  • 5
  • 32
  • 51
  • Thanks for following up. – David Chatenay Nov 02 '18 at 19:01
  • As I mentioned this used to work fine for years: the customer used to be redirected to the custom `return` URL (https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/Appx_websitestandard_htmlvariables/#paypal-checkout-page-variables). It's still not clear why `custom` and `subscr_id` are not returned by PDT anymore... – David Chatenay Nov 02 '18 at 19:07
  • Well, hosted buttons are not meant to be used with parameters the way you're using them. That's all I can tell you. Maybe it worked for you and they made a change that broke it, but it shouldn't have been setup that way in the first place. If you want to fix the problem, move away from the hosted button one way or another. – Drew Angell Nov 03 '18 at 00:12