spotlightsnap
spotlightsnap

Reputation: 1113

Passing custom variables to paypal IPN

I am trying to pass custom variables to paypal IPN. I can manage to pass one variable. But i don't know how to pass multiple variables.

My Process is something like this

  1. User fill up the form
  2. They click button and it goes to paypal
  3. They paid, IPN send me back the information and that ipn.php added variables that passed to the database.

My custom variables are

  1. total lines (whenever they write, i count the lines)
  2. message (their message that they wrote)
  3. advertisement id

But for now, I can only pass one variable like this

form.php

<input name="custom" type="hidden" id="custom" value="{$line_count}">

$_SESSION['line_count'] = $_POST['lines_txt'];

ipn.php

$sql="INSERT INTO `form`(`totalline`) VALUES ('" .$_POST['custom']. "');";

Upvotes: 22

Views: 35071

Answers (6)

Fox
Fox

Reputation: 103

Yes, you can! You can use 'custom' variable and add in your form

<INPUT TYPE="hidden" name="custom" value="user_id=1&uname=jj">

And in your IPN.php:

$custom = $_POST['custom'];

And extract the variables from string

Upvotes: 0

cdalxndr
cdalxndr

Reputation: 1561

Haven't tested, but according to documentation, you could use multiple hidden inputs with name item_number_X (X=number) inside paypal form to store variables:

<INPUT TYPE="hidden" name="item_number_1" value="value1">
<INPUT TYPE="hidden" name="item_number_2" value="value2">

From paypal docs:

Recordkeeping with passthrough variables

Some variables are exclusively for your own use, such as order management. PayPal returns the values that you send through Instant Payment Notification exactly as you sent them. For this reason, they are called passthrough variables. Their values are not recorded or used by PayPal.

The following are passthrough variables:

  • custom
  • item_number or item_number_x
  • invoice

Upvotes: 0

sw.
sw.

Reputation: 3231

You can pass other information via the notify_url field, for example doing http://www.yoursite.com/notify?myvariable=value

Upvotes: 12

Martin
Martin

Reputation: 21

If it is just to pas a variable that is not pertinent to paypal but more pertinent to you when it comes back, you can use the value ['custom'] to submit to paypal, paypal will simply pass it back to yuo once things are done on their side.

Upvotes: 2

Residuum
Residuum

Reputation: 12064

I am not sure, if it is even possible with Paypal to send and receive multiple variables. If it is not possible due to Paypal's restrictions, you could use one of the following approaches:

  • Send the data serialized, and deserialize on return.
  • Write the data to the database in form.php (with status notpaid) and send the id. In ipn.php catch the id and set status = paid / error / whatever happened in the database.

Upvotes: 22

Ben
Ben

Reputation: 11208

A vague memory tells me there are two options for sending data to PayPal. The command x_click and i thought there was something like an upload parameter. When the upload parameter is set to 1 you can send multiple lines to paypal.

Update PayPal information about this

Upvotes: 1

Related Questions