【问题标题】:PayPal Rest API Express Checkout workflowPayPal Rest API Express Checkout 工作流程
【发布时间】:2016-01-06 20:54:14
【问题描述】:

我正在尝试使用 REST API 将我们网站上的 PayPal 快速结账与以下工作流程步骤集成。

  1. 客户将商品添加到购物车,我们有商品列表信息(商品价格、数量、小计但不含税且不含运费)
  2. 客户点击快速结账按钮,我们将估计的小计传递给 PayPal
  3. 客户创建/选择送货地址
  4. 客户点击提交
  5. 客户返回我们的网站并提供送货地址
  6. 我们根据收货地址计算客户的运费和税金
  7. 我们以总计 = 运费 + 税 + 小计显示订单预览。
  8. 我们再次调用 api 调用 paypal 以执行付款

为了配合上面的步骤,这里是我基于api的理解 https://developer.paypal.com/docs/api/

  1. 例如我们有项目 abc $10 QtY=1 Subtotal =$10
  2. 我们调用payment api并将intent设置为“授权”,发送总金额:$10
  3. 以上步骤 #3 在贝宝网站上
  4. 以上步骤 #4 在贝宝网站上
  5. Paypal 回复一个授权对象,其中包含授权 ID 和 HATEOAS 链接,用于捕获付款 在响应对象中,我们还可以获取 payer 对象来计算运费和税金
  6. 现在我们有总计 = 10 美元(小计)+ 2 美元(运费)+ 1.5 美元(税)= 13.5 美元
  7. 我们显示带有商品小计、运费、税收总计的订单预览
  8. 当客户确认订单时,我们会 https://developer.paypal.com/docs/api/#authorizations 8.1 我们使用在第 5 步获得的 auth id 调用 Authorization 8.2 我们使用 auth id 和新金额 $13.5(高于步骤 #2)调用 Capture 8.3 Paypal 确认 is_final_capture=true

我的问题是:

  1. 这是快速结账的正确工作流程吗?这比常规付款要复杂一些,因为我们必须自己计算运费/税费。

  2. paypal 会通过上述 api 调用将帐单地址传递给我们吗?我没有在响应对象中看到帐单地址。如果不是,我们如何得到它?

请注意,这些问题与 REST api 而非经典快速结帐有关。提前致谢。

【问题讨论】:

    标签: paypal paypal-sandbox paypal-rest-sdk


    【解决方案1】:

    稍微整改,重新总结一下流程:

    1. 例如项目 abc $10 QtY=1 小计 =$10
    2. 调用支付接口,设置intent为“authorize”,发送总金额:$10 (在payer 对象中标识"payment_method": "paypal"
    3. 支付 api 响应返回 HATEOAS 链接 approval_url 并使用该链接将客户重定向到 PayPal 结帐页面
    4. 以上步骤 #3 在贝宝网站上
    5. 上面第 4 步在贝宝网站上,客户返回到您的网站
    6. 使用步骤#2 中的 HATEOAS 链接(执行链接)调用 execute api,并从返回 url 中获取 "payer_id",PayPal 会使用一组新的 HATEOAS 链接进行响应,包括用于捕获付款的捕获链接. 此外,您将能够从 Json 响应的 payer_info 对象中获取 shipping_address
    7. 现在计算运费和税金,总计 = 10 美元(小计)+ 2 美元(运费)+ 1.5 美元(税)= 13.5 美元
    8. 显示带有商品小计、运费、税收总计的订单预览
    9. 当客户确认订单后,调用 Capture api(步骤#6 中的 HATEOAS),新金额 $13.5(高于步骤 #2)

    is_final_capture=true是一个api请求参数,不是来自PayPal的确认,它表示这是一个完整的捕获而不是部分捕获。 PayPal 将确认的是 json 响应中的 "state": "completed"

    您将无法获得买家的账单地址,该功能必须经过审核,并且您的帐户授予了特殊访问权限,您可以求助于 PayPal 服务了解更多详情 p>

    【讨论】:

    • 非常感谢,这解决了我所有的问题。我会尝试并确认。
    • 嗨,我的运费 + 税 > 原始付款的 15% 有另一个问题。你能在这里检查我的问题吗? stackoverflow.com/questions/33290845/…
    猜你喜欢
    • 2014-07-14
    • 2017-09-02
    • 2012-09-25
    • 1970-01-01
    • 2015-12-13
    • 2013-03-16
    • 2011-07-15
    • 2015-06-08
    • 1970-01-01
    相关资源
    最近更新 更多