PayPal快速结帐:我应如何检查交易是否完成和资金转帐?

时间:2018-11-03 13:49:40

标签: paypal paypal-sandbox spree-paypal-express

我在客户端进行了PayPal快速结帐,并用付款ID触发了回调后,我想在NodeJS上检查该ID。我使用JS SDK调用RESTfull API:

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

然后我在下面得到这样的物体。

状态已批准,但transactions[0].related_resources[0].sale.state === 待审核

那么我应该如何检查交易是否完成以及将钱转给卖方以激活他/她所支付的服务?

在回调中,我有买家电子邮件,payerId,paymentID,paymentToken,所以也许我需要其他端点吗?

{
            "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 个答案:

答案 0 :(得分:0)

这就是我最终发现的:

  

“已批准”状态仅表示买方已登录其帐户   并批准了付款。您仍然需要执行付款   请求,一旦您检查了“状态”   “ related_resources”部分,应显示“ completed”,其中   表示已捕获交易金额。显示的“ id”   下面是交易标识符。

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