【发布时间】:2021-06-05 17:19:27
【问题描述】:
我使用条纹 Api 付款方式,并且我的数据库中有一个布尔值,名为 ordered 设置为 False
我只是希望它在付款后是真实的
这是我的views.py:
class OrderSummary(LoginRequiredMixin, View):
def post(self, request, *args, **kwargs):
order = Order.objects.get(user=self.request.user) #this is to bring the order
delivered = order.ordered
YOUR_DOMAIN = "http://127.0.0.1:8000"
checkout_session = stripe.checkout.Session.create(
payment_method_types=['card'],
metadata={
"order_id":order.id,
"order":order,
"delivered":delivered
},
mode='payment',
success_url=YOUR_DOMAIN + "/",
cancel_url=YOUR_DOMAIN + "/",
)
return JsonResponse({'id': checkout_session.id})
这是付款后的 webhook 视图:
@csrf_exempt
def stripe_webhook(request):
payload = request.body
sig_header = request.META['HTTP_STRIPE_SIGNATURE']
event = None
try:
event = stripe.Webhook.construct_event(
payload, sig_header, endpoint_secret
)
except ValueError as e:
# Invalid payload
return HttpResponse(status=400)
except stripe.error.SignatureVerificationError as e:
# Invalid signature
return HttpResponse(status=400)
if event['type'] == 'checkout.session.completed': #this is to bring the order
session = event['data']['object']
customer_email = session["customer_details"]["email"]
orders =session["metadata"]["delivered"]
orders=True
orders.save()
print(session)
# Passed signature verification
return HttpResponse(status=200)
但我收到了这个错误
AttributeError: 'bool' object has no attribute 'save'
【问题讨论】:
-
您可能需要一些错误处理,但最重要的是,您将“订单”分配为字符串值和布尔值。那是行不通的。您可能希望将订单更改为其他值以获得真/假值
-
别的什么喜欢什么!!
-
对别人大喊大叫不会得到太多帮助。祝你好运
-
对不起,我不是故意大喊大叫,我只是想大写,对不起,伙计
标签: python django django-views stripe-payments