Уведомления

Группа в Telegram: @pythonsu

#1 Май 15, 2019 22:38:30

m0nte-cr1st0
Зарегистрирован: 2019-02-03
Сообщения: 49
Репутация: +  2  -
Профиль   Отправить e-mail  

Ошибка при отправке запроса

Пытаюсь отправить апи запрос, но получаю ошибку 1002. С запросами раньше не работал, опыта в этом нет.
Посмотрите, пожалуйста, может, делаю что не так…

Вот документация, откуда взял данные для запроса.

https://docs.google.com/document/d/198d8Zbb7cgx-vAXAhNn_Oyhqc-fG1UXe4W0G-aQJzkE/edit#

 import requests
data = {
  "order": {
     "server_callback_url": "http://site.id/callback",
     "currency": "UAH",
     "amount": "1400",
     "order_type": "settlement",
     "response_url": "http://site.id/test/responsepage/",
     "order_id": "test1234561467462099.19",
     "operation_id": "test1234561467462099.19",
     "order_desc": "test order",
     "merchant_id": 700001,
     "receiver": [
       {
         "requisites": {
         "amount": 100,
         "merchant_id": 500001
       },
       "type": "merchant"
     },{
       "requisites": {
           "amount": 200,
           "merchant_id": 600001
       },
       "type": "merchant"
     },
    ]
  }
}
headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
response = requests.post('https://api.fondy.eu/api/settlement', data=data, headers=headers)

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

Офлайн

#2 Май 16, 2019 09:15:04

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Ошибка при отправке запроса

ну вы в заголовках указываете тип данных как json, а отправляете обычную форму. Насколкьо помню для requests нужно не data= указывать а json= . Попробуйте



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Май 16, 2019 09:49:30

m0nte-cr1st0
Зарегистрирован: 2019-02-03
Сообщения: 49
Репутация: +  2  -
Профиль   Отправить e-mail  

Ошибка при отправке запроса

JOHN_16
ну вы в заголовках указываете тип данных как json, а отправляете обычную форму. Насколкьо помню для requests нужно не data= указывать а json= . Попробуйте
заменил data=, на json= - получаю ошибку, мол параметр не передан. Хотя он передаётся…
{u'response': {u'error_message': u'Parameter `order_type` is missing', u'error_code': 1011, u'request_id': u'enpnbwaLKz6Ge'}}

Возможно, я неправильной структуры json формирую? Посмотрите, пожалуйста.(

Отредактировано m0nte-cr1st0 (Май 16, 2019 09:55:07)

Офлайн

#4 Май 16, 2019 10:42:15

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Ошибка при отправке запроса

m0nte-cr1st0

Или я чего-то не понимаю, или в документации написано

Формат запроса
{
“request”: {
“version”: 2.0,
“data”: “ewogIm9yZGVyIjogewogICAic2VydmVyX2NhbGxiYWNrX3VybCI6ICJodHRwOi8vc2l0ZS5jb20vY2FsbGJhY2siLAogICAicmVjdG9rZW4iOiAiOTg5YmI5MzRiZTZiMWEwYjRmZDc1YzU5YWRhZTczOTRlNTZmNGM2MCIsIC8vINC00LvRjyDQodGF0LXQvNCwIDIuINCf0L7RgdGA0LXQtNGB0YLQstC+0Lwg0YLQvtC60LXQvdCwCiAgICJjdXJyZW5jeSI6ICJVQUgiLAogICAiYW1vdW50IjogIjE0MDAiLAogICAib3JkZXJfdHlwZSI6ICJzZXR0bGVtZW50IiwKICAgInJlc3BvbnNlX3VybCI6ICJodHRwOi8vc2l0ZS5jb20vdGVzdC9yZXNwb25zZXBhZ2UvIiwKICAgIm9yZGVyX2lkIjogInRlc3QxMjM0NTYxNDY3NDYyMDk5LjE5IiwKICAgIm9wZXJhdGlvbl9pZCI6ICJ0ZXN0MTIzNDU2MTQ2NzQ2MjA5OS4xOSIsCiAgICJvcmRlcl9kZXNjIjogInRlc3Qgb3JkZXIiLAogICAibWVyY2hhbnRfaWQiOiA3MDAwMDEsCiAgICJyZWNlaXZlciI6IFsKICAgICB7CiAgICAgICAicmVxdWlzaXRlcyI6IHsKICAgICAgICAgImFtb3VudCI6IDEwMCwKICAgICAgICAgInNldHRsZW1lbnRfZGVzY3JpcHRpb24iOiAi0J3QsNC30L3QsNGH0LXQvdC40LUg0L/Qu9Cw0YLQtdC20LAg0LTQu9GPINCx0LDQvdC60L7QstGB0LrQvtCz0L4g0L/QtdGA0LXQstC+0LTQsCIsCiAgICAgICAgICJtZXJjaGFudF9pZCI6IDUwMDAwMQogICAgICAgfSwKICAgICAgICJ0eXBlIjogIm1lcmNoYW50IgogICAgIH0sewogICAgICAgInJlcXVpc2l0ZXMiOiB7CiAgICAgICAgICJhbW91bnQiOiAyMDAsCiAgICAgICAgICJzZXR0bGVtZW50X2Rlc2NyaXB0aW9uIjogItCd0LDQt9C90LDRh9C10L3QuNC1INC/0LvQsNGC0LXQttCwINC00LvRjyDQsdCw0L3QutC+0LLRgdC60L7Qs9C+INC/0LXRgNC10LLQvtC00LAiLAogICAgICAgICAibWVyY2hhbnRfaWQiOiA2MDAwMDEKICAgICAgIH0sCiAgICAgICAidHlwZSI6ICJtZXJjaGFudCIKICAgICB9LAogICAgIHsKICAgICAgICJyZXF1aXNpdGVzIjogewogICAgICAgICAiYW1vdW50IjogMTAwLAogICAgICAgICAic2V0dGxlbWVudF9kZXNjcmlwdGlvbiI6ICLQndCw0LfQvdCw0YfQtdC90LjQtSDQv9C70LDRgtC10LbQsCDQtNC70Y8g0LHQsNC90LrQvtCy0YHQutC+0LPQviDQv9C10YDQtdCy0L7QtNCwIiwKICAgICAgICAgImFjY291bnQiOiAxMjM0NTY3ODksCiAgICAgICAgICJtZm8iOiAxMjM0NSwKICAgICAgICAgIm9rcG8iOiAxMjM0NTY3ODksCiAgICAgICAgICJqdXJfbmFtZSI6ICLQntCe0J4g0KDQvtC80LDRiNC60LAiCiAgICAgICB9LAogICAgICAgInR5cGUiOiAiYmFua19hY2NvdW50IgogICAgIH0sCiAgICAgewogICAgICAgInJlcXVpc2l0ZXMiOiB7CiAgICAgICAgICJyZWN0b2tlbiI6ICJkYTgyMDM1YmMxM2M3OGYyZWI3NGRmN2NhZjgxZGVjYzM2MDEwNjFjIiwKICAgICAgICAgImFtb3VudCI6IDUwMAogICAgICAgfSwKICAgICAgICJ0eXBlIjogInJlY3Rva2VuIgogICAgIH0sCiAgICAgewogICAgICAgInJlcXVpc2l0ZXMiOiB7CiAgICAgICAgICJhbW91bnQiOiA1MDAsCiAgICAgICAgICJjYXJkX251bWJlciI6IDQ0NDQ1NTU1MTExMTY2NjYKICAgICAgIH0sCiAgICAgICAidHlwZSI6ICJjYXJkIgogICAgIH0KICAgXQogfQp9Cg==”,
“signature”: “943571471619207087eb57e2b4ef69affd337b1a”
}
}

data - это base64 кодированный набор данных формата:

{
“order”: {
“server_callback_url”: "http://site.com/callback“,
”rectoken“: ”989bb934be6b1a0b4fd75c59adae7394e56f4c60“, // для Схема 2. Посредством токена
”currency“: ”UAH“,
”amount“: ”1400“,
”order_type“: ”settlement“,
”response_url“: ”http://site.com/test/responsepage/“,
”order_id“: ”test1234561467462099.19“,
”operation_id“: ”test1234561467462099.19“,
”order_desc“: ”test order“,
”merchant_id“: 700001,
”receiver“: [
{
”requisites“: {
”amount“: 100,
”settlement_description“: ”Назначение платежа для банковского перевода“,
”merchant_id“: 500001
},
”type“: ”merchant“
},{
”requisites“: {
”amount“: 200,
”settlement_description“: ”Назначение платежа для банковского перевода“,
”merchant_id“: 600001
},
”type“: ”merchant“
},
{
”requisites“: {
”amount“: 100,
”settlement_description“: ”Назначение платежа для банковского перевода“,
”account“: 123456789,
”mfo“: 12345,
”okpo“: 123456789,
”jur_name“: ”ООО Ромашка“
},
”type“: ”bank_account“
},
{
”requisites“: {
”rectoken“: ”da82035bc13c78f2eb74df7caf81decc3601061c“,
”amount“: 500
},
”type“: ”rectoken“
},
{
”requisites“: {
”amount“: 500,
”card_number“: 4444555511116666
},
”type“: ”card"
}
]
}
}


Где вы кодируете в base-64? Пишут же
Формат запроса
{
“request”: {
“version”: 2.0,
“data”:

У вас разве такой формат запроса?



Офлайн

#5 Май 16, 2019 12:12:31

m0nte-cr1st0
Зарегистрирован: 2019-02-03
Сообщения: 49
Репутация: +  2  -
Профиль   Отправить e-mail  

Ошибка при отправке запроса

FishHook
m0nte-cr1st0Или я чего-то не понимаю, или в документации написано
Невнимательность - моё второе имя. Спасибо.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version