dinox

Для получения уводомлений о покупках на форуме Вам необходимо в разделе https://opencartforum.com/clients/info/
добавить   Callback URL  и  Secret Key. На стороне Вашего сервера сделайте прием данных, оттестировать работу можно в разделе персональные данные

Пример:

<?php 
$key = "************"; // Ваш секретный ключ, указаный на форуме в разделе https://opencartforum.com/clients/info/, там же укажите Callback URL


function hmac($key, $data)
{
	$b = 64; // byte length for md5
	if (strlen($key) > $b) {
		$key = pack("H*", md5($key));
	}
	$key    = str_pad($key, $b, chr(0x00));
	$ipad   = str_pad('', $b, chr(0x36));
	$opad   = str_pad('', $b, chr(0x5c));
	$k_ipad = $key ^ $ipad;
	$k_opad = $key ^ $opad;
	return md5($k_opad . pack("H*", md5($k_ipad . $data)));
}

$json = file_get_contents('php://input'); 

$res = json_decode($json);



$response     = strlen($res->order_id) . $res->order_id . strlen($res->date_added) . $res->date_added;
$hash         = hmac($key, $response);

if ($res->order_status == "request") {


if ($hash == $res->hash) {
	$result = array('success' => 'Ok');
	echo json_encode($result);
} else {
	$result = array('error' => 'Bad hash');
	echo json_encode($result);
}
} elseif ($res->order_status == "success" && $hash == $res->hash) {
	$result = array('success' => 'Received');
	echo json_encode($result);
	
	// Здесь в свою систему вводите подтверждение покупки и выдавайте ключи на почту всем кому нужно
	
	$marketplace = $res->marketplace; //Идентификатор торговой площадки - от нас всегда ответ opencartforum
	$order_status = $res->order_status; //Статус заказа
	$username = $res->username; //Имя покупателя
	$email = $res->email; // email покупателя
	$date_added = $res->date_added; //Дата покупки
	$order_id = $res->order_id;  //\IPS\Request::i()->LMI_PAYMENT_NO, //Номер счета
	$extension_id = $res->extension_id;  //ID дополнения
	$member_id = $res->member_id; //id покупателя
	$domain =  $res->domain, //Домен где будет установлено дополнение
	$test_domain = $res->test_domain, //Тестовый домен на этап разработки сайта 
	$extension = $res->extension; //Название дополнения
	$total = $res->total; //Доход без учета комиссии форума

	
} else {
	$result = array('error' => 'Bad request');
	echo json_encode($result);
}
/*
$log_file = $_SERVER['DOCUMENT_ROOT'].'/purchase.txt';

$f = fopen($log_file, 'w+');
fwrite($f, serialize($res)."\n");

fclose($f);
*/
?>

Для повышения защиты приема данных можете ограничить прием данных по IP и указать только наш: 88.99.105.152

Обсуждения API форума происходит в теме

 

Изменено пользователем dinox

0




Обратная связь от пользователя


Комментариев для отображения не найдено.



Гость
В настоящее время комментирование закрыто

  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.