#django #curl #paypal
Вопрос:
Я пытаюсь реализовать PayPal в Django без какого-либо SDK или пакета.
https://developer.paypal.com/docs/business/checkout/server-side-api-calls/create-order/
Хотите переписать этот завиток на Python
curl -v -X POST https://api-m.sandbox.paypal.com/v2/checkout/orders
-H "Content-Type: application/json"
-H "Authorization: Bearer Access-Token"
-d '{
"intent": "CAPTURE",
"purchase_units": [
{
"amount": {
"currency_code": "USD",
"value": "100.00"
}
}
]
}'
Мой текущий код:
t = gettoken()
d = {"intent": "CAPTURE","purchase_units": [{"amount": {"currency_code": "USD","value": "100.00"}}]}
h = {"Content-Type: application/json", "Authorization: Bearer " t}
r = requests.post('https://api-m.sandbox.paypal.com/v2/checkout/orders', headers=h, data=d).json()
Моя Ошибка:
Internal Server Error: /createOrder
.....
AttributeError: 'set' object has no attribute 'items'
Жетон на предъявителя в порядке.
Есть идеи? Что я упускаю?
Комментарии:
1. Правильный заголовок таков
{"Content-Type": "application/json", "Authorization": "Bearer " t}
. Текущий, который у вас есть, на самом деле aset
, а не adict
, следовательно, ошибка2. Спасибо. Теперь я получаю ‘{‘имя’: ‘invalid_request в’, ‘сообщение’: ‘запрос не является, синтаксически неправильно, или нарушает схему.’, ‘debug_id’: ‘252e2f9a9587d’, ‘данные’: [{‘местоположение’: ‘тело’, ‘вопрос’: ‘MALFORMED_REQUEST_JSON’, ‘описание’: ‘запрос JSON не правильно сформированным.’}], ‘одной’: [{‘слишком’: ‘ developer.paypal.com/docs/api/orders/v2/… ‘, ‘отн’: ‘information_link’, ‘encType’: ‘приложение/JSON’}]} итак, есть ли ошибка в мой д?
3. Все выглядит нормально. Работает ли это с завитком?
Ответ №1:
d = {"intent": "CAPTURE","purchase_units": [{"amount": {"currency_code": "USD","value": "100.00"}}]}
h = {"Content-Type": "application/json", "Authorization": "Bearer " t}
r = requests.post('https://api-m.sandbox.paypal.com/v2/checkout/orders', headers=h, json=d).json()
Работает.