Paypal IPN обрабатывает более одной пользовательской переменной

Итак, я внедрил PayPal IPN на своем сайте, и я нахожусь в середине процесс работы. Теперь я хочу использовать более 1 пользовательскую переменную в форме pp в настоящее время я использую только этот

<input type="hidden" name="custom" value="<?php echo $user_id; ?>">

Итак, я знаю, что переменная с именем "custom" разрешена. Я хочу знать, если Я могу передавать больше переменных, чтобы я мог фильтровать платежи на основе их критериев. Так, если, например, доставка составляет более $0.00, я устанавливаю переменную "shipping_cost" следующим образом:

<input type="hidden" name="shipping_cost" value="<?php echo $cost; ?>">

или для других целей. Это разрешено? Или PayPal имеет уже определенный список разрешенных переменные, которые мы можем использовать? Я действительно хочу решить эту проблему, поскольку не всегда один тип оплаты мы можем обработать... Спасибо, ребята.

Ответ 1

Как я (и многие другие, как я себе представляю), также сталкиваюсь с этой проблемой, я думал, что поделюсь некоторыми решениями, с которыми я столкнулся.

Этот, поднятый в сообществе PayPal, предлагает использовать Опционные переменные, которые, как представляется, предлагают реализацию пары ключ/значение, чтобы облегчить до 99 vars (для записи я на самом деле не пробовал это).

Наиболее распространенным решением (которое я также пользую) является добавление всех ваших данных в запись БД, а затем использование пользовательского var для хранения идентификатора записи, который, очевидно, может быть использован позже (например, через IPN) для извлечения ваши данные.

Ответ 2

таким образом вы можете передать больше параметров

<input type="hidden" name="custom" value="variable1=234&var2=summa&etc=xyz"/>

используйте вышеуказанный в своей платежной форме.

и выполните следующий код.

 parse_str($_POST['custom'],$_MYVAR);

echo $_MYVAR['variable1'];
echo $_MYVAR['var2'];
echo $_MYVAR['etc'];

Надеюсь, это поможет тебе.

Ответ 3

PayPal определяет, какие поля вы можете использовать здесь. Любые другие поля будут проигнорированы.

Определено поле "доставка", и PayPal будет использовать значение этого поля для взимания дополнительной суммы за доставку. Вы также сможете получить это значение из данных IPN или PDT.

Если вам нужно передать другие значения, вы можете рассмотреть передачу строки, форматированной в стиле строки запроса (var1 = value1 & var2 = value2...) в поле "custom". Обратите внимание, что максимальное количество символов, разрешенных в этом поле, равно 256. Затем вы проанализируете это, когда получите ответ IPN или PDT.

Если размер настраиваемого поля слишком ограничен, вы можете попробовать, что я описал в другом здесь, здесь.