【问题标题】:PayPal SDK - AttributeError: 'HttpResponse' object has no attribute 'get'PayPal SDK - AttributeError:“HttpResponse”对象没有属性“get”
【发布时间】:2021-12-27 18:19:12
【问题描述】:
我正在使用带有 Django(Django REST 框架)的 PayPal SDK 来创建和捕获交易。在此guide 之后,我得到标题中的错误。看起来 self.client.execute(request) 返回 paypalhttp.http_response.HttpResponse object 但 Django 不会让我从我的角度返回它。有任何想法吗?谢谢。
【问题讨论】:
标签:
python
django
django-rest-framework
paypal
【解决方案1】:
返回 paypalhttp.http_response.HttpResponse 对象
使用它拥有的任何方法从该对象中提取数据。通常,您需要将生成的付款详细信息存储在您的数据库中(尤其是purchase_units[0].payments.captures[0].id,它是 PayPal 交易 ID)。
然后return a JSON response 到调用JS。从 django 1.7 开始,您可以执行以下操作:
from django.http import JsonResponse
data = {
'name': 'Vitor',
'location': 'Finland',
'is_active': True,
'count': 28
}
return JsonResponse(data)
显然将data 替换为您要转发的实际响应数据。
客户端JS在收到响应时应该有适当的错误处理,见demo patternhttps://developer.paypal.com/demo/checkout/#/pattern/server