Создание полноценного шлюза онлайн-платежей, такого как Paypal [закрыто]

160

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

Я хочу построить систему, аналогичную Paypal. Теперь я понимаю, что Paypal предлагает множество функций под крышей, и я не могу реализовать их все сразу. Я хочу реализовать основные функциональные возможности Paypal и других подобных сервисов.

Так что мой вопрос (скорее дискуссия) о том, как можно было бы построить такую ​​систему. Некоторые моменты для обсуждения:

  1. Обработка платежей через существующие банки. Я предполагаю, что мне понадобится доступ к местным банковским протоколам, чтобы получить это.
  2. Разрешить пользователям безопасно хранить и обрабатывать свои платежи
  3. Как Paypal обрабатывает транзакции?

Мысли?

Обэйд
источник
2
за этот вопрос проголосовали многие. мне интересно, что в наши дни трудно найти официальные документы и т. д., поскольку эти платформы не хотят, чтобы эта информация была легко доступна.
filthy_wizard
^ очень верно. Я видел много замечательных вопросов, к сожалению, не рекомендуется
Ральф Дингус

Ответы:

214

То, о чем вы говорите, становится поставщиком платежных услуг. Я был там и сделал это. Примерно 10 лет назад это было намного проще, чем сейчас, но если у вас есть феноменальное количество времени, денег и терпения, это все еще возможно .

Вам нужно будет связаться с банком-эквайером. Вы не сказали, в каком регионе мира вы находитесь, но под этим я не подразумеваю отделение местного банка. Каждый крупный банк, как правило, будет иметь отдельную руку для получения карт. Так вот в Великобритании у нас есть (например) Natwest банк, который использует Streamline (или Worldpay) в качестве его приобретающей руки. В целом, несмотря на то, что у нас есть десятки крупных банков, все они используют одного из пяти или около того получателей карт.

К счастью, все британские владельцы карт используют стандартный протокол для передачи запросов на авторизацию и расчета в конце дня. Вы найдете незначительные причуды, когда некоторые банки-эквайеры поддерживают некоторые функции и имеют немного другой синтаксис, но различия довольно незначительны. Стандарты Великобритании публикуются Ассоциацией платежных клиринговых услуг (APACS) (которая теперь известна как UKPA). Стандарты до сих пор обычно называют APACS 30 (авторизация) и APACS 29 (расчет), но теперь формально известны как APACS 70 (книги с 1 по 7).

Несмотря на то, что стандарт APACS широко поддерживается в Великобритании (Amex и Discover также принимают сообщения в этом формате), он не используется в других странах - в каждой стране есть свои - например: Carte Bancaire во Франции, CartaSi в Италии, Sistema 4B в Испания, Данкорт в Дании и т. Д. В настоящее время предпринимаются усилия по унификации протоколов по всей Европе - см. EPAS.org

Общаться с банком-эквайером можно несколькими способами. Опять же, это будет зависеть от вашего региона. В Великобритании (и в большинстве стран Европы) у нас есть один коммуникационный шлюз, который обеспечивает связь со всеми крупными покупателями, они называются TNS, и есть десятки способов связи через них с банком-эквайером от модемов до 9600 бод, ISDN, HTTPS, VPN или выделенная линия. В конечном итоге запрос авторизации будет преобразован в протокол X25, который используется этими банками-эквайерами при общении друг с другом.

Подводя итог: все зависит от вашего региона.

  • Свяжитесь с крупным банком и попытайтесь дозвониться до их руки.
  • Объясните, что вы настраиваетесь в качестве поставщика платежных услуг, и запросите сведения о формате связи для запросов на авторизацию и файлов расчетов на конец дня
  • Создайте тестовую учетную запись продавца, разработайте программное обеспечение для авторизации и расчетов и пройдите процедуру аккредитации. Большинство покупателей помогают вам пройти этот процесс бесплатно, но когда вы хотите зарегистрироваться в качестве аккредитованного PSP, некоторые потребуют плату.
  • вам также необходимо соблюдать некоторые правила, например, вам может потребоваться зарегистрироваться в качестве платежного учреждения

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

Помимо этого у вас есть много других проблем, в основном связанных с PCI-DSS. Это совсем другая тема, и на этом сайте уже есть несколько вопросов и ответов. Как я уже сказал, это феноменальное начинание - скорее всего, многолетний проект даже для команды разумного размера, но это, безусловно, возможно.

PaulG
источник
1
Спасибо Полу, что это отличная информация. Это именно то, что я искал. Один из наших клиентов ищет решение для внедрения в Южной Азии. Мы не были на 100% уверены, поэтому возникли вопросы по SO.
Obaid
1
Спасибо @PaulG, я также ценю ваш ответ. Пожалуйста, дайте мне знать одну вещь. Что такое рука для получения карты? То же самое относится и к организации, которая предоставляет процессор Merchant bank. Не могли бы вы дать мне какие-либо рекомендации по этому поводу?
Франк Мят Чт
Привет, Пол и @Obaid. Я пытаюсь создать свой собственный платежный шлюз. Однако я строю это вокруг криптовалюты, и я не имею дело с банками. Инфраструктура для перевода средств создана, но я хочу знать, как решать проблемы безопасности и какие моменты следует учитывать при этом. Вы сделали это? Не могли бы вы помочь мне в каких случаях я должен рассмотреть? В Интернете не так много ресурсов для этого. Заранее спасибо
Алиреза Нури
Я работал в компании, которая занималась этим, поэтому у меня есть хорошая идея, как это можно сделать. Тем не менее, они никогда не оплачивали свои контрактные счета, поэтому у меня есть весь этот исходный код на внешнем диске. Могу попытаться продать то, что я написал. Тем не менее, по сути, в наши дни есть много API, которые вы можете использовать, чтобы связать все вместе и создать сайт обработчика платежей. Я бы начал с рассмотрения того, что существует с вызовами API, которые вы можете использовать на своем сайте. Когда приходит много денег, вы можете использовать их для замены внешних вызовов API внутренним кодом.
Мультиплексор
@AlirezaNoori хорошее начало - просто стать PCI-совместимым в отношении транзакций и политик базы данных. Несмотря на то, что это не требуется для биткойнов, оно служит эффективным руководством для обеспечения безопасности
Гарет Клаборн
-10

Большая задача, скорее всего, вам не следует изобретать велосипед, а использовать существующее колесо (например, PayPal).

Однако, если вы настаиваете на продолжении. Начните с малого, вы можете использовать средства обработки кредитных карт (Moneris, Authorize.NET) для обработки кредитных карт. У большинства провайдеров есть API, который вы можете использовать. Будьте осторожны, что вам может понадобиться использовать разных провайдеров в зависимости от типа карты (Discover, Visa, Amex, Mastercard) и страны (США, Канада, Великобритания). Поэтому создайте его так, чтобы вы могли общаться с несколькими API обработки кредитных карт.

Безопасность имеет важное значение, если вы храните кредитные карты и платежные реквизиты. Убедитесь, что вы шифруете вещи правильно.

Опять же, не изобретай велосипед. Вам лучше воспользоваться существующим провайдером и сосредоточить свое внимание на разработке решения проблемы, которую нелегко приобрести.

vfilby
источник
17
Такие компании, как Venmo, убивают его прямо сейчас. Поэтому безумие думать, что вы не можете сделать колесо лучше, потому что кто-то вроде PayPal уже существует. Новейшее мобильное приложение PayPay выглядит так, как будто оно на самом деле было переработано и выглядит как Venmo.
Moustache_Me_A_Question
Paypal принадлежит Venmo
Kusal Hettiarachchi