Пример кода для языка Perl
Для инициализации платежа можно использовать любой метод — IFRAME-форму, HTML-форму, POST-API или выставление счёта через JSON API.
Поэтому начало платежа может обеспечивать и статическая страница, и CGI-скрипт. Но для того, чтобы автоматически обработать событие оплаты,
нужно реализовать возможность принятия POST-оповещений об успешных платежах.
Реализация CGI-скрипта для приёма POST-уведомлений
CGI-скрипт на языке Perl для обработки запросов от PayKeeper об успешных платежах можно реализовать следующим образом:
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44  | 
						#!/usr/bin/perl  use CGI::Carp qw(fatalsToBrowser);  use CGI qw (:standard);  use POSIX;  use lib qw(.);  use Digest::MD5 qw(md5 md5_hex md5_base64);  my $ip = $ENV{'REMOTE_ADDR'}; my $time = strftime("%Y-%m-%d %H:%M:%S",localtime); # Данные из POST-запроса об оплате  my $id = param('id');  my $sum = param('sum');  my $clientid = param('clientid');  my $orderid = param('orderid');  my $key = param('key');  my $service_name = param('service_name');  my $client_email = param('client_email');  my $client_phone = param('client_phone');  my $ps_id = param('ps_id');  my $batch_date = param('batch_date');  my $fop_receipt_key = param('fop_receipt_key');  my $bank_id = param('bank_id');  my $card_number = param('card_number');  my $card_holder = param('card_holder');  my $card_expiry = param('card_expiry'); my $secret='ПАРОЛЬ';  my $md5hash=md5_hex($id.$sum.$clientid.$orderid.$secret);  print "Content-type: text/html\n\n";  # проверяем у себя хеш  if ($key eq $md5hash) #(и свои проверки....)  {    my $hash = md5_hex($id.$secret);    my $ret = "OK $hash";    print "$ret";    # простая запись лога для отладки    open(FFF,">> /tmp/paykeeperlog.txt");    print FFF "$time IP=$ip Ret=$ret id=$id sum=$sum key=$key, my key is $md5hash <br>\n";    close(FFF);  }  exit;  | 
					
Важно отметить, что ответ данного скрипта должен состоять исключительно из строки «OK <хеш>» и ни байтом больше, в противном случае PayKeeper будет считать, что ваш сайт не правильно обработал оповещение об успешном платеже.
Пример кода предоставлен нашим пользователем.
