Подключить Сбербанк-эквайринг не так и сложно. Есть готовые классы в инете. Схема очень проста. Создается заказ в системе сбера, пользователь редиректится на сбер. Там оплата, и после оплаты редирект обратно на сайт, где можно поймать и обработать результаты оплаты.
Вы описали схему работы оплаты Сбера по API =)
может кому понадобиться:
<?php
class CSberbank{
private static $login = "login";
private static $username = "user";
private static $token = "YRF3C5RFICWISEWFR6GJ";
function getOrderStatus($orderId) {
// https:/server/application_context/rest/getOrderStatus.do? orderId=b8d70aa7-bfb3-4f94-b7bb-aec7273e1fce&language=ru&password=password&userName=userName
$url = "https://3dsec.sberbank.ru/payment/rest/getOrderStatus.do?orderId=".$orderId."&language=ru&token=".$this::$token."";
if( $response ){
if( $response['ErrorMessage'] ){
if( $response['OrderStatus'] == 2 ){
return "Спасибо, заказ №".$response['OrderNumber']." оплачен.";
} else {
return "Статус заказа: ".$response['ErrorMessage'];
}
}
}
return false;
}
function registerOrder($total, $order, $returnUrl){
$url = "https://3dsec.sberbank.ru/payment/rest/register.do?amount=".intval($total)."00¤cy=643&language=ru&orderNumber=".$order."&token=".$this::$token."&returnUrl=".$returnUrl."&returnUrl=".$returnUrl."&pageView=DESKTOP&sessionTimeoutSecs=1200"; echo $url;
if( $response ){
if( $response['orderId'] && $response['formUrl'] ){
return 'redirect:'.$response['formUrl'];
}
}
return false;
}
}
$orderId=$_GET['orderId'];
//если прилетело от сбера то выполняем этот код
if($orderId){
$doit=new CSberbank();//инициируем класс иначе ниже не будет работать
$geturlsber=$doit->getOrderStatus($orderId);//Проверяем платеж
echo $geturlsber;
}else{
//если нет от сбера инфы,значит клиент желает оплатить и выполняем код ниже.
$doit=new CSberbank();//инициируем класс иначе ниже не будет работать
$total='150';//сумма к оплате
$order='443344';//номер заказа
$returnUrl='https://test.ru/test.php';//ссылку куда возвращать после оплаты c переменной уникального платежа
$geturlsber=$doit->registerOrder($total, $order, $returnUrl);
$geturlsberredirect= str_replace('redirect:','', $geturlsber);//обрезаем ссылку,чтоб отправить редирект $getidsber= str_replace('redirect:https://3dsec.sberbank.ru/payment/merchants/www.3dsec.sberbank.ru/payment_ru.html?mdOrder=','', $geturlsber);//получаем id уникальный в сбере для проверки платежа в последующем.
header('Location: '.$geturlsberredirect.''); }
?>
ВНИМАНИЕ!!! В КОДЕ надо добавить проверку переменных!!!
Если автор UserCart не будет против, то можно будет дописать оплату.