如何使用 Paypal Capture API 响应返回的链接?

问题描述 投票:0回答:1

我应该存储链接以供将来使用,例如用于获取订单详细信息。如果 Paypal 将此 api 更改为 v3 会怎样? V2 API 还能用吗?

{
  "id": "59852153UW8454325",
  "status": "COMPLETED",
  "payment_source": {
    "paypal": {
      "email_address": "[email protected]",
      "account_id": "B54Y46KJS6GPW",
      "account_status": "VERIFIED",
      "name": {
        "given_name": "John",
        "surname": "Doe"
      },
      "address": {
        "country_code": "GB"
      }
    }
  },
  "purchase_units": [
    {
      "reference_id": "1234856sdf531",
      "shipping": {
        "name": {
          "full_name": "John Doe"
        },
        "address": {
          "address_line_1": "Whittaker House",
          "address_line_2": "2 Whittaker Avenue",
          "admin_area_2": "Richmond",
          "admin_area_1": "Surrey",
          "postal_code": "TW9 1EH",
          "country_code": "GB"
        }
      },
      "payments": {
        "captures": [
          {
            "id": "1FH31606554725940",
            "status": "COMPLETED",
            "amount": {
              "currency_code": "USD",
              "value": "2.00"
            },
            "final_capture": true,
            "seller_protection": {
              "status": "ELIGIBLE",
              "dispute_categories": [
                "ITEM_NOT_RECEIVED",
                "UNAUTHORIZED_TRANSACTION"
              ]
            },
            "seller_receivable_breakdown": {
              "gross_amount": {
                "currency_code": "USD",
                "value": "2.00"
              },
              "paypal_fee": {
                "currency_code": "USD",
                "value": "0.59"
              },
              "net_amount": {
                "currency_code": "USD",
                "value": "1.41"
              }
            },
            "links": [
              {
                "href": "https://api.sandbox.paypal.com/v2/payments/captures/1FH31606554725940",
                "rel": "self",
                "method": "GET"
              },
              {
                "href": "https://api.sandbox.paypal.com/v2/payments/captures/1FH31606554725940/refund",
                "rel": "refund",
                "method": "POST"
              },
              {
                "href": "https://api.sandbox.paypal.com/v2/checkout/orders/59852153UW8454325",
                "rel": "up",
                "method": "GET"
              }
            ],
            "create_time": "2023-07-27T04:41:32Z",
            "update_time": "2023-07-27T04:41:32Z"
          }
        ]
      }
    }
  ],
  "payer": {
    "name": {
      "given_name": "John",
      "surname": "Doe"
    },
    "email_address": "[email protected]",
    "payer_id": "B54Y46KJS6GPW",
    "address": {
      "country_code": "GB"
    }
  },
  "links": [
    {
      "href": "https://api.sandbox.paypal.com/v2/checkout/orders/59852153UW8454325",
      "rel": "self",
      "method": "GET"
    }
  ]
}

我看到很少有 V1 API url 找不到,这让我担心用 v2 存储链接。

请帮助我是否应该存储这些链接。

enter image description here

paypal paypal-rest-sdk
1个回答
0
投票

出于会计目的,请存储 PayPal 交易 ID 值,该值可在

purchase_units[0].payments.captures[0].id
中找到。存储交易总额以及您认为有用的任何其他付款人详细信息。您只需使用 ID 即可进行记账和后续退款。

出于调试目的,您可以存储订单 ID,甚至可以存储响应的 PayPal-Debug-Id HTTP 标头(如果需要)。仅当您在 API 事件发生后几周内与 PayPal 的技术支持人员进行对话时,此信息才有用。大约一个月后,就没有任何意义了。

没有理由存储 URL 或对 URL 执行任何操作,您自己的代码应该知道如何处理事务 ID(如果有)以及您已实现哪些 API 操作(如果有)以响应任何操作(例如例如,触发退款)。

只要 API 处于活动状态,版本号就不会改变。如果曾经存在具有不同版本号的 API 调用,则其路径和参数也将任意不同,并且使用它的任何代码都将是新的集成。

© www.soinside.com 2019 - 2024. All rights reserved.