Готовые скрипты

Этот раздел полезен для участников ProstoPlateg.kz. Если вы еще не с нами — имеет смысл зарегистрироваться. Понятно

Программирование платежного интерфейса на языке PHP

В этом разделе вы найдете пример программирования нашего платежного шлюза на языке PHP. Набор скриптов для интеграции функций платежного шлюза состоит из следующих файлов:

Для интеграции функций платежного шлюза необходимо создать таблицу баз данных с именем orders из дампа orders.sql.

Оставшиеся файлы выложите в директорию вашего сайта.

Для правильной работы скриптов необходимо внести изменения в файл paygate_inc.php. Это делается только один раз при установке скрипта:

<?

//****************************************
//******* КОНСТАНТЫ **********************
//****************************************

// Устанавливаем кодировку текста, которая используется в скриптах
$textcoding = "windows-1251";
// $textcoding = "UTF-8"; // раскомментировать строку, если нужна кодировка UTF-8
$linexmlhead = chr(60)."?xml version=\"1.0\" encoding=\"$textcoding\"?".chr(62);

// URL интернет-магазина
$shop_url = "moy.magazin.kz";

// Указываем номер мерчанта (магазина), полученный при регистрации
$merchant = 3;

// Устанавливаем секретный ключ, с помощью которого формируется цифровая подпись
$SECRETCODE = "KKKjfd4i9hhhcn3h3h3dhchc";

// Указываем каким методом будет возвращен ответ о системы об удачном платеже
// GET — 1, POST — 2, по умолчанию всегда возвращается методом POST
$method = "2";

// URL возврата результата транзакции от платежного сервера
$urlresult = "https://$shop_url/resultpay.php";

// URL вызова платежной функции
$pay_gate_url = "https://order.prostoplateg.kz/sale.php";

// Устанавливаем e-mail администратора магазина
$shopadmin = "_email_of_shop_admin_";

// **************************************
// Создаем подключение к базе данных вашего магазина
$base = "имя.базы"; 
$userbase = "имя.пользователя.базы";
$userpass = "пароль.пользователя.бд";
$dbc=mysql_connect ("localhost", $userbase, $userpass);

?>

Сама работа скрипта по взаимодействию с платежным сервером заключается в подготовке пользователю полей формы, которые передаются на платежный сервер, пример подготовки данных для пользователя указан в файле orderpay.php:

<?

// Редакция тестовой программы (2) от 25/07/2014
// вызываем библиотеки
require "paygate_fun.php";
require "paygate_inc.php";


// ************* ПАРАМЕТРЫ ТЕСТОВОГО ЗАКАЗА ДЛЯ ПРИМЕРА ***************

// Указываем, с кого снимается комиссия при приеме платежа:
// 1 — за счет фирмы,
// 2 — за счет покупателя,
// пустота — согласно настройкам, указанным в личном кабинете.
$comis = "2";

// Устанавливаем признак тестового режима:
// 0 — выключен,
// 1 — включен.
$testmode = "1";

// ************ ИНИЦИАЛИЗАЦИЯ ДАННЫХ ПО КОНКРЕТНОМУ ЗАКАЗУ ************

$ordernum = 269; // номер заказа — уникальное число, идентифицирующее конкретный заказ в системе магазина
$info = "МФУ Samsung SCX-3405W, бумага А4 Svetocopy 100 листов ($ordernum)";

// Содержание заказа пользователя
$mp = 26; // определяем, что пользователь выбрал оплату в WMK
$summa = 29300.00; // сумма в тенге
$summa = round($summa, 2); // сумма в тенге — нормализация
$deliver = "Улица Рыбная, 20/16, Алматы, Сергеев А.А."; // указываем адрес доставки заказа

// Получение данных полей формы для осуществления платежа
$formfields = get_data4paygate($ordernum, $info, $summa, $deliver, $comis, $testmode, $mp);

echo <<<FRE
	Оплата: $info<br>
	Сумма: $summa<br>
	<form method="POST" action="$pay_gate_url">
		$formfields
		<input type=submit value="Оплатить!" name=B1>
	</form>
FRE;

?>

Результат от платежного сервера возвращается на URL скрипта resultpay.php, который в случае успешной оплаты присылает на email-адрес администратора интернет-магазина сообщение об успешном поступлении оплаты за заказ:

<?

// Вызываем библиотеки
require "paygate_fun.php";
require "paygate_inc.php";

$ip =$_SERVER\["REMOTE_ADDR"\];
$debugstr = myprint($_POST)."\n".$ip;

// Получаем номер оплаченного заказа
list($ordernum, $info) = get_ordernum();

// Отправляем администратору письмо о том, что заказ оплачен и можно делать работу
$msg = "пришла оплата заказа от Prostoplateg\n Номер заказа: $ordernum \n $info \n\n $debugstr\n";
$subj = "[prostoplateg:pay] Payment for order $ordernum";
mail($shopadmin, $subj, $msg, $shopadmin, "");
exit;

?>

После получения номера оплаченного заказа $ordernum система интернет-магазина при наличии такой проводки в личном кабинете может проводить этот заказ далее по своим системам и по своим протоколам.

Скачать готовые скрипты