如何在使用 PayPal Rest API 执行付款之前更改运费金额

2023-12-10

我尝试将基于 PayPal 经典 API 的旧快速结账流程迁移到新的 RestAPI ,但在新流程中出现了一个问题:

如何在创建付款后和使用 PayPal RestAPI 执行付款之前更改运费金额?

创建付款后请求:

{
  "intent": "sale",
  "payer": {
    "payment_method": "paypal"
  },
  "transactions": [
    {
      "amount": {
        "currency": "AUD",
        "total": "100",
        "details": {
          "shipping": "10",
          "subtotal": "75",
          "tax": "15"
        }
      },
      "description": "Transaction description.",
      "item_list": {
        "items": [
          {
            "quantity": "5",
            "name": "Item Name",
            "price": "15",
            "currency": "AUD",
            "sku": "sku"
          }
        ]
      }
    }
  ],
  "redirect_urls": {
    "return_url": "http://localhost:56508/PaymentWithPayPal.aspx?guid=77096",
    "cancel_url": "http://localhost:56508/PaymentWithPayPal.aspx?guid=77096"
  }
}
    

执行付款前请求:

{
  "id": "PAY-12X5617352981972MKQ64KKA",
  "transactions": [
    {
      "amount": {
        "currency": "AUD",
        "total": "101",
        "details": {
          "shipping": "11",
          "subtotal": "75",
          "tax": "15"
        }
      }
    }
  ]
}

执行付款后PayPal回复:

{
  "id": "PAY-12X5617352981972MKQ64KKA",
  "create_time": "2014-10-15T00:51:52Z",
  "update_time": "2014-10-15T00:52:43Z",
  "intent": "sale",
  "payer": {
    "payment_method": "paypal",
    "payer_info": {
      --------------------
-----------------------------
----------------------
      }
    }
  },
  "transactions": [
    {
      "amount": {
        "currency": "AUD",
        "total": "100.00",
        "details": {
          "shipping": "10.00",
          "subtotal": "75.00",
          "tax": "15.00"
        }
      },
      "description": "Transaction description.",
      "item_list": {
        "items": [
          {
            "quantity": "5",
            "name": "Item Name",
            "price": "15.00",
            "currency": "AUD",
            "sku": "sku"
          }
        ],
        "shipping_address": {
         ------------------------------
        }
      },
      "related_resources": [
        {
          "sale": {
            "id": "5KX17441UU9021742",
            "create_time": "2014-10-15T00:51:52Z",
            "update_time": "2014-10-15T00:52:43Z",
            "amount": {
              "currency": "AUD",
              "total": "100.00"
            },
            "state": "completed",
            "parent_payment": "PAY-12X5617352981972MKQ64KKA",
            "links": [
              {
                "href": "https://api.sandbox.paypal.com/v1/payments/sale/5KX17441UU9021742",
                "rel": "self",
                "method": "GET"
              },
              {
                "href": "https://api.sandbox.paypal.com/v1/payments/sale/5KX17441UU9021742/refund",
                "rel": "refund",
                "method": "POST"
              },
              {
                "href": "https://api.sandbox.paypal.com/v1/payments/payment/PAY-12X5617352981972MKQ64KKA",
                "rel": "parent_payment",
                "method": "GET"
              }
            ]
          }
        }
      ]
    }
  ],
  "state": "approved",
  "links": [
    {
      "href": "https://api.sandbox.paypal.com/v1/payments/payment/PAY-12X5617352981972MKQ64KKA",
      "rel": "self",
      "method": "GET"
    }
  ]
}

您可以在创建付款后更改运费金额。您需要在执行付款调用中传递运费金额,它将覆盖您在创建付款时设置的运费。

创建付款时传入的请求:

{
  "intent": "sale",
  "payer": {
    "payment_method": "paypal"
  },
  "redirect_urls": {
    "return_url": "http://www.fff.com",
    "cancel_url": "http://www.fff.com"
  },
  "transactions": [
    {
      "amount": {
        "total": "20.00",
        "currency": "USD",
        "details": {
          "subtotal": "18.00",
          "tax": "1.00",
          "shipping": "1.00"
        }
      },
      "description": "This is payment description.",
      "item_list": {
        "items": [
          {
            "quantity": "3",
            "name": "Hat",
            "price": "2.00",
            "sku": "product12345",
            "description": "This is desc",
            "currency": "USD"
          },
          {
            "quantity": "3",
            "name": "Hat",
            "price": "2.00",
            "sku": "product12345",
            "description": "This is desc",
            "currency": "USD"
          },
          {
            "quantity": "3",
            "name": "Hat",
            "price": "2.00",
            "sku": "product12345",
            "description": "This is desc",
            "currency": "USD"
          }
        ]
      }
    }
  ]
}

执行付款时:

https://api.sandbox.paypal.com/v1/ payments/ payment/PAY-2NX408505D489885FKQ6M7NA/execute/

{
  "payer_id": "KQMQZ9Y7XZYBA",
  "transactions": [
    {
      "amount": {
        "total": "28.00",
        "currency": "USD",
        "details": {
          "subtotal": "18.00",
          "tax": "5.00",
          "shipping": "5.00"
        }
      },
      "description": "This is payment description.",
      "item_list": {
        "items": [
          {
            "quantity": "3",
            "name": "Hat",
            "price": "2.00",
            "sku": "product12345",
            "description": "This is desc",
            "currency": "USD"
          },
          {
            "quantity": "3",
            "name": "Hat",
            "price": "2.00",
            "sku": "product12345",
            "description": "This is desc",
            "currency": "USD"
          },
          {
            "quantity": "3",
            "name": "Hat",
            "price": "2.00",
            "sku": "product12345",
            "description": "This is desc",
            "currency": "USD"
          }
        ]
      }
    }
  ]
}

回复 :

{
  "id": "PAY-2NX408505DYT5005FKQ6M7NA",
  "create_time": "2014-10-14T07:24:36Z",
  "update_time": "2014-10-14T07:29:09Z",
  "state": "approved",
  "intent": "sale",
  "payer": {
    "payment_method": "paypal",
    "payer_info": {
      "email": "XXXXXXXXXXX",
      "first_name": "Eshan Personal Test",
      "last_name": "Account",
      "payer_id": "XXXXXXXXXXXX",
      "shipping_address": {
        "line1": "cxas",
        "line2": "asa",
        "city": "FL",
        "state": "FL",
        "postal_code": "95616",
        "country_code": "US",
        "recipient_name": "Eshan Personal Test Account"
      }
    }
  },
  "transactions": [
    {
      "amount": {
        "total": "28.00",
        "currency": "USD",
        "details": {
          "subtotal": "18.00",
          "tax": "5.00",
          "shipping": "5.00"
        }
      },
      "description": "This is payment description.",
      "item_list": {
        "items": [
          {
            "name": "Hat",
            "sku": "product12345",
            "price": "2.00",
            "currency": "USD",
            "quantity": "3",
            "description": "This is desc"
          },
          {
            "name": "Hat",
            "sku": "product12345",
            "price": "2.00",
            "currency": "USD",
            "quantity": "3",
            "description": "This is desc"
          },
          {
            "name": "Hat",
            "sku": "product12345",
            "price": "2.00",
            "currency": "USD",
            "quantity": "3",
            "description": "This is desc"
          }
        ],
        "shipping_address": {
          "recipient_name": "Eshan Personal Test Account",
          "line1": "cxas",
          "line2": "asa",
          "city": "FL",
          "state": "FL",
          "postal_code": "95616",
          "country_code": "US"
        }
      },
      "related_resources": [
        {
          "sale": {
            "id": "04B04851PF2563348",
            "create_time": "2014-10-14T07:24:36Z",
            "update_time": "2014-10-14T07:29:09Z",
            "amount": {
              "total": "28.00",
              "currency": "USD"
            },
            "payment_mode": "INSTANT_TRANSFER",
            "state": "completed",
            "protection_eligibility": "ELIGIBLE",
            "protection_eligibility_type": "ITEM_NOT_RECEIVED_ELIGIBLE,UNAUTHORIZED_PAYMENT_ELIGIBLE",
            "parent_payment": "PAY-2NX408505D485005FKQ6M7NA",
            "links": [
              {
                "href": "https://api.sandbox.paypal.com/v1/payments/sale/04B04851PF2563348",
                "rel": "self",
                "method": "GET"
              },
              {
                "href": "https://api.sandbox.paypal.com/v1/payments/sale/04B04851PF2563348/refund",
                "rel": "refund",
                "method": "POST"
              },
              {
                "href": "https://api.sandbox.paypal.com/v1/payments/payment/PAY-2NX408505D485005FKQ6M7NA",
                "rel": "parent_payment",
                "method": "GET"
              }
            ]
          }
        }
      ]
    }
  ],
  "links": [
    {
      "href": "https://api.sandbox.paypal.com/v1/payments/payment/PAY-2NX408505D485005FKQ6M7NA",
      "rel": "self",
      "method": "GET"
    }
  ]
}

正如你所看到的,我在执行付款时已经通过了新的运费金额,这将是最终的金额。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在使用 PayPal Rest API 执行付款之前更改运费金额 的相关文章

随机推荐

  • 带时区的 Java 日期验证器

    当日期中包含 EDT EST 时 我们是否有任何 API 来验证日期是否有效 我尝试过 Joda Java SimpleDateFormat 但我无法解析日期 以下是我收到的示例格式 2017 09 25 16 18 15 099 0400
  • 检查 json 响应是数组、整数还是字符串作为键?

    我收到 json 响应 其中 products 键有时具有 int 值 有时它具有数组 如何检查它是否有数组或Int products 25 or products 77 80 81 86 我正在用这个 self productsCount
  • Django/Python:在模板中显示 pdf

    我在 python 2 7 中使用 django 1 8 我想在模板中显示 pdf 才知道 感谢MKM 的回答我将其呈现在整页中 你知道如何渲染吗 这是我的代码 def userManual request with open C User
  • 使用正则表达式删除CSS注释

    如何使用 CSS 删除注释Regex Replace 注意 我无法使用 C 中提到的正则表达式 正则表达式删除CSS注释 这通常就足够了 假设cssLines是一个包含 CSS 文件所有行的字符串 Regex Replace cssLine
  • 将二维数组传递给常量参数的函数

    我从中学到了C 底漆 如果你想保护数组不被函数意外修改 你应该添加const函数定义头中指针声明之前的修饰符 遵循这个明智的建议 在下面的最小示例中 我尝试传递一个非常量二维数组array到函数Sum2D 其中一个参数是pointer to
  • 如何在 JTable 中创建翻转效果?

    在我的应用程序中 我想使用 JTable 的行创建翻转效果 例如 当鼠标进入该行时 该行的背景颜色会发生变化 反之 当鼠标退出该行时 该行的颜色将恢复正常 我怎样才能做到这一点 使用下面的代码 它将让您了解如何对 JTable 的行应用翻转
  • TabWidget 之间的分隔线

    TabWidget下的android divider属性是否有效 我尝试了 android 的选项卡布局教程只是为了测试 http developer android com resources tutorials views hello
  • JavaScript 中按字符串属性值对对象数组进行分组?

    我讨厌这个对象数组 每个对象都有一个日期 我希望能够将这些对象分组为月份 有没有办法转换这个 var data date 2016 08 13 date 2016 07 23 date 2016 08 11 date 2016 08 10
  • 指定的演员阵容无效#3

    我遇到这个问题 我收到 指定的转换无效 Visual Studio 内的错误列表中没有错误 这个错误可能来自我的 Access 数据库吗 private void Submit Click object sender EventArgs e
  • Ruby on Rails 4、Devise 和配置文件页面

    我是编码新手 所以这可能是一个简单的问题 我大约一个月前开始使用 RoR 不幸的是 我遇到了坎坷 似乎无法克服 我尝试过查看其他 SO 问题来寻求帮助 但我仍然是新手 所以编码建议对我来说仍然有点陌生 我希望有人能用更适合新手的术语来表述
  • Android:从重定向到另一个 url 的 url 连接 (graph.facebook.com) 获取位图

    我已经做了一切来获取一个 url 在那里我可以获取 Facebook 用户的个人资料图片 现在剩下的唯一问题是将该图像放入位图对象中 Since http graph facebook com现在首先将连接重定向 正如我们在网址中看到的 h
  • 了解/控制 MLT 融化幻灯片?

    考虑以下bash脚本 在 Ubuntu 18 04 melt 6 6 0 上 它使用melt制作幻灯片并在窗口中本地播放 SDL 使用者 大部分复制自https mltframework org blog making nice slide
  • 如何从 webpack 构建中删除 eval 和 Function 构造函数以避免 CSP 问题

    问题在于 Webpack 在编译代码中使用 eval 因此 Chrome 扩展程序和 Firefox 插件无法工作 因为它需要 CSP 属性中的 unsafe eval 指令 而这是不允许的 我使用 Vue js 作为前端webpack a
  • 将整数转换为字符串时出现问题

    我正在尝试将 EditText 字段中的两个数字相加 到目前为止 我有下面的代码 我相信它将 EditText 字段 pos1 deg 和 pos2 deg 转换为整数 deg1 和 deg2 deg1 Integer parseInt p
  • 如何在 axios 中设置 POST - multipart/form-data 的 MIME 类型?

    我需要使用 MIME 发送 POST 请求 multipart form data 这是我的 POST 标头的默认配置 axios defaults headers post Content Type multipart form data
  • 如何在从另一个表中提取数据的同时创建带有约束的表

    我正在尝试创建一个作家表 其中包含作者 ID 姓氏 名字 ISBN 以及每位作者所写书籍的书名 虽然使用与作者和书籍表相同的数据类型 但不复制这些表中的数据 并将作者 ID 作为主键 标题不为空 ISBN 作为引用 books 表中 ISB
  • Rmarkdown、Rstudio:pandoc.exe:从 TeX 源生成 PDF 时出错

    我正在尝试使用 RStudio 中的 knit pdf 按钮渲染 pdf 文档 但我不断收到此错误 pdfTeX error font expansion auto expansion is only possible with scala
  • 如何在 Django 的 ModelForm 中使用请求

    我想创建一个查询集 其中当前用户用作 ModelForm 中的过滤器 class BookSubmitForm ModelForm book forms ModelChoiceField queryset Book objects filt
  • 我可以假设 Object.keys 的响应顺序相同吗?

    book 1 order 2 deliver 3 在我的应用程序的用户界面中 当我单击 book 时 我从地图上知道要转到哪个步骤 有时我只想通过增加数字来进入下一步 但确保 URL 也发生变化 如何进行从步骤到键的反向映射 我遇到了 EC
  • 如何在使用 PayPal Rest API 执行付款之前更改运费金额

    我尝试将基于 PayPal 经典 API 的旧快速结账流程迁移到新的 RestAPI 但在新流程中出现了一个问题 如何在创建付款后和使用 PayPal RestAPI 执行付款之前更改运费金额 创建付款后请求 intent sale pay