Перейти к содержимому


Фотография
- - - - -

подключение эквайринга (uniteller)


  • Закрытая тема Тема закрыта
В теме одно сообщение

#1 mozg619

mozg619

Отправлено 11 August 2014 - 07:33

Всем привет! Надо подключить платежную систему Uniteller. Почему именно она, она позволяет сразу оплачивать с карты и там комиссия маленькая, но это не сама суть вопроса. Вопрос состоит в том, что саму оплату я подключил, (для этого я взял за основу интеркассу). Но не могу сделать одну вещь, чтобы после оплаты менялся статус оплачено или нет. Прочитал статью про подключение Privat24, логика работы понятно, но реализовать не смог. 

 

Все изменения проводил в файле payment.php 

 

Вот Пример PHP-кода запроса результата авторизации на сервере Uniteller

<?php
function checkSignature( $Order_ID, $Status, $Signature ) {
$password = "adadadadadadaddasdasdasdasdasdsadsd"; // пароль из ЛК Uniteller
// проверка подлинности подписи и данных
return ( $Signature == strtoupper(md5($Order_ID . $Status . $password)) );
}
function getData($Order_ID) {
// Параметры могут извлекаться из БД или из других хранилищ данных, либо 
содержаться внутри кода
$Shop_ID = "5001300"; // идентификатор точки продажи
$Login = 1; // логин из ЛК Uniteller
$Password = "adadadadadadaddasdasdasdasdasdsadsd"; // пароль из ЛК Uniteller
// Format=1 - получить данные в виде строки с разделителем ";", можно получать 
данные и в других форматах (см. Технический порядок), например, XML, тогда обработка 
полученного ответа изменится
$sPostFields = "Shop_ID=".$Shop_ID."&Login=".$Login."&Password=".$Password."&Format=1&ShopOrderNumber=".$Order_ID."&S_FIELDS=Status;ApprovalCode;BillNumber";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://test.wpay.uniteller.ru/results/");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_VERBOSE, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $sPostFields);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
curl_setopt($ch, CURLINFO_HEADER_OUT, 1);
$curl_response = curl_exec($ch);
$curl_error = curl_error($ch);
$data = array(); // результат для возврата
if ($curl_error) {
// обработка ошибки обращения за статусом платежа
} else {
// данные получены
// обработка данных из переменной $curl_response
$arr = explode( ";", $curl_response );
if ( count($arr) > 2 ) {
$data = array(
"Status"  => $arr[0]
, "ApprovalCode" => $arr[1]
, "BillNumber"  => $arr[2]
);
} else {
// что-то не так, обработчик полученного ответа
...
}
}
return $data;
}
// Пришел callback с параметрами Order_ID, Status, Signature
if ( count($_POST) && isset($_POST["Order_ID"]) && isset($_POST["Status"]) &&
isset($_POST["Signature"]) ) {
// проверка подписи 
if ( checkSignature( $_POST["Order_ID"], $_POST["Status"], $_POST["Signature"] ) )
{
// подпись сошлась
... // какие-то действия: сохранение полученных данных в БД
// можно сделать дополнительный запрос статуса платежа для еще одной 
проверки и/или получения дополнительных параметров платежа
$data = getData($_POST["Order_ID"]);
// далее можно проверить совпадение статусов, сохранить дополнительные 
данные в БД, выполнить необходимые действия
...
} else {
// не сошлась подпись
... // какие-то действия по обработке этого случая
}
}

Помогите советом, кто знает как это сделать. 


  • 0

#2 SmetDenis

SmetDenis

Отправлено 12 August 2014 - 11:09

Прочитал статью про подключение Privat24, логика работы понятно, но реализовать не смог.    Все изменения проводил в файле payment.php


Покажите ваш вариант payment.php, который не сработал (атачем).
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.





Click to return to top of page in style!