Как определить, какой вариант кто-то выбирает из выпадающего списка?

#php #paypal #paypal-ipn

#php #paypal #paypal-ipn

Вопрос:

Я приберегу разглагольствования о том, насколько плоха документация PayPal, для другого раза. В принципе, у меня есть три кнопки «Купить сейчас», каждая из которых представляет собой выпадающее меню. Какие переменные я должен использовать, чтобы заставить мой обработчик IPN различать три разные кнопки, и как только он определит, какую кнопку, различать параметры внутри каждой кнопки. (PHP)

Кнопки имеют названия типа «upgrade1», «upgrade2» и «upgrade3», а параметры выглядят следующим образом:

  • 1 месяц — $ 9.99
  • 2 месяца — $ 18.99
  • 3 месяца — $ 25.99

Комментарии:

1. @robhardgood: Не откатывайте мои правки, пожалуйста. И не пишите теги в заголовках вопросов.

2. И я приберегу разглагольствования о плохо объясненном вопросе для другого раза, пожалуйста, будьте немного конкретнее! 😉

3. @Tomalak Geret’kal итак, я не должен объяснять, о чем вопрос, а? Просто оставьте действительно расплывчатый заголовок и надейтесь, что кто-нибудь нажмет на него, зная, о чем он? Отличный план, спасибо за совет.

4. @robhardgood: Теги введены… теги. Нет необходимости дублировать их в названии. Спасибо.

5. @Tomalak Geret’kal: Это название сейчас слишком расплывчатое, по крайней мере, вы могли бы приложить усилия, чтобы улучшить его, а не просто удалять теги. Если бы я был знаком с контекстом, я бы сделал это сам, но я попал сюда из-за двусмысленности названия. Возможно, представляет интерес: meta.stackexchange.com/questions/10647 /…

Ответ №1:

ну, если у вас есть свои собственные названия кнопок, вы ничего не получите в IPN… Важно помнить, что PayPal не использует ваши названия кнопок. Вы должны использовать заранее определенные имена из PayPal для своих кнопок. Я вижу здесь 2 решения:

  <select name="item_name">
        <option value="one_month">1 Month - $9.99</option>
        <option value="two_months">2 Months - $18.99</option>
        <option value="three_months">3 Months - $25.99</option>
</select>  

затем в вашем IPN вы можете узнать по

 //which is your item name 'one_month', 'two_months' etc.
$item_name = $_POST['item_name'];
  


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

 <select name="custom">
        <option value="one_month">1 Month - $9.99</option>
        <option value="two_months">2 Months - $18.99</option>
        <option value="three_months">3 Months - $25.99</option>
</select>  


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

 //which is your item name 'one_month', 'two_months' etc.
$custom = $_POST['custom'];
  

может быть больше решений, но это одно из самых простых, и, на мой взгляд, самое правильное.

РЕДАКТИРОВАТЬ: и просто чтобы вы знали, по соображениям безопасности вы должны проверить, совпадает ли уплаченная сумма с ценой этого товара.

надеюсь, это поможет