public async Task <IssueVoucherResult> IssueVoucher(string batchKey, string privateKey, string accessToken, string environment) { Object data = new { }; string compactJson = SignatureUtil.GenerateCompactJson(data); string encode = Encode.Base64Encode(compactJson); string method = "post"; string nonceStr = RandomString.GenerateRandomString(32); string requestUrl = ""; if (environment == "sandbox") { requestUrl = String.Concat(Url.SandBoxOpen, "/v3/voucher-batch/" + batchKey + "/issue"); } else if (environment == "production") { requestUrl = String.Concat(Url.ProductionOpen, "/v3/voucher-batch/" + batchKey + "/issue"); } string signType = "sha256"; string timestamp = Convert.ToString((Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds); Signature signature = new Signature(); string signatureResult = ""; signatureResult = signature.GenerateSignature(null, method, nonceStr, privateKey, requestUrl, signType, timestamp, environment); signatureResult = "sha256 " + signatureResult; IssueVoucherResult result = new IssueVoucherResult(); try { var content = JsonConvert.SerializeObject(data); var buffer = System.Text.Encoding.UTF8.GetBytes(content); var byteContent = new ByteArrayContent(buffer); byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); HttpClient client = new HttpClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken); client.DefaultRequestHeaders.Add("X-Nonce-Str", nonceStr); client.DefaultRequestHeaders.Add("X-Signature", signatureResult); client.DefaultRequestHeaders.Add("X-Timestamp", timestamp); var response = await client.PostAsync(requestUrl, byteContent); var responseStr = await response.Content.ReadAsStringAsync(); if (response.IsSuccessStatusCode) { var jsonAsString = await response.Content.ReadAsStringAsync(); result = JsonConvert.DeserializeObject <IssueVoucherResult>(jsonAsString); } else { result = JsonConvert.DeserializeObject <IssueVoucherResult>(response.Content.ReadAsStringAsync().Result); } } catch (Exception ex) { Console.WriteLine("Error", ex.Message); } return(result); }