...
Далее дан пример кода на C#, позволяющий вызвать функцию CreateInvoice. Чтобы им воспользоваться, нужно заменить данные в части строк некоторых строках на свои.
Code Block | ||||
---|---|---|---|---|
| ||||
public static void CreateInvoice() { // для работы примера выставьте Secret Key из настроек магазина -> прием платежей. string eshopSecretKey = "1234abcd"; // параметры запроса var param = new Dictionary<string, string> { ["eshopId"] = "499999", // для работы примера выставьте номер своего магазина ["orderId"] = "мой заказ", ["recipientAmount"] = "10.00", ["recipientCurrency"] = "TST", // пример предполагает, что в магазине выставлена тестовая валюта. ["email"] = "youremail@gmail.com", // для работы примера выставьте email на который зарегистрирован аккаунт организации на сайте intellectmoney. }; // Этот параметр не связан с заголовком Sign и с авторизацией по bearer токену. Это другой хеш, использующийся для валидации параметров при вызове метода CreateInvoice. param["hash"] = GetCreateInvoiceHash(param, eshopSecretKey); // токен и секретный ключ из личного кабинета string bearerToken = "808e1cc4630440858f5109e4c0a3e707"; string signSecretKey = "670bcc16e5c9483fa85096c16ce8c413"; // генерируем хеш для заголовка Sign string signHashString = $"{param["eshopId"]}::{param["orderId"]}::::{param["recipientAmount"]}::{param["recipientCurrency"]}::::{param["email"]}::::::::::::::::{signSecretKey}"; string signHash = GetHashSHA256(signHashString); // отправляем запрос HttpClientHandler clientHandler = new HttpClientHandler(); using (var content = new FormUrlEncodedContent(param)) { using (HttpClient client = new HttpClient(clientHandler)) { client.DefaultRequestHeaders.Add("Authorization", $"Bearer {bearerToken}"); client.DefaultRequestHeaders.Add("Sign", signHash); using (HttpResponseMessage response = client.PostAsync($"https://api.intellectmoney.ru/merchant/createInvoice", content).Result) { string responseText = response.Content.ReadAsStringAsync().Result; Console.WriteLine(responseText); Console.ReadKey(); } } } } private static string GetCreateInvoiceHash(Dictionary<string, string> param, string eshopSecretKey) { return GetHashMD5($"{param["eshopId"]}::{param["orderId"]}::::{param["recipientAmount"]}::{param["recipientCurrency"]}::::{param["email"]}::::::::::::::::{eshopSecretKey}"); } private static string GetHashMD5(string source) { byte[] data = Encoding.UTF8.GetBytes(source); using (MD5 md5 = new MD5CryptoServiceProvider()) { data = md5.ComputeHash(data); } return BitConverter.ToString(data).Replace("-", "").ToLower(); } private static string GetHashSHA256(string source) { byte[] data = Encoding.UTF8.GetBytes(source); using (var sha256 = new SHA256CryptoServiceProvider()) { data = sha256.ComputeHash(data); } return BitConverter.ToString(data).Replace("-", "").ToLower(); } |
...