|
Необходимая нам информация:
Магазин, список товаров.
Магазин:
1 - Название магазина, plait text (name)
2 - Сайт для перевода показов (site_id)
3 - Адрес для обмена информацией, протокол описан ниже (url)
4 - Информация о магазине и использовании товара, возможно со ссылкой
на свою страницу, html text (description)
Товар:
1 - Идентификатор товара, число (goods_id)
2 - Название товара, plait text (name)
3 - Необходимое кол-во показов для покупки (show_count)
Информация от нас:
Мы создаем магазин, предоставляем Вам (shop_id, password).
Протоков обмена:
При покупке товара, на предоставленный Вами адрес (url), приходит запрос
на покупку товара.
Запрос:
log_id
идентификатор операции, всегда уникальный, больше предыдущего
time
время операции
shop_id
идентификатор Вашего магазина
goods_id
идентификатор товара
from_id
идентификатор сайта, купившего товар
to_id
идентификатор сайта, получившего показы
format_id
идентификатор формата баннеров, дефолтный формат в сети (в УБС 1 - 468x60)
value
кол-во баннеров
key
md5 ключ, для проверки валидности информации
(md5, в хексе, в нижнем регистре, от строки -
"$log_id,$time,$shop_id,$goods_id,$from_id,$to_id,$format_id,$value,$password")
плюс еще необходимо проверить уникальность опериции, во избежание повторного
получения нового ключа, по перехваченным данным (достаточно проверить уникальность log_id)
Ответ от вашего сервера:
Первая строка, число (0, 1)
0 - не выполнять перевод
1 - произвести перевoд.
Начиная со второй строки информация которую увидит пользователь
после покупки товара. (необходимая ему для использования товара,
пароль, логин).
ЗЫ: Используется кодировка utf-8.
Пример скрипта на perl:
--
#!/usr/bin/perl -
use strict;
use CGI;
use Digest::MD5;
my $cgi = new CGI();
my $password = 'test';
print "Content-Type: text/html; charset=utf8\015\012\015\012";
my $log_id = int($cgi->param('log_id'));
my $time = int($cgi->param('time'));
my $shop_id = int($cgi->param('shop_id'));
my $goods_id = int($cgi->param('goods_id'));
my $from_id = int($cgi->param('from_id'));
my $to_id = int($cgi->param('to_id'));
my $format_id = int($cgi->param('format_id'));
my $value = int($cgi->param('value'));
my $key = $cgi->param('key');
if ($key eq lc(Digest::MD5::md5_hex("$log_id,$time,$shop_id,$goods_id,$from_id,$to_id,$format_id,$value,$password")))
{
print "1\nExchange okey!";
}
else
{
print "0\nInvalid query!";
}
|