Here is something interesting.
The s2 button creator (actual example) creates
this shortcode:
[s2Member-PayPal-Button level="2" ccaps="" desc="Full APP Membership / Full Access To Entire Software Platform and More" ps="paypal" lc="" cc="USD" dg="0" ns="1" custom="*[redacted]*.deadeasyapps.com" ta="0" tp="0" tt="D" ra="0.72" rp="1" rt="M" rr="1" rrt="" rra="1" image="default" output="button" /]
Which s2 says in the s2 button creator "ultimately, your Shortcode will produce this snippet":
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="business" value="*[redacted]*@*[redacted]*.com" />
<input type="hidden" name="cmd" value="_xclick-subscriptions" />
<!-- Instant Payment Notification & Return Page Details -->
<input type="hidden" name="notify_url" value="https://*[redacted]*.deadeasyapps.com/?s2member_paypal_notify=1" />
<input type="hidden" name="cancel_return" value="https://*[redacted]*.deadeasyapps.com/" />
<input type="hidden" name="return" value="https://*[redacted]*.deadeasyapps.com/?s2member_paypal_return=1" />
<input type="hidden" name="rm" value="2" />
<!-- Configures Basic Checkout Fields -->
<input type="hidden" name="lc" value="" />
<input type="hidden" name="no_shipping" value="1" />
<input type="hidden" name="no_note" value="1" />
<input type="hidden" name="custom" value="*[redacted]*.deadeasyapps.com" />
<input type="hidden" name="currency_code" value="USD" />
<input type="hidden" name="page_style" value="paypal" />
<input type="hidden" name="charset" value="utf-8" />
<input type="hidden" name="item_name" value="Full APP Membership" />
<input type="hidden" name="item_number" value="2" />
<!-- Configures s2Member's Unique Invoice ID/Code -->
<input type="hidden" name="invoice" value="<?php echo S2MEMBER_VALUE_FOR_PP_INV(); ?>" />
<!-- Identifies/Updates An Existing User/Member (when/if applicable) -->
<input type="hidden" name="on0" value="<?php echo S2MEMBER_CURRENT_USER_VALUE_FOR_PP_ON0; ?>" />
<input type="hidden" name="os0" value="<?php echo S2MEMBER_CURRENT_USER_VALUE_FOR_PP_OS0; ?>" />
<!-- Identifies The Customer's IP Address For Tracking -->
<input type="hidden" name="on1" value="<?php echo S2MEMBER_CURRENT_USER_VALUE_FOR_PP_ON1; ?>" />
<input type="hidden" name="os1" value="<?php echo S2MEMBER_CURRENT_USER_VALUE_FOR_PP_OS1; ?>" />
<!-- Controls Modify Behavior At PayPal Checkout -->
<input type="hidden" name="modify" value="0" />
<!-- Customizes Prices, Payments & Billing Cycle -->
<!--<input type="hidden" name="amount" value="8.72" />-->
<input type="hidden" name="src" value="1" />
<input type="hidden" name="srt" value="" />
<input type="hidden" name="sra" value="1" />
<!--<input type="hidden" name="a1" value="0" />-->
<!--<input type="hidden" name="p1" value="0" />-->
<!--<input type="hidden" name="t1" value="D" />-->
<input type="hidden" name="a3" value="8.72" />
<input type="hidden" name="p3" value="1" />
<input type="hidden" name="t3" value="M" />
<!-- Displays The PayPal Image Button -->
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_xpressCheckout.gif" style="width:auto; height:auto; border:0;" alt="PayPal" />
</form>
but if you use THAT code it gives you an error:
**# Access Denied.**
You don't have permission to access "/cgi-bin/webscr" on this server.
The Https://paypal.com/cgi-bin/webscr is DEPRECATED
The LINK that is actually sent to PayPal:
https://www.paypal.com/webapps/shoppingcart?flowlogging_id=f475976db7c93&mfid=1687718699009_f475976db7c93#/checkout/openButton
Which is their new checkout system shopping cart!
Whatever s2 is sending Paypal, is getting changed (some trigger - PROBABLY the cgi-bin/webscr thing) to the default shopping cart single purchase button without an amount.
The variable for “amount” are different for single purchase cart button than for a subscription or subscribe button.
I think we are definitely looking at a triggered error that results in the default button.
Sid