PayPal прикованный платеж (или адаптивный) в приложении iOS + интеграция с сервером - PullRequest
4 голосов
/ 17 января 2012

Я хочу внедрить платежную цепочку PayPal (это не один из адаптивных методов оплаты) в рыночном приложении iphone, и я хочу, чтобы мой сервер мог отслеживать все этапы оплаты, чтобы избежать одновременных покупок одного и того же продукта (это физический продукт, и его нельзя купить дважды).

Я прочитал эту документацию от PayPal о адаптивном потоке платежей , о мобильной интеграции и об этом IPN серверная часть реализация.

Теперь единственный способ добиться этого, по-видимому, заключается в следующем:

  1. , когда пользователь нажимает кнопку оплаты, клиент вызываетнаш сервер, чтобы создать «ожидающую» транзакцию для этого продукта.
  2. клиент вызывает нативный PayPal SDK, чтобы предоставить пользователю представление платежа со всей информацией, возвращаемой нашим сервером.
  3. PayPal Callsнаш сервер, чтобы уведомить о совершенном платеже, и здесь сервер завершает ожидающую транзакцию, ранее созданную.
  4. paypaЯ звоню клиенту, чтобы уведомить о совершенном платеже, и здесь отображается экран с благодарностью.

Я бы не стал делать такие вещи по следующим причинам:

  • Я должен установить «блокировку» продукта, чтобы избежать повторной покупки: единственное место, где я могу установить эту блокировку, это прямо перед вызовом интерфейса PayPal, а затем разблокировать его в случае отмены операции пользователем.Что делать, если пользователь остается в подтверждении PayPal в течение длительного времени?Я мог бы установить тайм-аут на сервере (например, на 1 час), но это не помешало бы пользователю завершить покупку по истечении этого периода!
  • Я должен указать реквизиты платежа (например, сумму иполучатель электронной почты) от клиента.Как я уже писал, я мог бы использовать данные, предоставленные сервером, но это привело бы меня к нескольким проблемам безопасности и сложности.
  • Используя нативный sdk, пользователь может выбрать один из своих существующих адресов доставки, но он можетне создавать или редактировать новый.Я должен попросить адрес доставки за пределами PayPal и передать эти данные на свой собственный сервер.

Есть предложения?

1 Ответ

0 голосов
/ 03 мая 2013

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

Хранение продавца вне потока транзакций позволило нам разрешить покупателю завершить оформление заказа с использованием реализации экспресс-проверки из встроенного веб-просмотра.

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

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

Пожалуйста, позвольте мне заметить, что в конце мы не используем реальную цепочку платежей PayPal, но для нас этот подход был хорошим, и к настоящему времени все, кажется, работает хорошо.

...