diff --git a/Iyzipay.Samples/Sample.cs b/Iyzipay.Samples/Sample.cs index 56168f4..38d6053 100644 --- a/Iyzipay.Samples/Sample.cs +++ b/Iyzipay.Samples/Sample.cs @@ -15,8 +15,8 @@ public class Sample public void Initialize() { options = new Options(); - options.ApiKey = "your api key"; - options.SecretKey = "your secret key"; + options.ApiKey = "sandbox-X8Qfwvvb16pe2prgfeX857cwiD4bkfAf"; + options.SecretKey = "sandbox-qaIiLIxhjMgx3LSKIVvp6j17NunHOFtD"; options.BaseUrl = "https://sandbox-api.iyzipay.com"; } diff --git a/Iyzipay/IyzipayResourceV2.cs b/Iyzipay/IyzipayResourceV2.cs index e2d0e73..065b4a3 100644 --- a/Iyzipay/IyzipayResourceV2.cs +++ b/Iyzipay/IyzipayResourceV2.cs @@ -4,6 +4,8 @@ using System.Linq; using System.Net.Http; using System.Net.Http.Headers; +using Newtonsoft.Json.Serialization; +using Newtonsoft.Json; namespace Iyzipay { @@ -69,8 +71,11 @@ private static String PrepareAuthorizationStringWithRequestBody(BaseRequestV2 re { String randomKey = GenerateRandomKey(); String uriPath = FindUriPath(url); - - String payload = request != null ? uriPath + JsonBuilder.SerializeObjectToPrettyJson(request) : uriPath; + var settings = new JsonSerializerSettings + { + ContractResolver = new CamelCasePropertyNamesContractResolver(), + }; + String payload = request != null ? uriPath + JsonConvert.SerializeObject(request, settings) : uriPath; String dataToEncrypt = randomKey + payload; String hash = HashGeneratorV2.GenerateHash(options.ApiKey, options.SecretKey, randomKey, dataToEncrypt); return IYZIWS_V2_HEADER_NAME + hash; diff --git a/Iyzipay/RestHttpClientV2.cs b/Iyzipay/RestHttpClientV2.cs index b8c9e82..921b624 100644 --- a/Iyzipay/RestHttpClientV2.cs +++ b/Iyzipay/RestHttpClientV2.cs @@ -6,6 +6,8 @@ using System.Net.Http.Headers; using System.Linq; using System.Threading.Tasks; +using Newtonsoft.Json.Serialization; +using System.Text; namespace Iyzipay { @@ -45,14 +47,19 @@ public T Get(String url, Dictionary headers) where T : Iyzipa public T Post(String url, Dictionary headers, BaseRequestV2 request) where T : IyzipayResourceV2 { - HttpRequestMessage requestMessage = new HttpRequestMessage - { - Method = HttpMethod.Post, - RequestUri = new Uri(url), - Content = JsonBuilder.ToJsonString(request) - }; + var settings = new JsonSerializerSettings + { + ContractResolver = new CamelCasePropertyNamesContractResolver(), + }; + var content = new StringContent(JsonConvert.SerializeObject(request, settings), Encoding.UTF8, "application/json"); + HttpRequestMessage requestMessage = new HttpRequestMessage + { + Method = HttpMethod.Post, + RequestUri = new Uri(url), + Content = content + }; - foreach (var header in headers) + foreach (var header in headers) { requestMessage.Headers.Add(header.Key, header.Value); } @@ -64,14 +71,20 @@ public T Post(String url, Dictionary headers, BaseRequestV2 r } public async Task PostAsync(String url, Dictionary headers, BaseRequestV2 request) where T : IyzipayResourceV2 { - HttpRequestMessage requestMessage = new HttpRequestMessage - { - Method = HttpMethod.Post, - RequestUri = new Uri(url), - Content = JsonBuilder.ToJsonString(request) - }; + var settings = new JsonSerializerSettings + { + ContractResolver = new CamelCasePropertyNamesContractResolver(), + }; + var content = new StringContent(JsonConvert.SerializeObject(request, settings), Encoding.UTF8, "application/json"); + string jsonContent = content.ReadAsStringAsync().Result; + HttpRequestMessage requestMessage = new HttpRequestMessage + { + Method = HttpMethod.Post, + RequestUri = new Uri(url), + Content = content + }; - foreach (var header in headers) + foreach (var header in headers) { requestMessage.Headers.Add(header.Key, header.Value); } @@ -85,19 +98,24 @@ public async Task PostAsync(String url, Dictionary headers public T Put(String url, Dictionary headers, BaseRequestV2 request) where T : IyzipayResourceV2 { - HttpRequestMessage requestMessage = new HttpRequestMessage - { - Method = HttpMethod.Put, - RequestUri = new Uri(url), - Content = JsonBuilder.ToJsonString(request) - }; + var settings = new JsonSerializerSettings + { + ContractResolver = new CamelCasePropertyNamesContractResolver(), + }; + var content = new StringContent(JsonConvert.SerializeObject(request, settings), Encoding.UTF8, "application/json"); + HttpRequestMessage requestMessage = new HttpRequestMessage + { + Method = HttpMethod.Put, + RequestUri = new Uri(url), + Content = content + }; - foreach (var header in headers) - { - requestMessage.Headers.Add(header.Key, header.Value); - } + foreach (var header in headers) + { + requestMessage.Headers.Add(header.Key, header.Value); + } - HttpResponseMessage httpResponseMessage = HttpClient.SendAsync(requestMessage).Result; + HttpResponseMessage httpResponseMessage = HttpClient.SendAsync(requestMessage).Result; var response = JsonConvert.DeserializeObject(httpResponseMessage.Content.ReadAsStringAsync().Result); response.AppendWithHttpResponseHeaders(httpResponseMessage); return response; @@ -105,19 +123,24 @@ public T Put(String url, Dictionary headers, BaseRequestV2 re public async Task PutAsync(String url, Dictionary headers, BaseRequestV2 request) where T : IyzipayResourceV2 { - HttpRequestMessage requestMessage = new HttpRequestMessage - { - Method = HttpMethod.Put, - RequestUri = new Uri(url), - Content = JsonBuilder.ToJsonString(request) - }; + var settings = new JsonSerializerSettings + { + ContractResolver = new CamelCasePropertyNamesContractResolver(), + }; + var content = new StringContent(JsonConvert.SerializeObject(request, settings), Encoding.UTF8, "application/json"); + HttpRequestMessage requestMessage = new HttpRequestMessage + { + Method = HttpMethod.Put, + RequestUri = new Uri(url), + Content = content + }; - foreach (var header in headers) - { - requestMessage.Headers.Add(header.Key, header.Value); - } + foreach (var header in headers) + { + requestMessage.Headers.Add(header.Key, header.Value); + } - HttpResponseMessage httpResponseMessage = HttpClient.SendAsync(requestMessage).Result; + HttpResponseMessage httpResponseMessage = HttpClient.SendAsync(requestMessage).Result; var readAsString = await httpResponseMessage.Content.ReadAsStringAsync(); var response = JsonConvert.DeserializeObject(readAsString); response.AppendWithHttpResponseHeaders(httpResponseMessage); @@ -127,11 +150,16 @@ public async Task PutAsync(String url, Dictionary headers, public T Patch(String url, Dictionary headers, BaseRequestV2 request) where T : IyzipayResourceV2 { + var settings = new JsonSerializerSettings + { + ContractResolver = new CamelCasePropertyNamesContractResolver(), + }; + var content = new StringContent(JsonConvert.SerializeObject(request, settings), Encoding.UTF8, "application/json"); HttpRequestMessage requestMessage = new HttpRequestMessage { - Method = HttpMethod.Put,//todo: [EY] Patch olarak değiştirilmeli fakat kütüphane güncellenmesi gerekiyor. + Method = HttpMethod.Put, RequestUri = new Uri(url), - Content = JsonBuilder.ToJsonString(request) + Content = content }; foreach (var header in headers) @@ -147,14 +175,19 @@ public T Patch(String url, Dictionary headers, BaseRequestV2 public T Delete(String url, Dictionary headers, BaseRequestV2 request) where T : IyzipayResourceV2 { - HttpRequestMessage requestMessage = new HttpRequestMessage - { - Method = HttpMethod.Delete, - RequestUri = new Uri(url), - Content = JsonBuilder.ToJsonString(request) - }; + var settings = new JsonSerializerSettings + { + ContractResolver = new CamelCasePropertyNamesContractResolver(), + }; + var content = new StringContent(JsonConvert.SerializeObject(request, settings), Encoding.UTF8, "application/json"); + HttpRequestMessage requestMessage = new HttpRequestMessage + { + Method = HttpMethod.Delete, + RequestUri = new Uri(url), + Content = content + }; - foreach (var header in headers) + foreach (var header in headers) { requestMessage.Headers.Add(header.Key, header.Value); } @@ -167,14 +200,19 @@ public T Delete(String url, Dictionary headers, BaseRequestV2 public async Task DeleteAsync(String url, Dictionary headers, BaseRequestV2 request) where T : IyzipayResourceV2 { - HttpRequestMessage requestMessage = new HttpRequestMessage - { - Method = HttpMethod.Delete, - RequestUri = new Uri(url), - Content = JsonBuilder.ToJsonString(request) - }; + var settings = new JsonSerializerSettings + { + ContractResolver = new CamelCasePropertyNamesContractResolver(), + }; + var content = new StringContent(JsonConvert.SerializeObject(request, settings), Encoding.UTF8, "application/json"); + HttpRequestMessage requestMessage = new HttpRequestMessage + { + Method = HttpMethod.Delete, + RequestUri = new Uri(url), + Content = content + }; - foreach (var header in headers) + foreach (var header in headers) { requestMessage.Headers.Add(header.Key, header.Value); }