当前位置: 首页 > 知识库问答 >
问题:

PayPal express checkout:我应该如何检查交易是否完成以及资金是否转移?

颛孙嘉玉
2023-03-14

我在客户端有PayPal express签出,在使用支付ID启动回调后,我想在NodeJS端检查该ID。我使用JS SDK调用RESTfull API:

https://developer.paypal.com/docs/api/payments/v1/#payment_get

我在下面看到这样的物体。

状态已批准,但事务处理[0]。相关资源[0]。出售状态==挂起

那么,我应该如何检查交易是否完成,资金是否转移给卖家以激活他/她支付的服务?

从回拨中,我有买家电子邮件、PayRid、paymentID、paymentToken,所以我可能需要其他endpoint?

{
            "id": "PAY-7SN4959762125513LLPOWTDA",
            "intent": "sale",
            "state": "approved",
            "cart": "2A9434180T1061602",
            "payer": {
                "payment_method": "paypal",
                "status": "VERIFIED",
                "payer_info": {
                    "email": "pp-test@gmail.com",
                    "first_name": "Some",
                    "last_name": "Surname",
                    "payer_id": "E76V3DRUQZYZW",
                    "shipping_address": {
                        "recipient_name": "Some Surname"
                    },
                    "phone": "0455346902",
                    "country_code": "FR"
                }
            },
            "transactions": [
                {
                    "amount": {
                        "total": "27.96",
                        "currency": "EUR",
                        "details": {
                            "subtotal": "27.96"
                        }
                    },
                    "payee": {
                        "merchant_id": "FJ96CP2E7QWMY"
                    },
                    "description": "The payment for services.",
                    "custom": "ws-1XWCLNRbVdWavMVZgH2cSE",
                    "invoice_number": "in-1h7KSgdCh35Gdpi_Yk7PO_",
                    "item_list": {
                        "items": [],
                        "shipping_address": {
                            "recipient_name": "Some Surname"
                        }
                    },
                    "related_resources": [
                        {
                            "sale": {
                                "id": "7UB08136N5814360K",
                                "state": "pending",
                                "amount": {
                                    "total": "27.96",
                                    "currency": "EUR",
                                    "details": {
                                        "subtotal": "27.96"
                                    }
                                },
                                "payment_mode": "INSTANT_TRANSFER",
                                "reason_code": "RECEIVING_PREFERENCE_MANDATES_MANUAL_ACTION",
                                "protection_eligibility": "ELIGIBLE",
                                "protection_eligibility_type": "ITEM_NOT_RECEIVED_ELIGIBLE,UNAUTHORIZED_PAYMENT_ELIGIBLE",
                                "parent_payment": "PAY-7SN4959762125513LLPOWTDA",
                                "create_time": "2018-11-03T09:25:53Z",
                                "update_time": "2018-11-03T09:25:53Z",
                                "links": [
                                    {
                                        "href": "https://api.sandbox.paypal.com/v1/payments/sale/7UB08136N5814360K",
                                        "rel": "self",
                                        "method": "GET"
                                    },
                                    {
                                        "href": "https://api.sandbox.paypal.com/v1/payments/sale/7UB08136N5814360K/refund",
                                        "rel": "refund",
                                        "method": "POST"
                                    },
                                    {
                                        "href": "https://api.sandbox.paypal.com/v1/payments/payment/PAY-7SN4959762125513LLPOWTDA",
                                        "rel": "parent_payment",
                                        "method": "GET"
                                    }
                                ]
                            }
                        }
                    ]
                }
            ],
            "create_time": "2018-11-03T09:25:32Z",
            "links": [
                {
                    "href": "https://api.sandbox.paypal.com/v1/payments/payment/PAY-7SN4959762125513LLPOWTDA",
                    "rel": "self",
                    "method": "GET"
                }
            ],
            "httpStatusCode": 200
        }

共有1个答案

姜松
2023-03-14

这就是我最终发现的:

“批准”状态只是指买方登录其帐户并批准付款。您仍然需要执行付款请求,一旦您检查了“相关资源”部分中显示的“状态”,它应该显示为“已完成”,这表明交易金额已被捕获。下面显示的“id”是事务标识符。

https://www.paypal-community.com/t5/REST-APIs/IPN-vs-actions-payment-execute-result/td-p/1564037

 类似资料:
  • 使用,这很容易:

  • 我需要在。我发现了这里提到的一种方法。它表明: 快照完成后,使用更新的白名单启动原始连接器 但是如何才能发现快照是否完整呢?

  • 问题内容: 检测下载是否完成的最佳方法是什么,因为此后我想更新数据库。 我尝试了PHP手册中的一些代码,但对我来说并没有多大作用: 问题答案: 但这并不能真正告诉您用户是否已完成下载。当 您 完成向用户发送字节后,它将告诉您,但它并没有说明用户实际收到了多少字节。 实际上,PHP(服务器端而非客户端语言)无法真正检测文件下载何时完成。最好的办法是在下载开始时将下载记录在数据库中。如果您绝对,完全和

  • 在AWS secretsmanager中创建了一个秘密,使用lambda函数启用了自动旋转。当我第一次从cli触发旋转时,它还没有完成。这是手动在aws控制台中更新secret时secret的初始状态。 现在我从aws cli触发了旋转 Cloudwatch日志在此创建处停止。ecret:成功地为ARN放置secret ARN:aws:secretsmanager:xxxxxxx..看起来只调用c

  • 我正在使用Ruby和aws sdk从S3下载一个文件夹。如何检查每个文件是否已成功下载?这只是检查本地计算机上是否存在文件吗?

  • 问题内容: PHP手册建议检查返回值并在屏幕上显示错误消息。 同样,对于OOP样式的构造函数,建议这样做: Stack Overflow上的一些用户甚至使用了如下代码: 但是,在过去的几周里,我一直在问自己一个问题,为什么我需要这样做?第一个示例的输出是: 警告:mysqli_connect():(HY000 / 1045):在第4行的C:\ xampp \ … \ mysqli.php中,用户’