Как получить информацию о пользователе при нажатии кнопки PayPal? - PullRequest
4 голосов
/ 13 октября 2010

У меня есть форма, в которую пользователь вводит информацию, и затем у меня есть кнопка PayPal, которую пользователь нажимает после заполнения полей. У меня проблема в том, как захватить информацию о пользователях при оплате кнопка нажата, если форма имеет action="http://paypl.com/something/something".

Должен ли я сделать это двухстраничным процессом - один для меня, чтобы захватить информацию о пользователе, а затем один, чтобы пользователь нажал кнопку PayPal?

Кстати, кнопка PayPal указывает пользователю на paypal.com, чтобы он действительно совершил платеж.

Ответы [ 4 ]

6 голосов
/ 13 октября 2010

Ребята, здесь есть более простое решение. Paypal позволяет вам передавать эти значения через него, а затем отправляет их вам. На самом деле есть два способа вернуть данные - обратный URL, который отправляет после завершения возвращаемые значения (мне не очень повезло, что это работает), а затем отдельная функция, которая отправляет вам сообщение после завершения транзакции в отдельную страница на вашем сайте, где вы можете собрать все переменные, которые вы опубликовали на сайте. Я предлагаю последнее, потому что на странице «Купить сейчас» есть вероятность того, что пользователь не будет возвращен на сайт, потому что пользовательский интерфейс кнопки возврата довольно слабый в конце PayPal.

Чтобы настроить его, войдите в свою учетную запись PayPal, нажмите myaccount> профиль> настройки оплаты на сайте. Включение «передачи данных платежа» сделает свое дело. После того, как вы правильно настроите его, после завершения транзакции он отправит на выбранную вами страницу сообщение обо всем, что вы ему отправили ... помните, что вы можете отправлять переменные, такие как имя, адрес и т. Д., Просто определив их правильно в форме. Все доступные переменные найдены здесь

Конечно, вы могли бы пройти через захват элементов из формы через Jquery или тому подобное, а затем выполнить сохранение в БД по щелчку, но зачем бороться с этим? Это чертовски много работы и может иметь проблемы, если Javascript выключен.

Не забудьте создать тестовый сайт для тестирования! Удачи.

3 голосов
/ 13 октября 2010

Я бы сделал действие текущей страницей, поймал бы нажатие кнопки и сохранил информацию о пользователе, затем использовал header: Location("http://paypl.com/something/something"); В любом случае это что-то подобное. Надеюсь, это поможет.

Редактировать: Также см. Другой ответ Джош. Они одинаково хорошие возможности. Обратите внимание, что для опции Ajax потребуется включить JavaScript, поэтому в случае его отключения необходимо будет принять меры предосторожности.

3 голосов
/ 13 октября 2010

У вас есть несколько вариантов здесь. Вы можете создать две формы, одну из которых отправлять на сервер, где вы собираете информацию о пользователе, а затем отображать вторую форму с помощью кнопки «Оплатить сейчас». В качестве второго варианта вы можете извлечь информацию из формы с помощью JavaScript и отправить ее на свой сервер с помощью AJAX, а затем отправить форму в PayPal после завершения запроса AJAX. Это может быть или не быть более сложным, но это не изменит существующего пользовательского интерфейса, что может быть желательным.

1 голос
/ 15 ноября 2012

Я бы порекомендовал добавить все ваши данные о пользователях / заказах в вашу локальную базу данных, чтобы вы могли сгенерировать какой-либо идентификатор заказа.Затем вы можете передать этот идентификатор заказа в свой код кнопки PayPal в поле с именем invoice.

Это значение затем вернется в PDT / IPN как $ _POST ['invoice'], чтобы вы могли легко получить вседанные возвращаются и обрабатываются соответствующим образом в вашем приложении.

Другой альтернативой может быть использование Express Checkout вместо Payments Standard.Это немного сложнее, но имеет меньше ограничений.

Хотя даже с EC, я все же рекомендую посылать некоторый идентификатор заказа вместе с запросом на оплату, чтобы вы могли легко связать все назад и вперед.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...