首页 > 解决方案 > 无法通过邮递员或 python 条带客户端更新 Stripe API 中的嵌套对象

问题描述

我正在尝试通过点击条带 api 中的发布请求来更新一些字段。但我无法更新/访问嵌套或复杂的 json 对象。

例如:-

我能够更新元数据对象/字典中的任何字段或任何其他字段,例如电子邮件等:-

{

"delinquent": false,
"description": "5f3a250ac1eaa40f0f8eaf7e",
"discount": null,
"email": "rahul.gunkar+t1@autodesk.com",
"invoice_prefix": "784B4E6D",

"livemode": false,
"metadata": {
    "Address_Line1": "Pune test 2",
    "Address_City": "random city 2",
    "Address_State": "random state 2",
    "Address_PostalCode": "random code 2",
    "Address_Country": "random country 2"
}

但是我无法更新源对象中存在的任何字段,因为它是嵌套的,请参考下面的代码:-

{"sources": {
    "object": "list",
    "data": [
        {
            "id": "card_1HblKNKg447shOihGrpTMIGL",
            "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": "cus_IC9dEzwYVKwLqw",
            "cvc_check": "pass",
            "dynamic_last4": null,
            "exp_month": 11,
            "exp_year": 2022,
            "fingerprint": "UTr7HATsezaxlGkF",
            "funding": "credit",
            "last4": "4242",
            "metadata": {},
            "name": null,
            "tokenization_method": null
        }
    ],
    "has_more": false,
    "total_count": 1,
    "url": "/v1/customers/cus_IC9dEzwYVKwLqw/sources"
}

}

我想更新address_city等字段。

请参阅随附的屏幕截图以获取更多详细信息:- json 响应的附加图像

标签: postmanstripe-payments

解决方案


为了更新链接的对象/资源,您需要使用特定于该资源的 API。例如,如果您想更新示例中卡上的地址信息 (card_1HblKNKg447shOihGrpTMIGL),您可以使用此处记录的 Cards API 执行此操作:

https://stripe.com/docs/api/cards/update

对此的 cURL 请求看起来像:

curl https://api.stripe.com/v1/customers/cus_IC9dEzwYVKwLqw/sources/card_1HblKNKg447shOihGrpTMIGL \
  -u sk_test_replace_with_your_secret_key: \
  -d address_city=Toronto \
  -d address_country=CA

对于metadata对象上的哈希属性,您可以通过在更新请求中指定键和值来更新它们。例如,假设您想Some_Key在客户中添加/更新密钥,metadata您可以执行以下操作:

curl https://api.stripe.com/v1/customers/cus_IC9dEzwYVKwLqw \
  -u sk_test_replace_with_your_secret_key: \
  -d "metadata[Some_Key]"=xyz

https://stripe.com/docs/api/customers/update


推荐阅读