PayPal 订阅 Webhook 用于循环付款

10

我已经设置了Paypal Webhooks来跟踪定期付款。 我已设置以下Webhook:

  1. BILLING.SUBSCRIPTION.UPDATED(订阅账单更新)
  2. BILLING.SUBSCRIPTION.RE-ACTIVATED(重新激活的订阅账单)
  3. BILLING.SUBSCRIPTION.RENEWED(续订的订阅账单)
  4. BILLING.SUBSCRIPTION.CANCELLED(取消的订阅账单)
  5. BILLING.SUBSCRIPTION.EXPIRED(过期的订阅账单)
  6. BILLING.SUBSCRIPTION.SUSPENDED(暂停的订阅账单)
  7. BILLING.SUBSCRIPTION.PAYMENT.FAILED(订阅账单支付失败)
  8. BILLING.SUBSCRIPTION.ACTIVATED(激活的订阅账单)

除了“激活”事件之外,我没有收到任何其他事件。 有人可以帮我找到需要设置的挂钩以跟踪定期订阅账单的交易吗?

谢谢


其他会触发其他事件的事情是否已经发生? - Preston PHX
Billing.Subscription.created 也可以正常工作。但我不确定是否可以测试其他钩子。昨天我创建了一个订阅,设置为每天付款,但还没有收到任何关于重复付款的事件通知。 - Vinay Sharma
2个回答

8

1
如此一来,它也将适用于第一次付款。我该如何获取订阅ID和其他相关数据呢?这样我就可以在我的系统中创建用户交易了。 - Vinay Sharma
你会得到哪些事件数据? - Preston PHX
我想知道这个Webhook向我们的服务器发送了哪些数据。另外,如果订阅被收费,我也会得到订阅ID吗?我基本上需要付款的订阅ID和交易ID。 - Vinay Sharma
如何确定PAYMENT.SALE.COMPLETED是否为续订?我需要在数据库中跟踪吗,还是有更简单的方法可以知道。 - user1889992
1
最简单的方法通常是在创建订阅时,在custom_id字段参数中包含唯一标识配置文件/用户。这个自定义值然后在每个未来的Webhook事件中返回给订阅。除了帮助调节的其他字段,确保在自己的数据库中跟踪所有内容。 - Preston PHX
显示剩余4条评论

8
在Webhook模拟器中,PAYMENT.SALE.COMPLETED并未完全显示,但在订阅付款时使用该代码是正确的。它还具有subscription_id(由于某种原因称为billing_agreement_id)。
{
    "id": "WH-528005538C798144N-7H391362AP602264K",
    "create_time": "2021-04-17T22:45:35.950Z",
    "resource_type": "sale",
    "event_type": "PAYMENT.SALE.COMPLETED",
    "summary": "Payment completed for CAD 14.55 CAD",
    "resource": {
        "billing_agreement_id": "I-37B4TLL0FAJJ",
        "amount": {
            "total": "14.55",
            "currency": "CAD",
            "details": {
                "subtotal": "14.55"
            }
        },
        "payment_mode": "INSTANT_TRANSFER",
        "update_time": "2021-04-17T22:44:02Z",
        "create_time": "2021-04-17T22:44:02Z",
        "protection_eligibility_type": "ITEM_NOT_RECEIVED_ELIGIBLE,UNAUTHORIZED_PAYMENT_ELIGIBLE",
        "transaction_fee": {
            "currency": "CAD",
            "value": "0.72"
        },
        "protection_eligibility": "ELIGIBLE",
        "links": [
            {
                "method": "GET",
                "rel": "self",
                "href": "https://api.sandbox.paypal.com/v1/payments/sale/44P499886K055384U"
            },
            {
                "method": "POST",
                "rel": "refund",
                "href": "https://api.sandbox.paypal.com/v1/payments/sale/44P499886K055384U/refund"
            }
        ],
        "id": "44P499886K055384U",
        "state": "completed",
        "invoice_number": ""
    },
    "status": "PENDING",
    "transmissions": [
        {
            "webhook_url": "https://webhook.site/7ece4e68-de87-46df-a341-5d3dc580efe6",
            "transmission_id": "b02ef980-9fce-11eb-b0ec-5bc241fbaaf3",
            "status": "PENDING"
        }
    ],
    "links": [
        {
            "href": "https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-528005538C798144N-7H391362AP602264K",
            "rel": "self",
            "method": "GET",
            "encType": "application/json"
        },
        {
            "href": "https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-528005538C798144N-7H391362AP602264K/resend",
            "rel": "resend",
            "method": "POST",
            "encType": "application/json"
        }
    ],
    "event_version": "1.0"
}

如果您提出问题,它可以帮助我们找到答案。 - Gabriel Lupu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接