В прошлый раз я написал "Просто проведите пальцем по экрану и сразу же вычтите деньги. Разве вы не хотите знать принцип платежного кода?』, я думал, что такие статьи будут читать не очень, но не ожидал, что после публикации данные по чтению будут неплохие. Итак, сегодня младший черный брат вернется, чтобы поговорить с вами об оплате.
Несмотря на то, что нашим основным методом оплаты является использование платежей Alipay/WeChat, когда у нас недостаточно средств на балансе или мы выбираем дебетование с банковской карты, мы будем использовать банковскую карту для оплаты.
Итак, сегодня мы поговорим об актуальных принципах оплаты банковской картой и популяризируем весь процесс оплаты банковской картой.
Оплата банковской картой может быть разделена на онлайн-платеж и офлайн-платеж. Среди них классификация офлайн-платежей относительно проста, то есть, когда мы обычно делаем покупки в торговом центре, мы платим картой в POS-терминале.
Классификация онлайн-платежей больше, в зависимости от типа банковской карты, ее можно разделить на оплату кредитной картой и оплату дебетовой картой. В зависимости от платежного поведения мы можем разделить его на быстрые платежи, платежи через онлайн-банкинг и платежи токенами.
Сегодня мы в основном говорим об экспресс-платежах и онлайн-платежах, которые в настоящее время являются наиболее популярными способами. Есть еще несколько способов, о них мы поговорим позже.
Онлайн-банк для оплаты
Прежде всего, давайте поговорим об онлайн-платежах, этот метод должен был быть самым популярным методом онлайн-платежей 10 лет назад.
Возьмем в качестве примера интернет-магазины: после оформления заказа на сайте выбор оплаты банковской картой обычно переходит на страницу кассира. Затем на странице кассира мы выбираем соответствующий банк, нажимаем на банк для оплаты, и, наконец, он переходит на страницу соответствующего банка.
Эта страница кассира может быть страницей продавца или страницей платежного учреждения, что связано с режимом стыковки платежей онлайн-банкинга.
После перехода на страницу банка нам сначала нужно загрузить контроль безопасности в соответствии с банком, чтобы мы могли ввести соответствующую информацию о банковской карте. Во-вторых, нам также необходимо использовать оборудование безопасности, предоставленное банком, такое как USB-экран, токенизатор, токен-код и т. д.
После успешной оплаты на веб-сайте банка вы можете нажать «Назад», чтобы синхронно вернуться на веб-сайт электронной коммерции.Весь процесс показан на следующем рисунке:
Фоновый процесс оплаты выглядит следующим образом:
Видно, что вся ссылка платежа онлайн-банкинга очень длинная, и любой шаг может завершиться неудачей, поэтому процент успешных платежей не будет очень высоким. Кроме того, некоторые банковские страницы онлайн-банкинга можно открыть только в IE, а это могут быть очень старые версии IE. Кроме того, для обеспечения безопасности платежа через интернет-банкинг необходимо использовать U-образный щит и установить подключаемый модуль безопасности.
Честно говоря, этот процесс до сих пор очень сложен, я до сих пор помню, что когда я использовал онлайн-банкинг одного банка для пополнения баланса, чтобы купить желтые бриллианты, у меня весь день ничего не получалось, и установка различных сертификатов не удалась. Первая онлайн-зарядка закончилась неудачей.
Спасибо, что сэкономили мне 10 юаней на карманные расходы~
Быстрая оплата
Быстрая оплата означает, что пользователь предоставляет информацию о карте продавцам, таким как электронная коммерция, и продавец передает информацию о карте в платежное учреждение в фоновом режиме, а затем связывает соглашение. После успешной привязки нет необходимости просить пользователя предоставить номер карты и другую информацию для следующего платежа.
В качестве примера возьмем платеж в интернет-магазине: для первого платежа необходимо пройти процесс привязки карты.
После успешного вычета перейдите в приложение банка, чтобы проверить запись привязки между картой и платежным учреждением.
При оформлении заказа и оплате на сайте электронной коммерции, поскольку на сайте электронной коммерции сохранены записи, нет необходимости вводить данные карты. Предыдущий процесс оплаты выглядит следующим образом:
На приведенном выше рисунке показана ситуация, когда код подтверждения необходимо ввести в предыдущем процессе оплаты, Фактически, этот шаг также может обеспечить определенную сумму платежа без пароля.
Интерфейсы быстрых платежей обычно можно разделить на две категории:
- контракт/оплата
- удержание платежа
контракт/оплата
Подписание/оплату необходимо разделить на два этапа:
- Заявка на контракт / Проверка контракта
- платить
В процессе подписания информация о банковской карте, номер банковской карты, имя учетной записи, идентификационный номер, номер мобильного телефона и кредитная карта также могут быть переданы в cvv2 и срок действия. Этот процесс в основном предназначен для аутентификации и проверки правильности информации о банковской карте.
После успешной проверки информации о платежном учреждении/банке будет отправлено SMS. Когда пользователь заполняет SMS, это означает, что он соглашается открыть быстрый платеж и установить обязательные отношения. После успешной привязки платежное учреждение вернется к мерчантуномер договора.
В процессе оплаты продавец может взять номер договора, чтобы вычесть деньги.
Весь фоновый процесс выглядит следующим образом:
удержание платежа
Процесс удержания платежа проще, чем заключение договора/платежа.Каждый раз, когда вы напрямую загружаете данные своей банковской карты, вы можете напрямую вычитать деньги. В принципе, удержание платежа может сделать весь процесс секретным платежом, то есть без ввода проверочного кода для завершения удержания.
Процесс относительно прост. Для получения подробной информации, пожалуйста, обратитесь к процессу быстрой оплаты.
По сравнению с процессом подписания/платежа удержание платежа кажется более быстрым, но риск безопасности этого метода выше, чем при подписании платежа, и может иметь место явление мошенничества. Первоначальный интерфейс удержания должен подходить для таких сценариев вычета, как вода, электричество и уголь, но процесс разработки когда-то использовался в таких сценариях, как финансовый платеж.
Сейчас этот тип интерфейса постепенно уходит в автономный режим и заменяется новым интерфейсом бизнес-делегирования (похожим на контракт/оплату).
Хотя опыт оплаты быстрых платежей является хорошим, весь процесс не должен прыгать на страницу банка, а процесс оплаты не будет прерванным, а ставка успеха высока.
Но простота использования и безопасность всегда противоречат друг другу. Поскольку в этом процессе пользователь предоставляет продавцу информацию, связанную с банковской картой, в случае кражи этих данных могут быть украдены средства. Кроме того, для быстрой оплаты проверочный код мобильного телефона может стать последней линией обороны, в случае утери мобильного телефона возможно также хищение средств с банковской карты.
Проблемы, связанные с банковскими платежами
В целом весь процесс подключения к платежному каналу банковской карты не представляет собой ничего сложного, это не что иное, как сращивание параметров согласно документации интерфейса, а затем соответствующая отладка. Но в этом процессе есть моменты, которые требуют особого внимания.
Подпись/Подтверждение
Оплата банковской картой обычно передается через Интернет.В этом процессе, чтобы предотвратить подделку сообщения, сообщение обычно шифруется с помощью RSA2, национальной тайны и других алгоритмов шифрования, а строка подписи получается, а затем отправляется в платежное учреждение вместе.
Платежная организация проведет соответствующую проверку подписи.Если проверка подписи не пройдена, платежный запрос будет отклонен, что может эффективно гарантировать, что платежный запрос инициирован законным продавцом. Поэтому мерчантам необходимо хранить соответствующие публичные и приватные ключи, а не сливать их по своему желанию.
Кроме того, платежное учреждение также добавит подпись к асинхронному уведомлению о реагированной информации о результате запроса на оплату / онлайн-банкинг. Торговец должен сделатьпроверка подписи, вы можете перейти к следующему шагу, только если подпись пройдена.
ps: Транзакция не может быть обработана, так как запрос не подписан, поэтому этот шаг обязательно будет выполнен.
Однако, если вы не проверяете подпись возвращаемой информации, вы также можете обработать сообщение, которое может быть проигнорировано.
Когда я впервые подключился к соответствующим платежным каналам, это было слишком хлопотно, поэтому я не стал проверять подпись. Думая об этом сейчас, это действительно трогательно. . .
окончательное государственное решение
Для синхронных интерфейсов, таких как быстрая оплата, для сообщения ответа на запрос интерфейса оплаты нам нужно определить, был ли запрос успешным или нет, и нам нужно использовать код ответа, возвращаемый интерфейсом. Некоторые интерфейсы также могут возвращать код ответа и статус платежа, поэтому нам нужно судить на основе их комбинации.
Этот процесс не означает, что, кроме успешного кода ответа, все остальное считается неудачным. Нам необходимо классифицировать их в соответствии с соответствующими документами интерфейса.Некоторые коды ошибок, такие как недостаточный баланс и неправильные элементы карты, конечно, можно однозначно классифицировать как сбои.
Однако, например, некоторые коды возврата, такие как обработка или системные исключения, не могут быть четко определены как успех или неудача.Мы не можем установить это как неудачу.Нам нужно объединить платежный запрос или результаты асинхронного уведомления, а затем обработать.
Для синхронных интерфейсов, таких как оплата онлайн-банкинга, этот тип может только ожидать асинхронного уведомления со стороны канала. Вообще говоря, сторона канала будет уведомлять только об успешном платежном поручении.
Это согласно документации интерфейса на стороне канала.
Вообще говоря, интерфейс асинхронного уведомления канала, если на асинхронное уведомление канала не возвращается успешный ответ, уведомление будет повторять уведомление до тех пор, пока определенное количество раз или не будет получен успешный ответ.
Итак, после получения асинхронного уведомленияПосле успешной внутренней логической обработки необходимо, чтобы вернуть код успешного ответа на конец канала. Таким образом, даже если внутренняя логика обрабатывает ошибки, внутреннюю логику можно снова обработать с помощью асинхронного уведомления.
Кроме того, необходимо обратить внимание на внутреннюю логику обработкиидемпотентность.
Связанный параметр запроса
Сумма платежа
Процесс запроса должен обратить внимание на оплату в интерфейсном документе.единица суммы, это центы или юани. Если вы не обратите внимание на единицу, это, вероятно, приведет к недоплате и переплате.
Для получения информации об успешном ответе нам также необходимо обратить внимание на проверку соответствия отправленной суммы и вычтенной суммы (если таковая будет возвращена). Если это не соответствует действительности, ** не следует обновлять заказ, чтобы он был успешным, ** своевременно вмешиваться вручную, чтобы проверить заказ.
После запуска окончательного платежного канала необходимо сделать некоторые реальные вычеты, например небольшую сумму 0,1, максимальную сумму теста канала. После успешного списания следует также вовремя проверить, соответствует ли фактическая сумма списания банковской карты отправленной сумме.
См. ниже причины.
Запросить серийный номер (номер заказа)
Помимо суммы платежа, нам также необходимо обратить внимание на уникальность серийного номера запроса/номера заказа, который необходимо использовать.уникальный идентификаторВ качестве порядкового номера запроса не используйте метки времени и другие методы.
Для повторных серийных номеров в случае неудачи допускается повторная оплата. В случае успеха дальнейшая оплата не допускается. Однако есть также некоторые институциональные интерфейсы, которые не выполнили эту часть проверки.
Возьмите яму, через которую вы прошли, урок из десятков тысяч. Для удобства тестирования системы ранее подключенного к ней банка в качестве порядкового номера используется непосредственно временная метка.
Эта проблема не была обнаружена вовремя, когда я вышел в интернет.Однажды два заказа с одинаковым серийным номером были сформированы в одну и ту же секунду и отправлены в банк. Потом другая сторона вернула, что оба платежа прошли успешно, но при сверке на следующий день оказалось, что поступил только один заказ средств. К счастью, средства были возвращены вручную в конце концов, иначе я не смог бы заплатить за него, если бы продал его в то время. . .
Хотя этот пример, безусловно, конец проблем банка, без тяжелой анти-обработки, но до тех пор, пока мы делаем только логический серийный номер, но и избежать проблемы.
очень печальный пример
Вышеупомянутые вопросы обсуждались так много, что на самом деле хочу привлечь внимание технических студентов стыковочного канала. Не думайте в одностороннем порядке, что такие системы, как платежные учреждения или банки, стабильны и не будут иметь проблем.
Ведь программу пишут люди, и один апгрейд и изменение может вызвать коллапс крови.
Так что не слишком доверяйте стабильности системы другой стороны.Что мы можем сделать, так это хорошо поработать над стабильностью нашей собственной системы, добавить различные проверки параметров и попытаться уменьшить возникновение рисков.
Приведу несколько трагических примеров:
После того, как состыковался с банкой, небольшой тест, вообще никаких проблем. Но когда мы тестируем лимит, например, лимит составляет 1000 юаней, когда мы тестируем 1000,01, вполне разумно, что платеж не пройдет.
Но вычет был успешным, и, глядя на запись в банке, было вычтено только 0,01.
Увидев это, у вас много вопросительных знаков? ? ? Этот TM на самом деле имеет переполнение лимита. . .
Эй, с такой проблемой можно только срочно отключить канал, а потом ждать, пока банк исправит.
Наконец, вот несколько примеров из Интернета о платежных лазейках.
адрес:wooyun.js.org/drops/
Суммировать
Сегодня мы в основном говорили о двух основных режимах онлайн-платежей отделения банковских карт, быстрой оплаты и онлайн-банкинга.
Выплата QuickPay в настоящее время в настоящее время является наиболее распространенным из платежа банковской карты, потому что лучший опыт, процесс оплаты не может быть легко сломан. Однако эта модель относительно низкая безопасность. Но теперь заканчивается заканчивающимся банковским платежным учреждениям. Будет соответствующий контрольный контроль риска, у нас не слишком много беспокоиться.
Еще одна точка быстрой оплаты, общая сумма небольшая, обычно максимальная сумма может составлять всего несколько десятков тысяч.
Таким образом, для сценариев, когда сумма платежа относительно велика, можно использовать только оплату через интернет-банкинг.
Наконец, мы рассказали о некоторых проблемах в процессе подключения оплаты банковской картой, и некоторые примеры можно интегрировать в тестовый пример. Всякий раз, когда канал подключен, он может быть выполнен в зависимости от случая.
Напоследок (обратите внимание, просите лайки, просите переадресацию)
Что касается статей из серии платежей, Сяо Хей обновил несколько статей, а исторические статьи можно просмотреть ниже для соответствующего чтения.
В дальнейшем Сяо Хей обновит несколько статей, расскажет о способах оплаты, связанных с платежами Alipay/WeChat, расскажет о повторных вычетах в процессе оплаты и т. д.
Если вы хотите узнать другие темы, связанные с платежами, вы можете оставить сообщение в области комментариев.
Связанное Чтение
Принцип платежного кода Alipay/WeChat
Связанные понятия оплаты WeChat/Alipay
Несколько методов маршрутизации платежных каналов
Пошаговое обновление баланса
Поговорим о прямом обслуживании банк-предприятие
Проект системы согласования
Продолжение следует...
Справочная документация
Woohoo. Я простолюдин.com/touch/477150.Также…
Добро пожаловать, чтобы обратить внимание на мой официальный аккаунт: программа для общения, ежедневный толчок галантерейных товаров. Если вас интересует мой рекомендуемый контент, вы также можете подписаться на мой блог:studyidea.cn