繁体   English   中英

在使用PayPal restAPI执行付款之前,如何更改运输金额

[英]How can I change shipping amount before execute payment using PayPal restAPI

我尝试将基于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" } ] } 

REST似乎不支持Express Checkout 回调API ,该API用于更新Express Checkout中的运输和税金总额。 这并不奇怪,因为REST是针对移动开发人员的,他们不一定要花费额外的带宽。

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

创建付款时传递的请求:

{
  "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"
    }
  ]
}

如您所见,我在执行付款时已经通过了新的发货金额,这将是最后一笔。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM