Имел тут недавно день увелекательного секса процесса скрещивания php, системы ipn\idn авангейта и кейгена для аспротекта. Надо сразу сказать что прикрутить внешний кейген к Авангейту, на порядок сложнее чем к плимусу (я подразумеваю человека для которого пхп не родной). Система более сложная в плане передаваемых данных, требует проверки принимаемых и подписывания отправляемых данных, подтверждения получения ipn и подтверждения доставки ключа.
Конечн, о всегда можно использовать статический или даже динамический спискок ключей, но мы не ищем легких путей 🙂
О терминах
IPN – Instant Payment Notification – вызов вашего скрипта с параметрами содержащими данные о продажи
IDN – Instant Delivery Notification – тут уже вы должны вызвать скрипт на сайте авангейта, что бы подтвердить, что вы доставили ключ покупателю. Деньги не снимутся, пока вы этого не сделаете, как альтернатива можно делать руками в контрольной панели)
В принципе у Авангейта есть пример php скрипта для IPN, но какой-то уж сильно… никакой. Там есть только код для проверки истиности полученных данных (они подписываются) и отсылки ответа что данные полученны (тоже с подписью), а учитывая их не самый простой формат данных, было бы хорошо если бы они включили и код для их разбора\интерпретации. Примера для IDN вообще отсутсвует:( Правда есть документация для всего этого, так что где наша не пропадала. Примеры и спецификации можно скачать в секции docs.
Теперь необходимый disclaimer
- Код кейгена скорее всего крайне далек от совершенство. Так как пхп у меня со словарем, и вообще это мой второй или третий скрипт, и первый за последнии 4 года:)
- Тем нее менее, код вроде работает и делает все что требуется. Правда у меня он тестировался\работал только в режиме наличия одного продукта, в ордере. Так что по крайне мере в качестве базы для того что бы понять как правильно взаимодейтсвовать с авангейтом его можно взять.
- Ну и разумеется я не несу ответственности за любые ошибки, ущерб ну и так далее.
- С удовольствием приму любые замечания, поправки, комментарии, а также пиво и печеньки 🙂