#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'];
может быть больше решений, но это одно из самых простых, и, на мой взгляд, самое правильное.
РЕДАКТИРОВАТЬ: и просто чтобы вы знали, по соображениям безопасности вы должны проверить, совпадает ли уплаченная сумма с ценой этого товара.
надеюсь, это поможет