|
ХешСумма в POST запрос | ☑ | ||
---|---|---|---|---|
0
OnePrg
22.06.22
✎
14:06
|
СтруктураPOSТ_Запрос = Новый Структура;
СтруктураPOSТ_Запрос.Вставить("request", СтрокаJSON_Запрос); ХешированиеДанных = Новый ХешированиеДанных(ХешФункция.MD5); ХешированиеДанных.Добавить(СтрокаJSON_Запрос+api_ключ); СтруктураPOSТ_Запрос.Вставить("sign", ХешированиеДанных.ХешСумма); ЗаписатьJSON(ЗаписьJSON_POSТ_Запрос,СтруктураPOSТ_Запрос); <---------- Передано значение недопустимого типа |
|||
1
arsik
гуру
22.06.22
✎
14:08
|
||||
2
OnePrg
22.06.22
✎
14:11
|
СтруктураPOSТ_Запрос.Вставить("sign", СокрЛП(ХешированиеДанных.ХешСумма)); ?
|
|||
3
arsik
гуру
22.06.22
✎
14:16
|
Может так?
СтрЗаменить(НРег(СокрЛП(Хеш.ХешСумма))," ","") |
|||
4
OnePrg
22.06.22
✎
14:18
|
(3) попробую
|
|||
5
Garykom
гуру
22.06.22
✎
14:23
|
XMLСтрока(ХешированиеДанных.ХешСумма)
|
|||
6
arsik
гуру
22.06.22
✎
14:29
|
(5) Тут ты неправ
|
|||
7
OnePrg
22.06.22
✎
14:35
|
ЗаписьJSON_Запрос = Новый ЗаписьJSON;
ЗаписьJSON_Запрос.ПроверятьСтруктуру = Ложь; ЗаписьJSON_Запрос.УстановитьСтроку(); ЗаписьJSON_Запрос.ЗаписатьНачалоМассива(); СтруктураЗаказа = Новый Структура; СтруктураЗаказа.Вставить("product_order","55555"); //(required) – номер заказа СтруктураЗаказа.Вставить("contact","Ивано"); //(required) – фио получателя СтруктураЗаказа.Вставить("tel","0502224455"); // (required) – телефон ..... МассивЗаказы = Новый Массив; МассивЗаказы.Добавить(СтруктураЗаказа); МассивПараметры = Новый Массив; МассивПараметры.Добавить(МассивЗаказы); СтруктураЗапроса = Новый Структура; СтруктураЗапроса.Вставить("client", id_клиента); СтруктураЗапроса.Вставить("object", "order"); СтруктураЗапроса.Вставить("method", "create"); СтруктураЗапроса.Вставить("parameters", МассивПараметры); ЗаписатьJSON(ЗаписьJSON_Запрос,СтруктураЗапроса); ЗаписьJSON_Запрос.ЗаписатьКонецМассива(); СтрокаJSON_Запрос = ЗаписьJSON_Запрос.Закрыть(); <--- вот тут нормальная строка JSON ЗаписьJSON_POSТ_Запрос = Новый ЗаписьJSON; ЗаписьJSON_POSТ_Запрос.ПроверятьСтруктуру = Ложь; ЗаписьJSON_POSТ_Запрос.УстановитьСтроку(); ЗаписьJSON_POSТ_Запрос.ЗаписатьНачалоМассива(); СтруктураPOSТ_Запрос = Новый Структура; СтруктураPOSТ_Запрос.Вставить("request", СтрокаJSON_Запрос); ХешированиеДанных = Новый ХешированиеДанных(ХешФункция.MD5); ХешированиеДанных.Добавить(СтрокаJSON_Запрос+api_ключ); СтруктураPOSТ_Запрос.Вставить("sign",СтрЗаменить(НРег(СокрЛП(ХешированиеДанных.ХешСумма))," ","")); ЗаписатьJSON(ЗаписьJSON_POSТ_Запрос,СтруктураPOSТ_Запрос); ЗаписьJSON_POSТ_Запрос.ЗаписатьКонецМассива(); POSТ_Запрос = ЗаписьJSON_POSТ_Запрос.Закрыть(); <---- а вот тут добавляет по всей строке символы "\r\n{\r\n\" |
|||
8
arsik
гуру
22.06.22
✎
14:39
|
(7) ЗаписьJSON_POSТ_Запрос.УстановитьСтроку();
|
|||
9
OnePrg
22.06.22
✎
14:43
|
(8) не понял
|
|||
10
unenu
22.06.22
✎
14:46
|
(8) СП: В "JSON могут быть записаны значения следующих типов: Неопределено, Null, Булево, Число, Строка, Дата, Тип, УникальныйИдентификатор, ДвоичныеДанные, ХранилищеЗначения, ОписаниеТипов, а также ссылки объектов данных и сами объекты данных, наборы записей регистров, менеджер значения константы. В дальнейшем список может пополняться.
При попытке записи значения неподходящего типа будет вызвано исключение." |
|||
11
arsik
гуру
22.06.22
✎
14:47
|
(7) Это вообще какое то издевательство на работой с json в 1с. Иди читай про json в 1с.
|
|||
12
unenu
22.06.22
✎
14:49
|
(11) у любого программиста обязательно наличие кррепких нервов и желание много и вдумчиво читать.
если вам ближе истерики, то еще не поздно попробовать себе на сцене. |
|||
13
Garykom
гуру
22.06.22
✎
15:05
|
Достаточно
СтруктураPOSТ_Запрос.Вставить("sign", ""+ХешированиеДанных.ХешСумма); Но вероятно пробелы надо будет убрать, зависит от сервера |
|||
14
Garykom
гуру
22.06.22
✎
15:06
|
(13)+ Для надежности лучше
СтруктураPOSТ_Запрос.Вставить("sign", XMLСтрока(ХешированиеДанных.ХешСумма)); Ив целом все строковые лучше оборачивать в XMLСтрока, хз что там внутри |
|||
15
arsik
гуру
22.06.22
✎
15:50
|
(14) XMLСтрока(ХешированиеДанных.ХешСумма) - бинарные данные неправильно интерпретирует
|
|||
16
OnePrg
22.06.22
✎
16:09
|
Разобрался. Всем спасибо!
ЗаписьJSON_Запрос = Новый ЗаписьJSON; ЗаписьJSON_Запрос.ПроверятьСтруктуру = Ложь; ЗаписьJSON_Запрос.УстановитьСтроку(); ЗаписьJSON_Запрос.ЗаписатьНачалоМассива(); СтруктураЗаказа = Новый Структура; СтруктураЗаказа.Вставить("product_order","55555"); //(required) – номер заказа СтруктураЗаказа.Вставить("contact","Иванов"); //(required) – фио получателя ... МассивЗаказы = Новый Массив; МассивЗаказы.Добавить(СтруктураЗаказа); МассивПараметры = Новый Массив; СтруктураЗаказы = Новый Структура; СтруктураЗаказы.Вставить("orders",СтруктураЗаказа); МассивПараметры.Добавить(СтруктураЗаказы); СтруктураЗапроса = Новый Структура; СтруктураЗапроса.Вставить("client", id_клиента); СтруктураЗапроса.Вставить("object", "order"); СтруктураЗапроса.Вставить("method", "create"); СтруктураЗапроса.Вставить("parameters", МассивПараметры); ЗаписатьJSON(ЗаписьJSON_Запрос,СтруктураЗапроса); ЗаписьJSON_Запрос.ЗаписатьКонецМассива(); СтрокаJSON_Запрос = ЗаписьJSON_Запрос.Закрыть(); ЗаписьJSON_POSТ_Запрос = Новый ЗаписьJSON; ЗаписьJSON_POSТ_Запрос.ПроверятьСтруктуру = Ложь; ЗаписьJSON_POSТ_Запрос.УстановитьСтроку(); ЗаписьJSON_POSТ_Запрос.ЗаписатьНачалоМассива(); СтруктураPOSТ_Запрос = Новый Структура; СтруктураPOSТ_Запрос.Вставить("request", СтруктураЗапроса); ХешированиеДанных = Новый ХешированиеДанных(ХешФункция.MD5); ХешированиеДанных.Добавить(СтрокаJSON_Запрос+api_ключ); СтруктураPOSТ_Запрос.Вставить("sign",СтрЗаменить(НРег(СокрЛП(ХешированиеДанных.ХешСумма))," ","")); ЗаписатьJSON(ЗаписьJSON_POSТ_Запрос,СтруктураPOSТ_Запрос); ЗаписьJSON_POSТ_Запрос.ЗаписатьКонецМассива(); POSТ_Запрос = ЗаписьJSON_POSТ_Запрос.Закрыть(); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |