Paypal 沙盒取消 webhook 不起作用

问题描述 投票:0回答:2

Paypal 沙箱中用于订阅激活 BILLING.SUBSCRIPTION.ACTIVATED 的 Webhook 效果非常好。

尽管如此,当我尝试从客户沙箱帐户取消订阅时,没有收到 webhook 帖子。

应该是“计费.订阅.取消”。

事实上,沙盒管理员帐户的状态为“待处理”:

是否要等到订阅结束日期才能发送取消消息? 还是出于安全考虑会等待几个小时?

以下是 paypal 沙箱网站的详细信息:

{
    "id": "WH-3BV96304FY002321K-38Y64104YL460680C",
    "create_time": "2022-07-04T17:51:34.874Z",
    "resource_type": "subscription",
    "event_type": "BILLING.SUBSCRIPTION.CANCELLED",
    "summary": "Subscription cancelled",
    "resource": {
        "quantity": "1",
        "subscriber": {
            "email_address": "[email protected]",
            "payer_id": "X3FWGFE2SAXUL",
            "name": {
                "given_name": "Anyname",
                "surname": "Walker"
            },
            "shipping_address": {
                "address": {
                    "address_line_1": "Great st 25",
                    "admin_area_2": "New York",
                    "admin_area_1": "NY",
                    "postal_code": "10002",
                    "country_code": "US"
                }
            }
        },
        "create_time": "2022-07-04T17:49:00Z",
        "plan_overridden": false,
        "shipping_amount": {
            "currency_code": "USD",
            "value": "0.0"
        },
        "start_time": "2022-07-04T17:46:51Z",
        "update_time": "2022-07-04T17:51:25Z",
        "billing_info": {
            "outstanding_balance": {
                "currency_code": "USD",
                "value": "0.0"
            },
            "cycle_executions": [
                {
                    "tenure_type": "REGULAR",
                    "sequence": 1,
                    "cycles_completed": 1,
                    "cycles_remaining": 0,
                    "current_pricing_scheme_version": 1,
                    "total_cycles": 0
                }
            ],
            "last_payment": {
                "amount": {
                    "currency_code": "USD",
                    "value": "3.99"
                },
                "time": "2022-07-04T17:49:01Z"
            },
            "failed_payments_count": 0
        },
        "links": [
            {
                "href": "https://api.sandbox.paypal.com/v1/billing/subscriptions/I-6BR7NSX98KLF",
                "rel": "self",
                "method": "GET",
                "encType": "application/json"
            }
        ],
        "id": "I-6BR7NSX98KLF",
        "plan_id": "P-5XR3459593FMK2CYGA",
        "status": "CANCELLED",
        "status_update_time": "2022-07-04T17:51:25Z"
    },
    "status": "PENDING",
    "transmissions": [
        {
            "webhook_url": "https://www.myapp.com/webhook",
            "http_status": 440,
            "reason_phrase": "HTTP/1.1 200 Connection established",
            "response_headers": {
                "Server": "gunicorn",
                "Connection": "keep-alive",
                "Content-Length": "5",
                "Date": "Mon, 04 Jul 2022 18:15:52 GMT",
                "Content-Type": "text/html; charset=utf-8",
                "Via": "1.1 google"
            },
            "transmission_id": "02cba350-fbc2-9abc-d537a3be4540",
            "status": "PENDING",
            "timestamp": "2022-07-04T17:52:03Z"
        }
    ],
    "links": [
        {
            "href": "https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-3BV96304FY002321K-38Y64104YL460680C",
            "rel": "self",
            "method": "GET",
            "encType": "application/json"
        },
        {
            "href": "https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-3BV96304FY002321K-38Y64104YL460680C/resend",
            "rel": "resend",
            "method": "POST",
            "encType": "application/json"
        }
    ],
    "event_version": "1.0",
    "resource_version": "2.0"
}
post paypal webhooks paypal-sandbox cancellation
2个回答
1
投票

待处理表示正在等待传送到订阅的 Webhook URL。事件发生,并尝试传送到 URL,但该 URL 未响应 HTTP 200 成功消息,以便将 Webhook 标记为已成功传送。事实上,根据您问题中记录的详细信息:

        "webhook_url": "https://www.myapp.com/webhook",
        "http_status": 440,

该 URL 相反以 HTTP 440 状态进行响应

假设 URL 正确并且您针对此问题将其更改为“myapp”,则问题是您需要调试该 URL 处的端点/代码,以便在将 Webhook 交付发布到该 URL 时它会响应 200 成功状态。然后他们的状态将不再是 Pending。


0
投票

尽管如此,当我尝试取消订阅时 客户沙箱帐户,未收到 webhook 帖子。

当通过仪表板取消订阅时,我可以理解“没有收到 webhook 帖子”。你成功了吗?根据我的阅读,似乎 BILLING.SUBSCRIPTION.CANCELLED 不是通过仪表板取消触发的。只有 IPN 是,但这些已被弃用。

© www.soinside.com 2019 - 2024. All rights reserved.