PayPal checkout.js
отправляет запрос на мой серверный код Python (/my-api/create-payment/
, описанный в https://developer.paypal.com/docs/checkout/how-to/server-integration/), который, в свою очередь, отправляет запрос /v1/payments/payment
PayPal API для создания платежа на основе ввода пользователя (как описано в https://developer.paypal.com/docs/checkout/how-to/server-integration/):
api = PayPalAPI()
r = api.session.post(api.server + '/v1/payments/payment',
data=json.dumps(input),
headers={'Content-Type': 'application/json',
'PayPal-Request-Id': transaction.invoice_id()})
if r.status_code != 201:
return HttpResponse('') # FIXME: What to do in this situation?
output = r.json()
return HttpResponse(json.dumps({'id': output['id']}))
Что мой серверный код должен вернуть к checkout.js
в случае ошибки (например, если я неправильно сформировал свой запрос JSON на /v1/payments/payment
или если клиентучетная запись отключена из-за мошенничества)? Я хочу, чтобы checkout.js
отображал разумное сообщение об ошибке, а не закрывал окно платежа сообщением низкого уровня в консоли браузера.