Имя: Пароль:
IT
Админ
Запрос в командной строке - CURL
0 kupec
 
09.03.23
16:55
Доброго всем дня. Есть вот такая инструкция для CURL

curl --location --request POST 'https://pay-test.raif.ru/api/payment/v1/orders' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJ0***' \
--data-raw '{ "id": "TestBank03",
"amount": "74",
"comment": "Тест",
"qr": { "id": "AS8F2E5A03D34B4E88B2842DD2591294",
"additionalInfo": "Касса № 1, магазин 22",
"paymentDetails": "Касса № 1 , магазин 22" } }'


Как мне это дело набрать в командной строке, подскажите пожалуйста
1 arsik
 
гуру
09.03.23
16:59
В чем проблема то?
2 Gary417
 
09.03.23
17:02
(0) ну кроме того что ты слеши перехода потерял между переносами, все выглядит норм
если всёравно не понятно че не работает, в блокнотике удали переходы строк и одной строкой вводи это всё
3 Gary417
 
09.03.23
17:02
(2) *хотя слеши наверное и не нужны, чет туплю
4 arsik
 
гуру
09.03.23
17:04
(3) В линуксе нужны.
(0) Зачем через curl тестировать? Есть же фидлер, постман.
5 kupec
 
09.03.23
17:07
curl --location --request POST "https://pay-test.raif.ru/api/payment/v1/orders" --header "Content-Type: application/json" --header "Authorization: Bearer eyJ0***" --data-raw "{ "id": "TestBank03", "amount": "74", "comment": "Тест", "qr": { "id": "AS8F2E5A03D34B4E88B2842DD2591294", "additionalInfo": "Касса № 1, магазин 22", "paymentDetails": "Касса № 1 , магазин 22" } }"

Вот что ввожу, все равно не взлетает
6 kupec
 
09.03.23
17:07
(4) мне надо потом из 1с 7.7 это будет отправлять
7 arsik
 
гуру
09.03.23
17:11
Как то так
curl --location --request POST "https://pay-test.raif.ru/api/payment/v1/orders" --header "Content-Type: application/json" --header "Authorization: Bearer eyJ0***" --data-raw "{ ""id"": ""TestBank03"", ""amount"": ""74"", ""comment"": ""Тест"", ""qr"": { ""id"": ""AS8F2E5A03D34B4E88B2842DD2591294"", ""additionalInfo"": ""Касса № 1, магазин 22"", ""paymentDetails"": ""Касса № 1 , магазин 22"" } }"
8 arsik
 
гуру
09.03.23
17:14
Какой ни будь продвинутый терминал возьми который правильные кавычки показывает, там сразу видно будет.
Вот например виндовый терминал https://i.imgur.com/IaGgLZ7.png
9 kupec
 
09.03.23
17:15
Вот что получается

https://wampi.ru/image/RlwkQ3t
10 arsik
 
гуру
09.03.23
17:20
(9) Так ты какой curl использовал? У встроенного в винду скорее всего другой синтаксис.
11 kupec
 
09.03.23
17:23
ну дык который windows, почему там должен быть другой синтаксис?
12 arsik
 
гуру
09.03.23
17:23
(10) Хотя хз. У меня встроенный в 10 винду работает.
https://i.imgur.com/JMTjOg9.png
13 Gary417
 
09.03.23
17:24
там к совычками косяк
14 Gary417
 
09.03.23
17:24
""qr"": { ""id"":

так нельзя
15 Gary417
 
09.03.23
17:24
(0) надо как тут
16 Gary417
 
09.03.23
17:25
или экранирование ставить на кавычку каждую вложенную внутри тела
17 arsik
 
гуру
09.03.23
17:26
(16) Так я так и сделал. Как в 1С :)
18 Gary417
 
09.03.23
17:28
(17) 1С это не командная строка всетаки, в командной строке - ""чтото"" -- это не означает, чтото - написанное в ковычках
надо или разные ковычки, как в примере (0) или в экранирование типа "\"чтото\""
19 kupec
 
09.03.23
17:28
Invoke-WebRequest : Не удается найти позиционный параметр, принимающий аргумент "--request".
строка:1 знак:1
+ curl --location --request POST "https://pay-test.raif.ru/api/payment/ ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Invoke-WebRequest], ParameterBindingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
20 Смотрящий
 
09.03.23
17:29
(0) POST и "в командной строке" нихт атлатл
Качни это
https://chrome.google.com/webstore/detail/tabbed-postman-rest-clien/coohjcphdfgbiolnekdpbcijmhambjff
и в нем, забив параметрами, выполни запрос
21 Gary417
 
09.03.23
17:31
(19) мне кажется надо нормальный курл юзать https://curl.se/windows/

(господи, оказывается в винду самопальный курл завезли..совсем я забыл винду)
22 arsik
 
гуру
09.03.23
17:32
(19) Вместо стандартного cmd и curl воспользуйся 1C:Исполнитель или OneScript. Там по крайней мере таких проблем возможно не будет.
23 kupec
 
09.03.23
17:41
А теперь подскажите, как пользоваться OneScript из 7.7?
24 MishaD
 
09.03.23
17:47
В свое время пользовался. Пока json в файл не запихнул, ничего не работало.
25 MishaD
 
09.03.23
17:49
вернее делал батник, и запускал его из 7.7.
26 kupec
 
09.03.23
17:55
а каким образом отправлять json из файла? Так же через curl?
27 vbus
 
09.03.23
23:04
curl твой url --data @имя твоего json файла -o имя файла для ответа

` curl https://pay-test.raif.ru/api/payment/v1/orders --data @dtjs.json -o res.json `

в файле данные:
` {
    "url": "https://pay-test.raif.ru/api/payment/v1/orders",
    "raw_url": "https://pay-test.raif.ru/api/payment/v1/orders",
    "method": "post",
    "headers": {
        "Content-Type": "application/json",
        "Authorization": "Bearer eyJ0***"
    },
    "data": {
        "id": "TestBank03",
        "amount": "74",
        "comment": "Тест",
        "qr": {
            "id": "AS8F2E5A03D34B4E88B2842DD2591294",
            "additionalInfo": "Касса № 1, магазин 22",
            "paymentDetails": "Касса № 1 , магазин 22"
        }
    },
    "follow_redirects": true
} `
28 kupec
 
10.03.23
09:01
https://wampi.ru/image/Rl8Yngk
Вот что получается, я так понимаю, каких то сертификатов нет? Или что это за ошибка?
29 arsik
 
гуру
10.03.23
09:36
Если из файла тянешь данные тогда вроде впереди @ нужно ставить
30 arsik
 
гуру
10.03.23
09:38
31 kupec
 
10.03.23
09:56
(30) не помогло.
32 kupec
 
10.03.23
09:59
У нас настроено СБП через райф банк. До вторника все работало через вот это

    Попытка
        XMLHttpRequest = СоздатьОбъект("Msxml2.XMLHTTP.6.0");
    Исключение
        Попытка
            XMLHttpRequest = СоздатьОбъект("Msxml2.XMLHTTP.3.0");
        Исключение                                                                        
            Попытка
                XMLHttpRequest = СоздатьОбъект("Msxml2.XMLHTTP");
            Исключение
                Попытка
                    XMLHttpRequest = СоздатьОбъект("Microsoft.XMLHTTP");
                Исключение  
                    Предупредить("###Ошибка создания объекта XMLHttpRequest",0,,2);Возврат "";
                КонецПопытки;
            КонецПопытки;
        КонецПопытки;
    КонецПопытки;


Во вторник они меняют что то у себя на сервере, а именно
Во вторник в рамках устранения задачи на уязвимость наших доменов pay*.raif.ru было сделано следующее:
1) Отключены небезопасные шифронаборы CBC для TLS.
2) Выставлен обязательным контроль содержимого заголовка Host.

Соответственно работать перестало все, на кассах стоит Win7, Даже интернет Эксплорер не заходит на их сайт, в десятке все нормально, но обновлять 14 касс.....это слишком.

Может нужно какое то обновление установить? Никто не сталкивался с такими проблемами?
33 arsik
 
гуру
10.03.23
10:36
Ну для СБП я бы все же микросервис сделал, на том же php. Развернуть в своей инфраструктуре. Клиентские устройства будут через к нему обращаться, а он уже к банку. И туда же будут колбэки банка прилетать.
34 kupec
 
10.03.23
10:40
(33) я такое не умею
35 arsik
 
гуру
10.03.23
11:02
(34) Какая ошибка в интернет эксплорере при обращении к https://pay-test.raif.ru/ ?
36 arsik
 
гуру
10.03.23
11:13
Хз. Что то ты делаешь не так.
У меня curl (https://curl.se/windows/) работает.
https://i.imgur.com/h1tc9Fa.png
Win 7 x32 с относительно последними обновлениями.
37 kupec
 
10.03.23
11:23
(35) Не удается отобразить эту страницу

•Убедитесь, что веб-адрес https://pay.raif.ru  правильный.
•Найдите страницу с помощью поисковой системы.
•Обновите страницу через несколько минут.
38 kupec
 
10.03.23
11:23
Вчера писало про TSL, какие то обновления ставил, сегодня начало писать вот это
39 arsik
 
гуру
10.03.23
11:41
(38) Через интернет эксплорер меня тоже не пускает, но curl работает. Качай последний и делай через него
40 kupec
 
10.03.23
11:49
а могу я в 1С получить ответ в переменную от curl? Или только с сохранением в файл?
41 arsik
 
гуру
10.03.23
12:12
(40) Только в файл или в консоль, но от этого не лучше.
42 kupec
 
10.03.23
13:50
\curl --location --request POST "https://pay.raif.ru/api/payment/v1/orders" --header "Content-Type: application/json" --header "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGA70fqo67VbnDFlc2QMR5soXB8vkvTY" --data-raw "{ ""id"": ""26809abe-bf2f-4586-8190-ec5c2a3994ef"", ""amount"": ""74"", ""comment"": """", ""extra"": { ""apiClient"": ""curl"", ""apiClientVersion"": ""7.45.0.0"" }, ""expirationDate"": ""2023-03-10T13:48:59+03:00"", ""qr"": { ""id"": ""BS1R0058AU1J4OF391UBQ97TG6RR7I83"", ""additionalInfo"": ""Касса № 1"", ""paymentDetails"": """" }}"
43 kupec
 
10.03.23
13:50
Тех поддержка отвечает, что не валидный json приходит
44 arsik
 
гуру
10.03.23
13:55
(43) Тебе же уже сказали как отправлять из файла?
curl --location --request POST "https://pay.raif.ru/api/payment/v1/orders" --header "Content-Type: application/json" --header "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGA70fqo67VbnDFlc2QMR5soXB8vkvTY" --data @data.json
45 arsik
 
гуру
10.03.23
13:59
+(44) Вот так еще попробуй
curl --location --request POST "https://pay-test.raif.ru/api/payment/v1/orders" --header "Content-Type: application/json" --header "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGA70fqo67VbnDFlc2QMR5soXB8vkvTY" --data-raw '{ "id": "TestBank03", "amount": "74", "comment": "Тест", "qr": { "id": "AS8F2E5A03D34B4E88B2842DD2591294", "additionalInfo": "Касса № 1, магазин 22", "paymentDetails": "Касса № 1 , магазин 22" } }'
46 kupec
 
10.03.23
14:06
Так вообще не срабатывает
47 kupec
 
10.03.23
14:15
А может вот это поможет?

https://pay.raif.ru/doc/sbp.html#operation/post-payment-v1-orders
48 arsik
 
гуру
10.03.23
14:17
(46) У меня нормально на сервис 1С прилетает из командной строки
Вот пример. Там с кодировкой херня была. По умолчанию в утф отправляло, а в консоли не утф.
https://i.imgur.com/qlzwEH2.png
49 arsik
 
гуру
10.03.23
14:24
Без charset=windows-1251 прилетает вот так.
{ "id": "TestBank03", "amount": "74", "comment": "����", "qr": { "id": "AS8F2E5A03D34B4E88B2842DD2591294", "additionalInfo": "����� � 1, ������� 22", "paymentDetails": "����� � 1 , ������� 22" } }
50 arsik
 
гуру
10.03.23
14:24
+(49) Но она полностью json валидна.
51 arsik
 
гуру
10.03.23
14:32
(47) amount должно быть Number, а не String.
52 kupec
 
10.03.23
14:46
Поправил, не получается все равно, выдает не верный формат данных на их стороне.....
53 eklmn
 
гуру
10.03.23
14:51
curl --location --request POST 'https://pay.raif.ru/api/payment/v1/orders'
--header 'Content-Type: application/json'
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGA70fqo67VbnDFlc2QMR5soXB8vkvTY'
--data-raw '{ "id": "26809abe-bf2f-4586-8190-ec5c2a3994ef", "amount": 74.20, "comment": "", "extra": { "apiClient": "curl", "apiClientVersion": "7.45.0.0" }, "expirationDate": "2023-03-10T13:48:59+03:00", "qr": { "id": "BS1R0058AU1J4OF391UBQ97TG6RR7I83", "additionalInfo" : "Касса № 1", "paymentDetails": ""}}'

одинарные ковычки имеют значения
54 kupec
 
10.03.23
14:58
С одинарными кавычками в консоли не работает
55 arsik
 
гуру
10.03.23
14:58
(53) Не. Из командной строки так не работает. Из повершела нормально такая конструкция работает.
56 arsik
 
гуру
10.03.23
15:02
(52) id    поменяй.
string [ 1 .. 40 ] characters ^[A-z0-9-_.]
Уникальный идентификатор заказа. Рекомендуется использовать формат, не допускающий возможность перебора, например, UUID v4
Если параметр не передан, то идентификатор присвоится заказу автоматически
57 kupec
 
10.03.23
15:05
curl --location --request POST 'https://pay.raif.ru/api/payment/v1/orders' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJ0eXAiGFlOTJjMDIifQ.HYFve3_iA4_sdA70fqo67VbnDFlc2QMR5soXB8vkvTY' \
--data-raw '{
    "id": "57631f56-b8d6-4163-b8c6-ab0e64055081",
    "amount": 74,
    "comment": "Оплата покупки ООО Купец Магазин Вокзал Касса 1",
    "extra": {
        "apiClient": "curl",
        "apiClientVersion": "7.88.1.0"
    },
    "qr" : {
        "id": "BS1R0058AU1J4OF391UBQ97TG6RR7I83",
        "additionalInfo": "Касса 1, paymentDetails: Оплата покупки ООО Купец Магазин Вокзал Касса 1"
    }
}'
58 kupec
 
10.03.23
15:06
Вот что мне прислали, сказали рабочий, я только ключ авторизации укоротил, как мне эту херь запустить в CMD, я уже весь мозг сломал, еще там говорят, что кодировку надо UTF8, совсем меня сломать решили
59 kupec
 
10.03.23
15:08
(56) это все раньше работало, механизм остался, так что все там нормально, а вот после их обновления все пошло по одному месту
60 kupec
 
10.03.23
15:14
в общем вот что я сделал, сохранил файл в UTF8 и отправил его через curl
Вроде заработало, буду значит формировать файл и отправлять его
61 kupec
 
10.03.23
15:39
а есть какой то механизм, сохранения набор текстовых дынных в UTF из 1с 7.7?
62 arsik
 
гуру
10.03.23
16:32
63 Грю
 
10.03.23
22:11
(58) Это в Линуксном формате. Запуская из WSL, будет работать. Либо переведи в Виндовсный формат вот так:

curl --location --request POST "https://pay.raif.ru/api/payment/v1/orders" ^
--header "Content-Type: application/json" ^
--header "Authorization: Bearer eyJ0eXAiGFlOTJjMDIifQ.HYFve3_iA4_sdA70fqo67VbnDFlc2QMR5soXB8vkvTY" ^
--data-raw ^"^{ ^
    ^\^"id^\^": ^\^"57631f56-b8d6-4163-b8c6-ab0e64055081^\^", ^
    ^\^"amount^\^": 74, ^
    ^\^"comment^\^": ^\^"Оплата покупки ООО Купец Магазин Вокзал Касса 1^\^", ^
    ^\^"extra^\^": ^{ ^
        ^\^"apiClient^\^": ^\^"curl^\^", ^
        ^\^"apiClientVersion^\^": ^\^"7.88.1.0^\^" ^
    ^}, ^
    ^\^"qr^\^" : ^{ ^
        ^\^"id^\^": ^\^"BS1R0058AU1J4OF391UBQ97TG6RR7I83^\^", ^
        ^\^"additionalInfo^\^": ^\^"Касса 1, paymentDetails: Оплата покупки ООО Купец Магазин Вокзал Касса 1^\^" ^
    ^} ^
^}^"