Как правильно сделать Paypal Payment?

import requests
import base64
import json
ClientId = 'XXXXXXXXXXXXXXXXX';
Secret = 'XXXXXXXXXXXXXXXXX';
token = base64.b64encode(ClientId + ':' + Secret);
header = {
    'Authorization': ('Basic %s' % token),
    'Accept': 'application/json',
}
data = {'grant_type': 'client_credentials'}
page=requests.post('https://api.sandbox.paypal.com/v1/oauth2/token', headers=header, data=data)
token=json.loads(page.text)['access_token']

header={
'Content-Type': 'application/json',
'Authorization': 'Bearer '+token,
}

data={
  "intent": "sale",
  "payer": {"payment_method": "paypal"},
  "transactions": [{
    "amount": {"total": "7.47", "currency": "USD"}
  }]
}

page=requests.post('https://api.sandbox.paypal.com/v1/payments/payment', headers=header, data=data)
data=json.loads(page.text)
print data


Access Token получаю без проблем. При создании Payment получаю такую ошибку:
{'message': 'The request JSON is not well formed.', 'debug_id': '30ae2cc8d3a63', 'name': 'MALFORMED_REQUEST', 'information_link': 'https://developer.paypal.com/webapps/developer/docs/api/#MALFORMED_REQUEST'}


Как я понимаю - не правильное тело запроса JSON. Но я его проверял: VALID.
В чём же ошибка?
  • Вопрос задан
  • 370 просмотров
Решения вопроса 1
Revencu
@Revencu Автор вопроса
Нашёл решение!
Оказывается мой JSON не принимает Paypal из-за того, что в нём одинарные кавычки.
А нужны двойные кавычки.
json.dumps(data)

page=requests.post('https://api.sandbox.paypal.com/v1/payments/payment', headers=header, data=json.dumps(data))
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@EyesFit
Я использовал PayPal Payments. Не такой большой, но. Помните, что они получают значительную долю всего, что проходит через них, особенно когда происходит конвертация валюты. Это на самом деле так, даже если они не думают, что вы обеспокоены отмыванием денег, что они, вероятно, делают чаще, чем вы думаете.

Если PayPal работает, это хорошо... для вашего клиента. Это для вас, дорогое удобство. Если это не работает, и вы потеряете работу и средства к существованию. Они не заботятся о подтверждении, которое вы предоставили.

Около года назад я начал говорить со своими клиентами о биткойнах. Естественно, не все клиенты платят мне биткойнами, а каждый доллар, который кладется в мой кошелек вместо доллара PayPal.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы