Ok…so the s2member form is in /src/includes/templates/buttons/paypal-checkout-button.php
This is called from /src/includes/classes/sc-paypal-button-in.inc.php to fill in the data
Then it calls sc_paypal_button_encryption in /src/includes/classes/sc-paypal-button-e.inc.php to overlay encryption.
So it does not appear that the API in use has been deprecated.
The API in question can be found here:
https://developer.paypal.com/docs/paypal-payments-standard/integration-guide/formbasics/?mark=_s-xclick#specifying-button-type--cmd
Although the definition of _s-xclick is The button that the person clicked was protected from tampering by using encryption, or the button was saved in the merchant's PayPal account. PayPal determines which kind of button was clicked by decoding the encrypted code or by looking up the saved button in the merchant's account.
there is no explanation on this page as to how to encrypt.
The following is the excryption integration guide…there is no reference to the hidden “name=encrypted” field though I did find an independent reference to using this undocumented field (https://travis.media/paypal-button-variables-send-receive-data/). At present the only reference I have found to the “name=encrypted” field was in the deprecated Button Manager API as a Buttoncode type (https://developer.paypal.com/docs/archive/button-manager/api/create-button-soap/?mark=bmcreatebutton). That was why I mistakenly thought the s2member PayPal buttons API was deprecated…I could not find another reference to the “encrypted” field.
Stay tuned…I’m still tracking this down to figure out what PayPal expected in the past, what they expect now, and when this expectation changed.