如何链接PayPal网络钩子和用户



我想我在这里看起来非常简单。

当我通过PayPal PHP SDK 创建新的计费协议时,我通过以下 URL 返回到我的商店。

/paypal-success?success=true&token=EC-3K353628LH3197445  

我已经为 Subscription Created 事件创建了一个发布 JSON 的WebHook,如下所示

{
    "id": "WH-5UR49681MC703253M-3S161814MB664705V",
    "event_version": "1.0",
    "create_time": "2018-03-17T17:21:47.120Z",
    "resource_type": "Agreement",
    "event_type": "BILLING.SUBSCRIPTION.CREATED",
    "summary": "A billing subscription was created",
    "resource": {
        "agreement_details": {
            "outstanding_balance": {
                "value": "0.00"
            },
            "num_cycles_remaining": "0",
            "num_cycles_completed": "0",
            "next_billing_date": "2018-03-17T10:00:00Z",
            "last_payment_date": "2018-03-17T17:21:44Z",
            "last_payment_amount": {
                "value": "1.00"
            },
            "final_payment_due_date": "1970-01-01T00:00:00Z",
            "failed_payment_count": "0"
        },
        "description": "x",
        "links": [{
            "href": "api.sandbox.paypal.com/v1/payments/billing-agreements/I-55KA5N9GPPJW",
            "rel": "self",
            "method": "GET"
        }],
        "shipping_address": {
            "recipient_name": "test buyer",
            "line1": "Spitalfields Arts Market, 112 Brick Lane,",
            "city": "London",
            "state": "London",
            "postal_code": "E1 6RL",
            "country_code": "GB"
        },
        "id": "I-55KA5N9GPPJW",
        "state": "Active",
        "payer": {
            "payment_method": "paypal",
            "status": "verified",
            "payer_info": {
                "email": "jamie-buyer@x.com",
                "first_name": "test",
                "last_name": "buyer",
                "payer_id": "Q3TZFN4F7NHJ6",
                "shipping_address": {
                    "recipient_name": "test buyer",
                    "line1": "Spitalfields Arts Market, 112 Brick Lane,",
                    "city": "London",
                    "state": "London",
                    "postal_code": "E1 6RL",
                    "country_code": "GB"
                }
            }
        },
        "plan": {
            "curr_code": "USD",
            "links": [],
            "payment_definitions": [{
                "type": "REGULAR",
                "frequency": "Month",
                "frequency_interval": "1",
                "amount": {
                    "value": "49.99"
                },
                "cycles": "0",
                "charge_models": [{
                    "type": "TAX",
                    "amount": {
                        "value": "0.00"
                    }
                },
                {
                    "type": "SHIPPING",
                    "amount": {
                        "value": "0.00"
                    }
                }]
            }],
            "merchant_preferences": {
                "setup_fee": {
                    "value": "1.00"
                },
                "auto_bill_amount": "YES",
                "max_fail_attempts": "0"
            }
        },
        "start_date": "2018-03-17T00:00:00Z"
    },
    "links": [{
        "href": "https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-5UR49681MC703253M-3S161814MB664705V",
        "rel": "self",
        "method": "GET"
    },
    {
        "href": "https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-5UR49681MC703253M-3S161814MB664705V/resend",
        "rel": "resend",
        "method": "POST"
    }]
}

将用户重定向回我的商店时生成的令牌似乎不在WebHooks JSON 中。

一旦PayPal用户被重定向回您的商店,您将如何链接他们到传入的WebHooks

成功 URL 中返回的令牌用于在用户接受协议后激活协议PayPal。 激活协议后,可以检索协议 ID。 该 id 位于资源/id 下的 Web 挂钩中。 "id": "I-55KA5N9GPPJW"。 可能有更好的方法来解决这个问题,但我创建了一个将协议 ID 与用户 ID 相关联的订阅表,以及一个包含协议 ID 和关联的 Webhook 信息的事务表。

最新更新