Для полноты: существует способ фактически использовать оператор скобки с несколькими аргументами, если они не являются базовыми типами данных, а именно , перегружая запятый оператор , а не оператор скобки, см. следующее сообщение о перегрузке запятой:
https://stackoverflow.com/a/18136340/5836981
Отказ от ответственности: на мой взгляд, перегрузка оператора запятой является подверженность ошибкам и делает код более неясным, и его стоит рассматривать только в более экзотических случаях. Я добавил этот ответ, потому что я получил экземпляр этого кода в некотором коде, и мне потребовалось некоторое время, чтобы понять, что ключ не был оператором [] (который не может быть перегружен несколькими аргументами), но оператором.
То, о чем вы говорите, - это стать поставщиком платежных услуг. Я был там и сделал это. Лет 10 назад это было намного проще, чем сейчас, , но если у вас есть феноменальное количество времени, денег и терпения, это все еще возможно .
Вам нужно будет связаться с банком-эквайером. Вы не сказали, в каком регионе мира находитесь, но я не имею в виду местное отделение банка. Каждый крупный банк обычно имеет отдельное подразделение по приобретению карт. Итак, здесь, в Великобритании, у нас есть (например) Natwest банк, который использует Streamline (или Worldpay) в качестве своего эквайерного подразделения. В целом, несмотря на то, что у нас есть множество крупных банков, все они в конечном итоге используют одного из пяти или около того карт-эквайеров.
К счастью, все британские эквайеры карт используют стандартный протокол для передачи запросов на авторизацию и расчетов в конце рабочего дня. Вы обнаружите незначительные причуды, когда некоторые банки-эквайеры поддерживают некоторые функции и имеют немного другой синтаксис, но различия довольно незначительны. Стандарты Великобритании опубликованы Ассоциацией клиринговых услуг (APACS) (которая теперь известна как UKPA). Стандарты по-прежнему обычно называются APACS 30 (авторизация) и APACS 29 (расчет), но теперь формально известны как APACS 70 (книги с 1 по 7).
Хотя стандарт APACS широко поддерживается в Великобритании (Amex и Discover также принимают сообщения в этом формате), он не используется в других странах - в каждой стране свой - например: Carte Bancaire во Франции, CartaSi в Италии, Sistema 4B в Испании, Dankort в Дании и т. Д.В настоящее время предпринимаются усилия по унификации протоколов по всей Европе - см. EPAS.org
Связь с банком-эквайером может осуществляться несколькими способами. Опять же, это будет зависеть от вашего региона. В Великобритании (и в большинстве стран Европы) у нас есть один коммуникационный шлюз, который обеспечивает связь со всеми основными эквайерами, они называются TNS , и есть десятки способов связи через них с банком-эквайером через коммутируемое соединение. Модемы 9600 бод, ISDN, HTTPS, VPN или выделенная линия. В конечном итоге запрос авторизации будет преобразован в протокол X25, который является протоколом, используемым этими банками-эквайерами при обмене данными друг с другом.
Итак, все зависит от вашего региона.
После регистрации и аккредитации вы сможете принимать клиентов и создавать торговые счета от имени банк (а), в котором вы аккредитованы (учитывая, что каждый эквайер обычно поддерживает несколько банков).Промойте и повторите с другими эквайерами, если сочтете необходимым.
Помимо этого, у вас есть много других проблем, в основном связанных с PCI-DSS. Это совершенно другая тема, и на этом сайте уже есть несколько вопросов и ответов по этому поводу. Как я уже сказал, это феноменальное мероприятие - скорее всего, многолетний проект даже для достаточно большой команды, но он, безусловно, возможен.
Большая задача. Скорее всего, вам не стоит изобретать велосипед, а лучше использовать уже существующее колесо (например, PayPal).
Однако, если вы настаиваете на продолжении. Начните с малого, вы можете использовать средство обработки кредитных карт (Moneris, Authorize.NET) для обработки кредитных карт. У большинства провайдеров есть API, которым вы можете пользоваться. Имейте в виду, что вам может потребоваться использовать разных поставщиков в зависимости от типа карты (Discover, Visa, Amex, Mastercard) и страны (США, Канада, Великобритания). Постройте его так, чтобы вы могли взаимодействовать с несколькими API-интерфейсами обработки кредитных карт.
Безопасность важна, если вы храните кредитные карты и платежные реквизиты. Убедитесь, что вы правильно шифруете данные.
Опять же, не изобретайте велосипед. Лучше использовать существующего поставщика и сосредоточить свое внимание разработчиков на решении проблемы, которую нелегко купить.