Отправка API запроса
Параметры передаваемые в запросе, описаны в документации Для создания счета через API используется Merchant 2.0 API.API#МЕТОДCreateInvoice-ВЫСТАВЛЕНИЕСЧЁТАКОПЛАТЕ
Code Block | ||
---|---|---|
| ||
<?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; } } ?> |
...