Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django Stripe webhook json数据如何在admin中查看该数据_Django_Django Views_Django Admin_Stripe Payments - Fatal编程技术网

Django Stripe webhook json数据如何在admin中查看该数据

Django Stripe webhook json数据如何在admin中查看该数据,django,django-views,django-admin,stripe-payments,Django,Django Views,Django Admin,Stripe Payments,我现在可以发送webhook,它被接收并返回200状态到Stripe,但我不知道如何在json中获取信息 { "object": { "id": "ch_1D2mVJEiQxrCiRvRgbqdtpbI", "object": "charge", "amount": 5000, "amount_refunded": 0, "application": null, "application_fee": null, "balance_tra

我现在可以发送webhook,它被接收并返回200状态到Stripe,但我不知道如何在json中获取信息

{
  "object": {
    "id": "ch_1D2mVJEiQxrCiRvRgbqdtpbI",
    "object": "charge",
    "amount": 5000,
    "amount_refunded": 0,
    "application": null,
    "application_fee": null,
    "balance_transaction": "txn_1D2mVKEiQxrCiRvRAQ61MjSt",
    "captured": true,
    "created": 1535144857,
    "currency": "usd",
    "customer": null,
    "description": "A Django charge",
    "destination": null,
    "dispute": null,
    "failure_code": null,
    "failure_message": null,
    "fraud_details": {
    },
    "invoice": null,
    "livemode": false,
    "metadata": {
    },
    "on_behalf_of": null,
    "order": null,
    "outcome": {
      "network_status": "approved_by_network",
      "reason": null,
      "risk_level": "normal",
      "seller_message": "Payment complete.",
      "type": "authorized"
    },
    "paid": true,
    "receipt_email": null,
    "receipt_number": null,
    "refunded": false,
    "refunds": {
      "object": "list",
      "data": [
      ],
      "has_more": false,
      "total_count": 0,
      "url": "/v1/charges/ch_1D2mVJEiQxrCiRvRgbqdtpbI/refunds"
    },
    "review": null,
    "shipping": null,
    "source": {
      "id": "card_1D2mVEEiQxrCiRvRTa2poVVT",
      "object": "card",
      "address_city": null,
      "address_country": null,
      "address_line1": null,
      "address_line1_check": null,
      "address_line2": null,
      "address_state": null,
      "address_zip": null,
      "address_zip_check": null,
      "brand": "Visa",
      "country": "US",
      "customer": null,
      "cvc_check": null,
      "dynamic_last4": null,
      "exp_month": 9,
      "exp_year": 2021,
      "fingerprint": "p6BWjMSv83IqjoCg",
      "funding": "credit",
      "last4": "4242",
      "metadata": {
      },
      "name": "marie.pier.cm@gmail.com",
      "tokenization_method": null
    },
    "source_transfer": null,
    "statement_descriptor": null,
    "status": "succeeded",
    "transfer_group": null
  },
  "previous_attributes": null
}
我想检索created(作为日期)、object.id、object.amount和object.paid,以便能够在django admin中看到它们

views.py中的代码是

@require_POST
@csrf_exempt
def webhook(request):
    # Retrieve the request's body and parse it as JSON:
    jsondata = request.body
    data = json.loads(jsondata)

    return HttpResponse(status=200)
我想填充的模型是这样的

class StripePayment(models.Model):
    paymentId = models.CharField(max_length=200)
    paymentAmount = models.CharField(max_length=10)
    paid =  models.BooleanField()
    created = models.DateTimeField()

    def __str__(self):
        return self.paymentId
我知道会是这样的

@require_POST
@csrf_exempt
def webhook(request):
jsondata = request.body
    data = json.loads(jsondata)
    meta = copy.copy(request.META)
    for k, v in meta.items():
        if not isinstance(v, basestring):
            del meta[k]

    modelname.objects.create(
        .......)
但我想不出来,请帮忙:)


如果任何人在某一点上需要: views.py

和models.py

class StripePayment(models.Model):
paymentId = models.CharField(max_length=150)
amount = models.CharField(max_length=150)
paid = models.BooleanField()

您无法通过
payload['object:id']
之类的方式获取嵌套数据。您需要将每个级别视为一个单独的字典,它是:

payment_id = payload['object']['id']
amount = payload['object']['amount']
paid = payload['object']['paid']

还要注意的是,您的
返回值就在这段代码之前,所以其余的将永远不会执行。您应该将该返回移到函数的末尾。

我真的不明白您在问什么。
request.META
是关于什么的?你为什么要那样做?为什么你不能用发布的JSON中的四段数据调用你的create方法?@DanielRoseman我在文章末尾添加了一些代码,但它不起作用。你可以看看它,让我知道你的想法吗?哦,好的,非常感谢你提供的信息,我希望你有一个美好的一天:D
payment_id = payload['object']['id']
amount = payload['object']['amount']
paid = payload['object']['paid']