<?php
Intellectmoney::CreateInvoice([
// Параметры метода
'eshopId' => 456093,
'orderId' => 1,
'serviceName' => null,
'recipientAmount' => '10.00',
'recipientCurrency' => 'RUB',
'userName' => null,
'email' => 'test@mail.ru',
'successUrl' => null,
'failUrl' => null,
'backUrl' => null,
'resultUrl' => null,
'expireDate' => null,
'holdMode' => null,
'preference' => null,
'recurringType' => 'Activate',
// Данные для авторизации API запросов и расчета подписей
'token' => 'Bearer myToken',
'signSecretKey' => 'mySignSecretKey',
'eshopSecretKey' => 'mySecretKey',
]);
class IntellectMoney
{
// Создание счета для операций по расписанию
public static function CreateInvoice($params) {
// URL запроса
$url = 'https://api.intellectmoney.ru/merchant/createInvoice';
// Расчет подписи для заголовка авторизации API запросов, sign (SHA256)
$signSignature = [
$params['eshopId'],
$params['orderId'],
$params['serviceName'],
$params['recipientAmount'],
$params['recipientCurrency'],
$params['userName'],
$params['email'],
$params['successUrl'],
$params['failUrl'],
$params['backUrl'],
$params['resultUrl'],
$params['expireDate'],
$params['holdMode'],
$params['preference'],
$params['signSecretKey'],
];
$signHash = hash('sha256', implode('::', $signSignature));
// Заголовки запроса
$headers = [
'Authorization: '.$params['token'],
'Sign: '.$signHash,
];
// Расчет подписи для переданных данных из счёта, purchaseHash (MD5)
$purchaseHashSignature = [
$params['eshopId'],
$params['orderId'],
$params['serviceName'],
$params['recipientAmount'],
$params['recipientCurrency'],
$params['recurringType'],
$params['eshopSecretKey'],
];
$purchaseHash = md5(implode('::', $purchaseHashSignature));
// Расчет подписи для преданных данных, hash (MD5)
$hashSignature = [
$params['eshopId'],
$params['orderId'],
$params['serviceName'],
$params['recipientAmount'],
$params['recipientCurrency'],
$params['userName'],
$params['email'],
$params['successUrl'],
$params['failUrl'],
$params['backUrl'],
$params['resultUrl'],
$params['expireDate'],
$params['holdMode'],
$params['preference'],
$params['eshopSecretKey'],
];
$hash = md5(implode('::', $hashSignature));
// Данные (тело) запроса
$data = [
'eshopId' => $params['eshopId'],
'orderId' => $params['orderId'],
'serviceName' => $params['serviceName'],
'recipientAmount' => $params['recipientAmount'],
'recipientCurrency' => $params['recipientCurrency'],
'userName' => $params['userName'],
'email' => $params['email'],
'successUrl' => $params['successUrl'],
'failUrl' => $params['failUrl'],
'backUrl' => $params['backUrl'],
'resultUrl' => $params['resultUrl'],
'expireDate' => $params['expireDate'],
'holdMode' => $params['holdMode'],
'preference' => $params['preference'],
'recurringType' => $params['recurringType'],
'purchaseHash' => $purchaseHash,
'hash' => $hash,
];
// Выполняем запрос
$response = Intellectmoney::CurlRequest($url, $headers, $data);
print_r((string)$response);
}
private static function CurlRequest($url, $headers, $data) {
$queryString = http_build_query($data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $queryString);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
}
?>