Vixita-i50 Ответов: 0

Передача JSON urlencode через restsharp


У меня есть этот код, который я пытаюсь использовать для связи с API через RestSharp.


 const string task = "pay";
 const string command_api_token = "9ufks6FjffGplu9HbaN7uq6XXPPVQXBP";
 const string merchant_email_on_voguepay = "mymail@mail.com";

 Random rnd = new Random();
 string refl =  DateTime.Now + rnd.Next(0,9999999).ToString();
 byte[] hash_target = Encoding.Default.GetBytes(command_api_token + task +  merchant_email_on_voguepay + refl);

 string hashD = BitConverter.ToString(new SHA512CryptoServiceProvider().ComputeHash(hash_target)).Replace("-", string.Empty).ToUpper();

 var keyValues = new Dictionary<string, string>
                    {
                         { "task", "pay"},
                         { "merchant", "3333-4444"},
                         { "ref",refl},
                         { "hash",hashD},
                         { "amount", "20"},
                         { "seller", "seller@mail.com"},
                         { "remarks", "payment"},                            

                    };

//serialization using Newtonsoft JSON 
  string json = JsonConvert.SerializeObject(keyValues);

//url encode the json
  var postString = Server.UrlEncode(json);

//calling API with Restsharp
  var client = new RestClient("https://voguepay.com/api/");
  var request = new RestRequest(Method.POST);
  request.AddParameter("json",json);
  IRestResponse response = client.Execute(request);

  Textbox1.Text = response.Content;


Я думаю, что расположение моего кода на самом деле не в порядке, потому что я продолжаю получать сообщение об ошибке при каждом моем движении.

Если я попытаюсь опубликовать его так, как это указано выше, я получу
"ответ": "X006","описание": "недопустимый хэш"...

Если попытаться получить "в URL закодировать в JSON" участвующие в "вызов API с помощью Restsharp", Я получаю сообщение об ошибке как
"ответ": "X001","описание": "неверный идентификатор продавца"...


Я думаю, что я не правильно расставляю вещи, может кто-нибудь посмотреть на мою работу и указать, в чем может быть проблема с этим кодом?

Что я уже пробовал:

Я попробовал изменить код, чтобы посмотреть, не исчезнет ли ошибка, но она все равно осталась

Richard MacCutchan

Проблема не в вашем коде, а в плохих значениях, которые вы отправляете, как показано в сообщениях об ошибках. Вам необходимо обратиться за помощью в службу поддержки voguepay.

Graeme_Grant

Использует ли API OAuth 1.0 a? Похоже, что так... [edit] проверьте кодировку, которую вы используете. Большинство ожидает UTF8.

Kornfeld Eliyahu Peter

Понятно, что проблема с тем, как вы вычисляете хэш...
Проблема в том, что документация API не является общедоступной, поэтому вы по большей части остаетесь сами по себе...
Пожалуйста, вернитесь к документации и перечитайте ту часть, где говорится о хэше... Если вы можете, вы можете поделиться им здесь... Кто-то может заметить проблему...

0 Ответов