Пользуюсь PayPro и 2Checkout — у обоих тестовые заказы сделаны неправильно. У 2Checkout нужно добавить к ссылке DOTEST=1 и ввести определенные (фиктивные) реквизиты платежного средства. Все эти данные открыты, поэтому единственное средство от использования любым желающим — запрет тестовых заказов по умолчанию, и включение только на время тестирования. Кроме этого, использование query-параметра подразумевает, что обычный и тестовый заказы обрабатываются разными ветками кода, которые могут глючить по отдельности, что не есть хорошо.
У PayPro с защитой несколько лучше — в query-параметре задается секретный код, устанавливаемый вендором. Безопасность не страдает, но проблема с отладкой кода остается.
Из того, что я видел, правильнее всего было сделано в RegSoft — там тестовый режим определялся только определенным сочетанием фиктивных платежных реквизитов, а код, отвечавший за обработку страниц, вообще не знал о том, какой заказ обрабатывается. Но в целях безопасности лицензионная информация всегда отправлялась на email вендора — нельзя было протестировать доставку на произвольный email. Ну и там не использовался показ лицензионной информации на финальной странице заказа.
По идее, идеальное решение должно быть основано исключительно на фиктивных платежных реквизитах, которые должны включать какой-то секретный код, определяемый вендором. Для банковских карт это может быть часть номера карты, для PayPal — email-адрес, и т.д.
У каких-нибудь регистраторов реализовано такое? Или все используют костыли разной степени кривизны?