The tool has to do the following tasks, using proxies and multithread on target website:
2. check if an item is present in cart (because it needs one)
3. if condition is met, goes to checkout page
4. will fill coupon field with imported bulk codes list from me in the tool
5. will fill pin code field and try from 000 to 999
until it returns valid/used/expired
if it does, it stores it into the database
Now the problem :
after 10 pins failed successive in unknown given frame of time, coupon code gets banned for 30 minutes
Workaround Idea #1:
since i have coupons in bulk
we can try 10 pins, if wrong pause and move to next coupon, and so on, until 30 minutes has elapsed then go back and resume 1st coupon
coupon 1: 000,001,002,003,004,005,006,007,008,009
pause coupon 1 and move to coupon 2: do the same
pause coupon 2 and move to coupon 3 etc
after 30 minutes go back to coupon 1 to resume: 010-019
we can work multithreaded, 1 thread per pool, a pool being 30 coupons, 10 pin requests per minute, so 30 coupons to go back to first after 30 minutes using round robin algorithm maybe?
Workaround Idea #2:
find the limit of requests/tries that the server can handle within a given frame of time without triggering a ban
the ban lasts 30 minutes, so my guess is that the limit is 10 tries per 30 minutes, maybe do more researches about it (30/10 = 3 minute, 1 try per 3 minutes so I assume this is the limit?)
assign a thread to each coupon (from the imported list) so they can run parallelly without having to pause and resume and move to next coupon unlike idea #1
benefit of the idea #2 is that the project will be less complex
Fix the previous PHP script a previous Freelancer coded a year ago, before the target site implements the protection I explained above
Start from scratch (NO Selenium allowed but PHP/ASP script that run on server is welcome)
If you haven't read the project details before contacting me, or claiming you've read it, I will rate and ignore your bid.
If you ask questions that have been answered in the project details, I will stop talking.
If you feel like the task is too complex for you, PLEASE DON'T WASTE YOUR + MY TIME.
If you have interesting questions don't hesitate to ask.
Any suggestions are welcome.