<? 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. Тут ничего сложного. Удачи.