【问题标题】:How to know if Paypal transaction was successful using the API?如何使用 API 知道 Paypal 交易是否成功?
【发布时间】:2018-09-11 01:43:47
【问题描述】:

我尝试将 PayPal 集成到我的结帐流程中。这是我所做的:

  1. 我设法使用Paypal API Node SDK 使用PayPal.payment.create 创建付款。

  2. 然后将用户重定向到我在回复links[1].href 时收到的付款网址,类似于:"https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-00N000849T505604G"。

  3. 在我与沙盒用户一起登录并支付交易的那个页面上,我被重定向到我在创建支付时声明的自定义成功页面。

  4. 在我的成功页面上,我现在想检查事务是否真的成功更新了我的数据库,所以我调用了我的后端,它调用了对事务的 GET 到 links[0].href,这类似于 @ 987654327@查看状态。

  5. 很遗憾,响应的state 属性总是 created。

我做错了什么?我怎样才能检查它?我使用these docs 作为参考。

一般来说,文档的数量让我有点不知所措,不确定哪个是正确的,也找不到任何简明的教程:S

感谢您的帮助!

【问题讨论】:

  • 只是一个提示,最好创建一个单独的 api 来检查支付是否成功,有些人只是关闭了 paypal 成功屏幕并且不会被重定向回您的成功页面。这意味着付款将无法完成。我相信这是回调网址,但我不确定。

标签: javascript node.js paypal paypal-sandbox


【解决方案1】:

响应的状态属性是created是当前的。

状态属性的可能值created、approved、failed。

创建。事务已成功创建。

已批准。客户批准了交易。

失败。交易请求失败。

但已批准。应该是买方(不是客户)批准了交易。

您可以从 PayPal-PHP-SDK 项目第 376 行的 Payment.php 文件中获取此信息。

https://github.com/paypal/PayPal-PHP-SDK/blob/master/lib/PayPal/Api/Payment.php

一开始State property会created,但是当买家使用Update payment批准交易时,它会是approved,然后你可以检查List payments/Show payment details然后你会发现付款现在被批准了。

对于Update payment https://developer.paypal.com/docs/api/payments/#payment_update

和Show payment detailshttps://developer.paypal.com/docs/api/payments/#payment_get

【讨论】:

  • 是的,我知道,但它总是created,而不是approved?
  • 一开始是created,但是当买家使用Update payment批准交易时会是approved然后你可以检查List payments/Show payment details然后你会发现现在付款是@987654342 @.
  • 是的,这是我在沙箱中尝试的:用户被重定向到支付页面,然后他到达成功页面,在成功页面上,我检查了支付状态,但它仍然是@ 987654343@。是不是沙盒模式的原因?
  • 你有 Update payment 使用 /v1/payments/payment/{payment_id} 然后你会在你检查 List payments / Show payment details 时得到approved
猜你喜欢
  • 2018-11-26
  • 2021-02-10
  • 2016-09-21
  • 2016-04-22
  • 2011-08-16
  • 2014-03-11
  • 1970-01-01
  • 2011-08-10
  • 2010-11-02
相关资源
最近更新 更多