вторник, 23 августа 2011 г.

Регулярные выражения для javascript

Задача: написать проверку сложности пароля. Пароль должен иметь длину не менее 5 символов, и содержать в себе хотя бы одну цифру, при этом пароль может содержать только цифры и латинские буквы в верхнем и нижнем регистре.

Получившееся у меня выражение:

((?=.*\d).(?!.*\W).{5,20})

Здесь можно посмотреть шаблоны регулярных выражений, с объяснением как они работают

пятница, 12 августа 2011 г.

Настраиваем IPN для работы с PayPal

Пришлось порядком повозиться, чтобы заставить сайт мгновенно узнавать о том, что пользователь оплатил заказ. Работаем с PayPal напрямую, без сайтов-посредников, возвращение пользователя на наш сайт также не требуется. PayPal сам отправляет нам post-запрос с кучей заголовков, как только платеж совершен.

Вот здесь понятно описано, с примером для c# http://www.codeproject.com/KB/aspnet/paypal_c_aspnet.aspx#IPN

Вкратце:
1. Нам приходит post-запрос.
2. Сохраняем его и отправляем обратно на PayPal, чтобы проверить, действительно ли платеж совершен, или это хак.
3. Получаем ответ от PayPal - Verified - если платеж совершен, или Invalid, если такого платежа не было. Ну и обрабатываем данные.

Свои параметры для пост-обработки заказа передаем с формы через параметр custom.
<input type="hidden" name="custom" value="our params">


При обработке ответа сервера не забываем проверить адресата платежа, сумму и валюту.

Для тестов регистрируемся на Sandbox.paypal.com, создаем тестового продавца и покупателя, и вперёд.