如何链接PayPal webhook和用户?

时间:2018-03-17 17:53:00

标签: php paypal paypal-sandbox paypal-rest-sdk paypal-subscriptions

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

当我通过PayPal PHP SDK创建新的结算协议时,我通过以下网址返回到我的商店..

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

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

{
    "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

1 个答案:

答案 0 :(得分:2)

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