Что нового

[Автоматизация] Ввод данных в платежную форму на сайте Билайн

A

at

Гость
Версия AutoIt: 3.3.12

Час добрый Всем!

Описание: На сайте билайн есть такая платежная форма для пополнения счета мобилы кредитной картой. У меня есть несколько карточек, с которых я планирую время от времени пополнять телефон.

Требуется написать скрипт, который будет извлекать платежные данные из текстового файла и подставлять их в эти поля. Текстовик с данными кредиток подготавливаем в ручную – тут все просто, как показано в примечании. Телефон и сумму вносим непосредственно в форму, как показано тут:
Код:
#include <IE.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

Global $v_Path = @ScriptDir & '\beenum.txt'

$s_Url = 'https://oplata.beeline.ru/mobile/'
$o_IE = _IECreate($s_Url)
$s_CardHolder = 'CARD HOLDER'

$o_PaymentsForm = _IEGetObjById($o_IE, 'payment-form')
$o_TelPrefix = _IEFormElementGetObjByName($o_PaymentsForm, 'Payments_0__CtnPrefix')
$o_TelNumber = _IEFormElementGetObjByName($o_PaymentsForm, 'Payments_0__Ctn')
$o_Payments = _IEFormElementGetObjByName($o_PaymentsForm, 'Payments_0__Sum')
$o_CardNumber = _IEFormElementGetObjByName($o_PaymentsForm, 'CardNumber')
$o_CardMonth = _IEFormElementGetObjByName($o_PaymentsForm, 'CardMonth')
$o_CardYear = _IEFormElementGetObjByName($o_PaymentsForm, 'CardYear')
$o_CardHolder = _IEFormElementGetObjByName($o_PaymentsForm, 'CardHolder')
$o_CardCode = _IEFormElementGetObjByName($o_PaymentsForm, 'CardCode')

$o_Form = GUICreate("Beeline avtopay", 305, 84, 192, 114)
$o_Button = GUICtrlCreateButton("Пополнить счет", 8, 40, 283, 33)
$o_Inpat_TelPrefix = GUICtrlCreateInput("", 64, 8, 42, 21)
$o_Inpat_TelNumber = GUICtrlCreateInput("", 108, 8, 96, 21)
$o_Inpat_Payments = GUICtrlCreateInput("", 248, 8, 41, 21)
$s_Label1 = GUICtrlCreateLabel("Телефон:", 8, 8, 49, 17)
$s_Label2 = GUICtrlCreateLabel("Сумма:", 208, 8, 41, 17)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $o_Button
			_Forms ()
    EndSwitch
WEnd

Func _Forms ()

$v_FileRead_beenum = FileRead($v_Path) ;читаем beenum.txt --> 5434481002460217;08;2015;191;

$s_TelPrefix = Number(GUICtrlRead($o_Inpat_TelPrefix))
_IEFormElementSetValue($o_TelPrefix, $s_TelPrefix)
$s_TelNumber = Number(GUICtrlRead($o_Inpat_TelNumber))
_IEFormElementSetValue($o_TelNumber, $s_TelNumber)
$s_Payments = Number(GUICtrlRead($o_Inpat_Payments))
_IEFormElementSetValue($o_Payments, $s_Payments)

_IEFormElementSetValue($o_CardHolder, $s_CardHolder)
_IEFormElementSetValue($o_CardNumber, StringLeft($v_FileRead_beenum, 16))
_IEFormElementSetValue($o_CardMonth, StringMid($v_FileRead_beenum, 18, 2))
_IEFormElementSetValue($o_CardYear, StringMid($v_FileRead_beenum, 23, 2))
_IEFormElementSetValue($o_CardCode, StringMid($v_FileRead_beenum, 26, 3))

EndFunc
При нажатии на кнопку «Пополнить», скрипт выбирает из текстового файла первую строку и подставляет ее значения в соответствующие поля в платежной форме на сайте. И в конце строки перезаписывает текущую дату.
При следующем нажатии на кнопку «Пополнить» , скрипт выбирает следующую строку из текстовика и т.д. по кругу.

Примечание: Данные в текстовом файле подготовлены в следующем порядке: 4587000347851459;05;18;IVAN PETROV;145;11.03.2015
номер карты ; месяц на карте ; год на карте ; имя владельца на карте; CVC2-код; текущая дата)
(Если возможно реализовать распознавание капчи, обсудим отдельно, а пока планирую капчу вводить руками.)

Бюджет 500 руб. Если считаете, что это стоит больше, предложите свои условия, обсудим.
 
Автор
A

at

Гость
cnm сказал(а):
Подключи автоплатеж.
Если, Вам некогда читать и вникать в задачу, то и не зачем сорить в чужой ветке ради набивания постов.
 
Верх