2010-07-28 3 views
0

Я успешно разместил свою пользовательскую корзину покупок в PayPal - он обрабатывает заказ только красиво, и когда платеж получен, он отправляет данные обратно на URL-адрес I указанном в конфиге. Код основывается на библиотеке, найденной здесь: http://www.phpfour.com/blog/2009/02/php-payment-gateway-library-for-paypal-authorizenet-and-2checkout/PayPal IPN, возвращающий корзину или идентификатор заказа для последующей обработки

Так что я успешно проверяю IPN, отправляя данные обратно в PayPal - это все отлично. Вот моя дилемма - как я узнаю, какой порядок подтверждает IPN?

Я не пользуюсь корзиной PayPals, у меня есть свой. У меня есть собственный идентификатор корзины в моей базе данных, и когда я получаю IPN для этой тележки, я бы хотел «закрыть» корзину и сохранить ее как заказ, который будет рассмотрен позднее.

Я пробовал передать дополнительное настраиваемое поле вместе с перенаправлением на PayPal, которое заполняет корзину, но это значение не возвращается мне в IPN. Документация на x.com просто отсутствует, поэтому я не нашел там никакой помощи.

Есть ли у кого-нибудь опыт работы с PayPal и IPN? Не обязательно должен быть с PHP - я могу интерпретировать код, но если у вас есть способ отправить значение в PayPal с порядком, а затем вернуть это значение с помощью IPN, то это УДИВИТЕЛЬНО!

Если это невозможно с API-интерфейсом PayPal (что мне трудно поверить) - любые другие предложения о том, как с этим справиться?

ответ

1

Я не знаю, если это хорошая идея или нет, но здесь есть несколько различных вариантов:

A: Используйте первый набор on1/OS1 для пункта 1 и добавить идентификатор заказа в том, что ,

B: В пользовательском поле я не уверен, что у вас есть, но вы можете сделать что-то вроде orderidhere41 | otheritems здесь, а затем просто проанализируйте это, взломав на | чтобы разделить их.

Paypal ограничивает это, и я не знаю, почему, но оба из них должны работать. Выполнение этого как on/os поместит его в paypal квитанцию ​​для пользователя, так что это мой предпочтительный метод.

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

EDIT:

Разъяснение on1 OS1. Это «параметры», обычно используемые для размера/цвета и т. Д. Дополнительную информацию о них см. В разделе IPN PDT Paypal variables в разделе option_name1 option_selection (sp). Название курса - это заголовок, который будет «Идентификатором заказа», который будет фактическим идентификатором os.

EDIT:

Просматривая эту документацию $my2CO->addField('cart_order_id', rand(1, 100)); где я поставил бы свой собственный идентификатор корзины заказа. Это должно быть правильное поле. Извините за сумбур :)

EDIT:

В конце концов, есть настраиваемое поле для Paypal IPN, называемое «обычаем» добавление данных это будет проходить, это переведет OrderID для вас и из. Его следует называть обеими сторонами.

+0

Что значит «on1/os1»? –

+0

См. Правую нотацию. –

+0

Я не думаю, что эти параметры доступны с помощью команды «Загрузка корзины», которую я использую, по крайней мере, в ужасной документации на x.com. Я дам ему выстрел в Песочницу и посмотрю, что произойдет. –

1

(это может отличаться для других API).

Опыт работы с экспресс-проверкой через C#, но процесс должен быть таким же даже в PHP. Если вы используете интерфейс Name-Value Pair (NVP) прямо перед перенаправлением пользователя в PayPal, вы попадаете на сайт PayPal, чтобы получить URL-адрес перенаправления. В рамках своего ответа они возвращают вам токен. Вы сохраняете этот токен вместе с вашим заказом. Когда происходит обратная связь IPN, вы получаете тот же самый токен назад, который позволяет вам искать первоначальный порядок.

Поток процесс выглядит следующим образом («Вы» быть ваш сайт):

  • Пользователь заполняет телегу, нажимает кнопку/ссылку, чтобы проверить
  • Запрос отправляется на ваш сайт
  • Ваш сайт получает запрос, отправляет данные в PayPal
  • Вы получаете первоначальный отклик от PayPal, который содержит токен
  • Вы сохраняете этот токен вместе с корзиной этого пользователя.
  • Вы перенаправлять пользователя по ссылке, возвращаемой PayPal
  • Пользователь перенаправляется на PayPal и вводит платежную информацию
  • Информация Оплата подкрепленная PayPal
  • Пользователь перенаправляется обратно на ваш сайт
  • PayPal отправляет IPN ответ на ваш сайт
  • вы захватить маркер, включенный в ответ
  • вы смотрите маркер ранее сохраненную найти корзину (они имеют одинаковое значение)
  • Вы закрываете первоначальный заказ/корзину покупок.

Возможно, вы захотите попробовать PHP SDK - прокрутите вниз до интерфейса пары значений имени.

+0

Но когда они вернутся на страницу подтверждения, как я узнаю, какой заказ я сохраняю? Это моя дилемма! –

+0

Я изменил свой ответ, включив поток. Может быть, это поможет объяснить это лучше. –

+0

Хмм, это не поток, который мой сайт занимает. В основном тележка превращается в HTML-форму со скрытыми полями, которые соответствуют именам переменных, затем форма автоматически отправляется в PayPal, которая берет пользователя непосредственно в PayPal. Насколько я понимаю, эта настройка SDK не будет работать для команды «Загрузка корзины», но теперь я читаю документацию, чтобы узнать, не хватает ли я чего-то. –

1

Я очень сомневаюсь, что это поможет оригинальному плакату, но PayPal либо добавила, либо, наконец, задокументировала опцию «счет-фактура», которая позволяет вам разместить идентификатор OrderID и отправить его обратно через IPN. В настоящее время я использую это и, похоже, работает так, как ожидалось.

Для дополнительной информации см Website Payments Standard Integration Guide (PDF): Приложение А Таблица А.4

1

Вы можете создать и опубликовать сквозную переменную пользовательских, что это 255 символов, которые могли бы проводить какие-либо данные. Дополнительная информация на стр. 44 в официальном руководстве IPN Paypal.

Смежные вопросы