PayPal Rest API Express Checkout工作流程

时间:2015-10-09 03:09:37

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

我正在尝试使用REST API在我们的网站上集成PayPal express check with以及以下工作流程步骤。

  1. 客户将商品添加到购物车,我们有商品列表信息(商品价格,数量,小计,但没有税和没有运费)
  2. 客户点击快速结账按钮,我们将估计小计传递给PayPal
  3. 客户创建/选择送货地址
  4. 客户点击提交
  5. 客户返回我们的网站并附上送货地址
  6. 我们根据送货地址计算客户的运费和税金
  7. 我们显示订单预览,总计=发货+税+小计。
  8. 我们对paypal执行另一个api调用以执行付款
  9. 为了匹配上述步骤,以下是基于api的理解 https://developer.paypal.com/docs/api/

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

      1. 这是快速结账的正确工作流程吗?这比普通付款要复杂一些,因为我们必须在最后计算运费/税金。

      2. Paypal会从上面的api电话中通过我们的帐单邮寄地址吗?我没有在响应对象中看到帐单邮寄地址。如果不是我们如何得到它?

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

1 个答案:

答案 0 :(得分:1)

稍作整改并重新总结流程:

  1. 例如项目abc $ 10 QtY = 1小计= $ 10
  2. 致电付款API并将意图设置为“authorize”,发送金额总计:10美元 (在"payment_method": "paypal"对象中标识payer
  3. 付款API响应返回HATEOAS链接approval_url并使用该链接将客户重定向到PayPal结帐页面
  4. PayPal网站上面的第3步
  5. 在paypal网站上面的第4步,客户返回到您的网站
  6. 使用来自步骤2的HATEOAS链接(执行链接)和从返回URL获得的execute调用"payer_id" api,PayPal使用一组新的HATEOAS链接进行响应,包括您使用的捕获链接捕获付款。 此外,您将能够从Json响应的shipping_address对象中获取payer_info
  7. 现在计算运费&税,总计= $ 10(小计)+ $ 2(运费)+ $ 1.5(税)= $ 13.5
  8. 使用项目小计,运费,税总计
  9. 显示订单预览
  10. 当客户确认订单时,请拨打新的金额$ 13.5(高于步骤#2)的Capture api(步骤#6中的HATEOAS)
  11. is_final_capture=true是一个api请求参数,而不是来自PayPal的确认,它表示这是完全捕获而不是部分捕获。 PayPal将在json响应中确认"state": "completed"

    您将无法获取买家的帐单邮寄地址,必须审核该功能并在您的帐户中授予特殊访问权限,您可以转向PayPal服务以获取更多详细信息