Authorize.net Тихая почта и тестовый режим
Мы интегрировали систему автоматического выставления счетов AuthNet вместе с функцией Silent Post для создания системы платных функций в веб-приложении нашей команды. Функция немого поста имеет небольшую документацию, но я натолкнулся на несколько полезных тем на SO, а также на несколько постов в блоге, написанных нашими участниками (особенно "Все о безмолвном посте" John Conde), чтобы помочь в этом. У меня есть еще несколько специализированных вопросов, но я надеялся, что некоторые из вас, более опытные люди, могут помочь.
Документация Authorize.net включает это уведомление:
Учетные записи тестовой среды не обрабатывают транзакции подписки ARB. Если вы используете учетную запись тестовой среды, вы не будете получать эти уведомления по электронной почте в любой форме. Вы также не сможете получать транзакцию подписки ARB Silent Post при использовании учетной записи тестовой среды.
Мне было интересно, если бы кто-нибудь знал, означает ли это, что учетные записи установлены на TEST MODE в их панелях управления, или это относится к учетным записям только для разработчиков, доступным для тех, кто работает на платформах AuthNet независимо от развертываний? Учетная запись, которую мы используем для тестирования, является действительной учетной записью продавца, установленной в тестовом режиме, и мы получаем сообщения без вывода сообщений для платежей через виртуальный терминал, осуществляемых через AuthNet CP, но даже успешные ARB не показывают сообщения без вывода сообщений.
Кроме того - какие параметры можно использовать, чтобы гарантировать, что молчаливый пост возник из AuthNet? Я установил конечную точку и распечатал объекты запроса из тихого поста, а также из суперглобального $_SERVER - не похоже, что они отправляют какую-либо идентификацию, кроме хеша MD5, установленного в CP. Это нормально, но мне было интересно, будет ли какое-то преимущество в ограничении определенных удаленных адресов - я предполагаю, что это маловероятно, поскольку сообщения, вероятно, поступают из центра обработки данных с тоннами IP-адресов, выделенных для задачи отправки сообщений без вывода сообщений.
Кроме того, спецификация ARB только устанавливает статус подписки на SUSPENDED в AuthNet только по очень определенным критериям (только если неудавшийся платеж является первым повторным платежом, а если нет, то после двух попыток в последующие дни.) Является ли это обычной практикой для приостановки подписок? Если мы хотели бы сделать одно отклонение триггера отклонения, должна ли логика для отмены функции также выполнить вызов API UpdateSubscription и установить приостановку вручную, чтобы отказаться от спецификации по умолчанию?
1 ответ
Мне было интересно, если бы кто-нибудь знал, означает ли это, что учетные записи установлены на TEST MODE в их панелях управления, или это относится к учетным записям только для разработчиков, доступным для тех, кто работает на платформах AuthNet независимо от развертываний?
Это относится к обоим. Любые тестовые транзакции ARB никогда не будут обрабатываться и не генерировать Silent Posts. Вероятно, поэтому их форумы разработчиков полны вопросов о тестировании ARB. По сути, лучшее, что вы можете сделать при тестировании, помимо настройки действующей подписки, это:
- Проверьте вызов API с помощью учетной записи разработчика. Если вы получаете идентификатор подписки обратно, вы знаете, что ваша интеграция работает правильно.
- Протестируйте Silent Post, отправив ему смоделированное сообщение POST. Я могу опубликовать образец формы для этого.
Кроме того - какие параметры можно использовать, чтобы гарантировать, что молчаливый пост возник из AuthNet?
Хеш MD5, возвращаемый в бесшумном сообщении, является хешем строки, включающей значение хеша MD5 (установленное в настройках безопасности), которое, предположительно, только Авторизуется, и вы знаете. Таким образом, вы генерируете хеш на своем конце, используя возвращенную информацию плюс секретную строку хеша и сравниваете для проверки ответа. Подробности о хэше можно найти здесь.
Это нормальная практика для приостановки подписки?
Нормальная практика? Честно говоря, я не знаю. Я не уверен, как другие компании справляются с этим. Где-то на их форумах сообщества есть пост, где сотрудник Authnet объясняет, как это работает, но я не смог найти его, чтобы связать его здесь. Это имело смысл для меня, когда я читал это.
Если мы хотели бы сделать одно отклонение триггера отклонения, должна ли логика для отмены функции также выполнить вызов API UpdateSubscription и установить приостановку вручную, чтобы отказаться от спецификации по умолчанию?
Если подписка не удалась, она автоматически приостанавливается Authorize.Net, поэтому вам не нужно ничего делать с вашей стороны. Но вам нужно обновить учетную запись вашего пользователя в вашей системе и приостановить ее (при условии, что подписка предназначена для какой-либо учетной записи пользователя).