Adrian
Adrian

Reputation: 2012

Paypal post data getting lost on return (sandbox)

I am using the Paypal form , the easiest way it seems for me to return data back to the response page is by building a giant custom variable and splitting it up again on return. However the data seems to get half lost on return. I cant seem to find a consistency with it.

The custom variable is built using jQuery but Ill omit that code as I have tested it and its correctly filling up the entire variable.

                <form id="paypal-submit" action="https://sandbox.paypal.com/cgi-bin/webscr" method="post">
                <input type="hidden" name="cmd" value="_xclick">
                <input type="hidden" name="business" value="[email protected] ">
                <input type="hidden" name="item_name"
                value="Memorex 256MB Memory Stick">
                <input type="hidden" name="item_number" value="MEM32507725">

                <input type="hidden" name="amount" value="3"> 
                <input type="hidden" name="tax" value="1">
                <input type="hidden" name="rm" value="2">
                <input type="hidden" name="quantity" value="1">
                <input type="hidden" name="no_note" value="1">
                <input type="hidden" name="currency_code" value="EUR">
                <input id="custom-info" type="hidden" name="custom" value="adrian$%&quals$%&31 carab$%&8239 j $%&do no include address$%&adrian@gmal$%&061what$%&www.hjell=d$%&does not agree to texts$%&does not agree to contact listed in directory$%&does not agree to emails$%&does not agree to contact sharing for other organisations$%&does not wish to be publicly listed$%&ffndlk$%&do not include me in the directory of education$%&fd$%&do not include me in the speakers directory$%&fed">
                <input name="notify_url" value="http://example.com/paypal-info" type="hidden">
                <?php /* <input type="hidden" name="zip" value="">
                <input type="hidden" name="country" value="US"> */ ?>
                <input type="hidden" name="return" value="http://example.com/payment-success"/> 
                <input type="image" name="submit" border="0"
                src="https://www.paypalobjects.com/en_US/i/btn/btn_buynow_LG.gif"
                alt="PayPal - The safer, easier way to pay online">
                </form>

In my response page...

    print_r($_POST['custom']);

might only output

adrian$%&quals$%&31 carab$%&8239 j $%&do no include address$%&adrian@gmal$%&061what$%&www.hjell=d$%&does not agree to texts$%&does not agree to contact listed in directory$%&does not agree to emails$%&does not agree to contact sharing for other organ

and just stop at that even there is more text in the string.

Might Paypal have a character limit or something?

Upvotes: 1

Views: 263

Answers (1)

Drew Angell
Drew Angell

Reputation: 26036

The CUSTOM parameter has a limitation of 256 characters. You've got more than that in your value so it would get chopped off accordingly.

What I like to do is save all of that sort of data in a local database record prior to sending the person over to PayPal. That way you can include this record ID in the CUSTOM parameter, and then pull that data back out of your database using that ID.

If what you're saving is considered an order/invoice record, then you could actually use the INVOICE parameter with PayPal instead of CUSTOM, and that way it would show your local Invoice ID in the PayPal transaction details in the actual Invoice Number field instead of the Custom field. Either way would work fine, though.

Upvotes: 1

Related Questions