[Решено] Прикрутить к сайту интернет-эквайринг от сбербанка

Доброго дня!

Нужно как можно скорее выполнить задачу по прикручиванию интернет-эквайринга от сбербанка к сайту. Напишите сколько будет стоить и сколько это займет времени?

Исполнитель найден: ppoulus

Задача выполнена!

7 комментариев

avatar
О себе
создание сайтов, продвижение в сети интернет
lifestyle-home.ru

Все нестандартные услуги по программированию/верстке/дизайну расцениваются по тарифу – 500 руб. в час., услуги по администрированию, настройке сервера/хостинга под сайт, и прочие работы на серверах — 700 руб. в час.

ок.
avatar
Нет желающих заработать?
avatar
На днях подобное реализовывал. Их инструкцию можно нафиг выкинуть. У них есть простой php скрипт, надо его просто запросить у банка, подставить там свои логин и пароль, настроить внешний вид формы.
Далее создается страница на сайте для оплаты, где вызывается сниппет с этим кодом. Далее, клиенту дается ссылка на страницу и номер счета. Клиент вводит номер счета и сумму и переходит на оплату.
Т.е. подключить сам скрипт оплаты не сложно. А вот как передавать данные для оплаты покупателем — зависит уже от вашего проекта.
avatar
Спасибо за совет! Попробую запросить, думаю в понедельник сбросят, вообще там как то все долго решается, по 2-3 дня ждешь когда ответят(
avatar
ну мне сначала отвечали в течении нескольких часов, потом вообще перестали отвечать. Последние вопросы без ответов остались. Проблема была с тем, чтобы передать описание заказа. Русский текст передается некорректно. Так и не сказали как это побороть.
avatar
Вот их скрипт
<?php

/**
 * ДАННЫЕ ДЛЯ ПОДКЛЮЧЕНИЯ К ПЛАТЕЖНОМУ ШЛЮЗУ
 *
 * USERNAME		Логин магазина, полученный при подключении.
 * PASSWORD		Пароль магазина, полученный при подключении.
 * GATEWAY_URL	Адрес платежного шлюза.
 * RETURN_URL	Адрес, на который надо перенаправить пользователя 
 *				в случае успешной оплаты.
 */
define('USERNAME', '***');
define('PASSWORD', '***');
define('GATEWAY_URL', '***');
define('RETURN_URL', '***');

/**
 * ФУНКЦИЯ ДЛЯ ВЗАИМОДЕЙСТВИЯ С ПЛАТЕЖНЫМ ШЛЮЗОМ
 * 
 * Для отправки POST запросов на платежный шлюз используется
 * стандартная библиотека cURL.
 *
 * ПАРАМЕТРЫ
 *		method		Метод из API.
 * 		data		Массив данных.
 *
 * ОТВЕТ
 *		response	Ответ.
 */
function gateway($method, $data) {
	$curl = curl_init(); // Инициализируем запрос
	curl_setopt_array($curl, array(
	    CURLOPT_URL => GATEWAY_URL.$method, // Полный адрес метода
	    CURLOPT_RETURNTRANSFER => true, // Возвращать ответ
	    CURLOPT_POST => true, // Метод POST
	    CURLOPT_POSTFIELDS => http_build_query($data) // Данные в запросе
	));
	$response = curl_exec($curl); // Выполненяем запрос
	
	$response = json_decode($response, true); // Декодируем из JSON в массив
	curl_close($curl); // Закрываем соединение
	return $response; // Возвращаем ответ
}

/**
 * ВЫВОД ФОРМЫ НА ЭКРАН
 */
if ($_SERVER['REQUEST_METHOD'] == 'GET' && !isset($_GET['orderId'])) {
	echo '
		<form method="post" action="/rest.php">
			<label>Order number</label><br />
			<input type="text" name="orderNumber" /><br />
			<label>Amount</label><br />
			<input type="text" name="amount" /><br />
			<button type="submit">Submit</button>
		</form>
	';
}

/**
 * ОБРАБОТКА ДАННЫХ ИЗ ФОРМЫ
 */
else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
	$data = array(
		'userName' => USERNAME,
		'password' => PASSWORD,
		'orderNumber' => urlencode($_POST['orderNumber']), 
		'amount' => urlencode($_POST['amount']),
		'returnUrl' => RETURN_URL
	);

	/**
	 * ЗАПРОС РЕГИСТРАЦИИ ОДНОСТАДИЙНОГО ПЛАТЕЖА В ПЛАТЕЖНОМ ШЛЮЗЕ
	 *		register.do
	 * 
	 * ПАРАМЕТРЫ
	 *		userName			Логин магазина.
	 *		password			Пароль магазина.
	 *		orderNumber			Уникальный идентификатор заказа в магазине.
	 *		amount				Сумма заказа.
	 *		returnUrl			Адрес, на который надо перенаправить пользователя в случае успешной оплаты.
	 *
	 * ОТВЕТ
	 * 		В случае ошибки:
	 * 			errorCode		Код ошибки. Список возможных значений приведен в таблице ниже.
	 * 			errorMessage	Описание ошибки.
	 *
	 * 		В случае успешной регистрации:
	 * 			orderId			Номер заказа в платежной системе. Уникален в пределах системы.
	 * 			formUrl			URL платежной формы, на который надо перенаправить браузер клиента.
	 *
	 *	Код ошибки		Описание
	 *		0			Обработка запроса прошла без системных ошибок.
	 *		1			Заказ с таким номером уже зарегистрирован в системе.
	 *		3			Неизвестная (запрещенная) валюта.
	 *		4			Отсутствует обязательный параметр запроса.
	 *		5			Ошибка значения параметра запроса.
	 *		7			Системная ошибка.
	 */
	$response = gateway('register.do', $data);
	
	/**
	 * ЗАПРОС РЕГИСТРАЦИИ ДВУХСТАДИЙНОГО ПЛАТЕЖА В ПЛАТЕЖНОМ ШЛЮЗЕ
	 *		registerPreAuth.do
	 *
	 * Параметры и ответ точно такие же, как и в предыдущем методе.
	 * Необходимо вызывать либо register.do, либо registerPreAuth.do.
	 */
//	$response = gateway('registerPreAuth.do', $data);
	
	if (isset($response['errorCode'])) { // В случае ошибки вывести ее
		echo 'Ошибка #' . $response['errorCode'] . ': ' . $response['errorMessage'];
	} else { // В случае успеха перенаправить пользователя на плетжную форму
		header('Location: ' . $response['formUrl']);
		die();
	}
} 

/**
 * ОБРАБОТКА ДАННЫХ ПОСЛЕ ПЛАТЕЖНОЙ ФОРМЫ
 */
else if ($_SERVER['REQUEST_METHOD'] == 'GET' && isset($_GET['orderId'])){
	$data = array(
		'userName' => USERNAME,
		'password' => PASSWORD,
		'orderId' => $_GET['orderId']
	);
	
	/**
	 * ЗАПРОС СОСТОЯНИЯ ЗАКАЗА
	 *		getOrderStatus
	 *
	 * ПАРАМЕТРЫ
	 *		userName			Логин магазина.
	 *		password			Пароль магазина.
	 *		orderId				Номер заказа в платежной системе. Уникален в пределах системы.
	 * 
	 * ОТВЕТ
	 * 		ErrorCode			Код ошибки. Список возможных значений приведен в таблице ниже.
	 * 		OrderStatus			По значению этого параметра определяется состояние заказа в платежной системе. 
	 *							Список возможных значений приведен в таблице ниже. Отсутствует, если заказ не был найден.
	 *
	 *	Код ошибки		Описание
	 *		0			Обработка запроса прошла без системных ошибок.
	 *		2			Заказ отклонен по причине ошибки в реквизитах платежа.
	 *		5			Доступ запрещён;
	 *					Пользователь должен сменить свой пароль;
	 *					Номер заказа не указан.
	 *		6			Неизвестный номер заказа.
	 *		7			Системная ошибка.
	 *
	 *	Статус заказа	Описание
	 *		0			Заказ зарегистрирован, но не оплачен.
	 *		1			Предавторизованная сумма захолдирована (для двухстадийных платежей).
	 *		2			Проведена полная авторизация суммы заказа.
	 *		3			Авторизация отменена.
	 *		4			По транзакции была проведена операция возврата.
	 *		5			Инициирована авторизация через ACS банка-эмитента.
	 *		6			Авторизация отклонена.
	 */
	$response = gateway('getOrderStatus.do', $data);
	
	// Вывод кода ошибки и статус заказа
	echo '
		<b>Error code:</b> ' . $response['ErrorCode'] . '<br />
		<b>Order status:</b> ' . $response['OrderStatus'] . '<br />
	';
}

?>
avatar
ух… спасибо)
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.