Я использую Python 3.7 и запрашиваю 2.21.0 для интеграции платежного шлюза.
У меня есть следующий пример песочницы формы, которая работает как положено (возвращает JSON):
curl -X POST https://secure.snd.payu.com/api/v2_1/orders \
-H "Content-Type: application/json" \
-H "Authorization: Bearer d9a4536e-62ba-4f60-8017-6053211d3f47" \
-d '{
"notifyUrl": "https://your.eshop.com/notify",
"customerIp": "127.0.0.1",
"merchantPosId": "300746",
"description": "RTV market",
"currencyCode": "PLN",
"totalAmount": "21000",
"buyer": {
"email": "john.doe@example.com",
"phone": "654111654",
"firstName": "John",
"lastName": "Doe",
"language": "pl"
},
"settings":{
"invoiceDisabled":"true"
},
"products": [
{
"name": "Wireless Mouse for Laptop",
"unitPrice": "15000",
"quantity": "1"
},
{
"name": "HDMI cable",
"unitPrice": "6000",
"quantity": "1"
}
]
}'
С другой стороны, у меня есть следующий код Python
import requests
import json
url = "https://secure.snd.payu.com/api/v2_1/orders"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer d9a4536e-62ba-4f60-8017-6053211d3f47"
}
data = {
"notifyUrl": "https://your.eshop.com/notify",
"customerIp": "127.0.0.1",
"merchantPosId": "300746",
"description": "RTV market",
"currencyCode": "PLN",
"totalAmount": "21000",
"buyer": {
"email": "john.doe@example.com",
"phone": "654111654",
"firstName": "John",
"lastName": "Doe",
"language": "pl"
},
"settings":{
"invoiceDisabled":"true"
},
"products": [
{
"name": "Wireless Mouse for Laptop",
"unitPrice": "15000",
"quantity": "1"
},
{
"name": "HDMI cable",
"unitPrice": "6000",
"quantity": "1"
}
]
}
response = requests.post(url, data=json.dumps(data), headers=headers)
Однако вместо ответа JSON я получаю HTML.Есть идеи почему?При использовании Python 2.7 я использовал urllib
, и это работало, но использование urllib
для вызова в Python 3.7 дает точно такой же эффект, то есть HTML вместо JSON.
Ответ должен выглядеть следующим образом
{
"status":{
"statusCode":"SUCCESS",
},
"redirectUri":"{payment_summary_redirection_url}",
"orderId":"WZHF5FFDRJ140731GUEST000P01",
"extOrderId":"{YOUR_EXT_ORDER_ID}",
}