Как получить ссылку на оплату в Модульбанке?

Не понимаю в чем проблема приполучении ссылки на оплату для пользователя. Вот код, который я написал для тестирования оплаты.

def get_raw_signature(params):
   chunks = []
   for key in sorted(params.keys()):
      if key == 'signature':
         continue
      value = params[key]
      if isinstance(value, str):
         value = value.encode('utf8')
      else:
         value = str(value).encode('utf-8')
      if not value:
         continue
      value_encoded = base64.b64encode(value)
      chunks.append('%s=%s' % (key, value_encoded.decode()))
      
   raw_signature = '&'.join(chunks)
   return raw_signature

'''Двойное шифрование sha1 на основе секретного ключа'''

def double_sha1(secret_key, data):
   sha1_hex = lambda s: hashlib.sha1(s.encode('utf-8')).hexdigest()
   digest = sha1_hex(secret_key + sha1_hex(secret_key + data))
   return digest

'''Вычисляем подпись (signature). Подпись считается на основе склеенной
строки из отсортированного массива параметров, исключая из расчета пустые
поля и элемент "signature" '''

def get_signature(secret_key: str, params: dict) -> str:
   return double_sha1(secret_key=secret_key, data=get_raw_signature(params))

def get_date():
   today = datetime.datetime.today()
   return str(int(today.timestamp()))

def func1():   
   headers = {
      "Authorization": "Bearer",
      'Content-Type': 'application/json'
   }
   
   params = {
      "merchant": "<Идентификатор магазина>",
      "amount": '973',
      "description": "Заказ №14425840",
      "testing": "1",
      "receipt_contact": "<Почта>",
      "receipt_items": """[{"discount_sum": 40, "name": "Товар 1", "payment_method": "full_prepayment", "payment_object": "commodity", "price": 48, "quantity": 10, "sno": "osn", "vat": "vat10"}, {"name": "Товар 2", "payment_method": "full_prepayment", "payment_object": "commodity", "price": 533, "quantity": 1, "sno": "osn", "vat": "vat10"}]""",
      "unix_timestamp": get_date(),
      "salt": "GfudKOAsXobWVpNovJHCreKmJXNkLqtA"
   }
   
   
   params["signature"] = get_signature(params=params, secret_key="<Секретный ключ>")
   print(params)
   
   
   request = requests.post(url="https://pay.modulbank.ru/api/v1/bill/", params=params, headers=headers)
   print(request.text)

В результате выполнения кода вылазит ошибка

{
  "message": "Не заполнены поля: текущая дата на сервере, криптографическая подпись, amount, описание заказа; Идентификатор магазина: Неверный идентификатор магазина",
  "status": "error"
}

Подскажите, пожалуйста, в чем проблема


Ответы (0 шт):