Я пытаюсь отправить платеж с платежом, используя инструменты API, в Python, а не PHP (рекомендуемый документ). < /p>
Я генерирую подпись, как SO: < /p>
import hashlib
import urllib.parse
def generate_signature(data: dict, passphrase: str) -> str:
"""
Generates an MD5 signature for PayFast API request.
- Assumes data is already in the correct order.
- URL encodes values with uppercase encoding.
- Uses '+' for spaces.
- Encodes passphrase before appending.
"""
encoded_params = []
for key, value in data.items():
if value: # Ignore empty values
encoded_value = urllib.parse.quote_plus(str(value)).upper() # URL encode & uppercase
encoded_params.append(f"{key.upper()}={encoded_value}")
# URL-encode the passphrase as well
encoded_passphrase = urllib.parse.quote_plus(passphrase).upper()
# Concatenate parameters
param_string = "&".join(encoded_params)
# Append encoded passphrase
param_string += f"&PASSPHRASE={encoded_passphrase}"
print(f"String before hashing: {param_string}")
# Generate MD5 hash
signature = hashlib.md5(param_string.encode("utf-8")).hexdigest()
print(f"Generated Signature: {signature}")
return signature
< /code>
Следуя документам для генерации подписи, похоже, что клавиши и значения параметров предназначены для верхнего чехла, и, как указано в дополнительных полях.400 signature: Generated signature does not match submitted signature.
< /code>
Вот как выглядит моя сгенерированная подпись: < /p>
string перед хэшированием: < /p>
< /p>
Подробнее здесь: https://stackoverflow.com/questions/795 ... ed-signatu
Подпись PayFast (Python): сгенерированная подпись не соответствует поданной подписи. ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Подпись PayFast (Python): сгенерированная подпись не соответствует поданной подписи.
Anonymous » » в форуме Python - 0 Ответы
- 8 Просмотры
-
Последнее сообщение Anonymous
-