Jump to content

API каталога дополнений


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 форума происходит в теме

 

Edited by dinox

  • +1 2


User Feedback

Recommended Comments

There are no comments to display.



Guest
This is now closed for further comments

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.