<?
class CSberbank{
private static $login = "login";
private static $username = "user";
private static $password = "password";
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&password=".$this::$password."&userName=".$this::$username;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
curl_close($ch);
if( $response ){
$response = json_decode($response, true);
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."&password=".$this::$password."&userName=".$this::$username."&returnUrl=".$returnUrl."&returnUrl=".$returnUrl."&pageView=DESKTOP&sessionTimeoutSecs=1200";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
curl_close($ch);
if( $response ){
$response = json_decode($response, true);
if( $response['orderId'] && $response['formUrl'] ){
return 'redirect:'.$response['formUrl'];
}
}
return false;
}
}
Класс для работы с сбербанк эквайринг rest api php
Чтобы подключить онлайн оплату от сбербанка на сайте, достаточно следующего класса. Класс состоит из двух методов: регистрация заказа и получение статуса заказа. Сбербанк предоставляет песочницу для работы, доступы к панели и документацию. Чтобы оформить заказ, необходимо выполнить запрос register.do, передав следующие поля: доступы, номер заказа на сайте, валюту, сумму заказа, ссылку для возврата на сайт после оплаты и часть необязательных полей типа время сессии и др. Метод вернет ссылку на страницу для оплаты заказа клиентов, после успешной оплаты система вернет клиента на страницу, указанную в поле returnUrl. Для подтверждения оплаты необходимо проверять статус заказа, для этого нам потребуется метод getOrderStatus.do. Тут ничего сложного. Удачи.