如何在PHP中使用Webhook

如何在PHP中使用Webhook,php,post,webhooks,Php,Post,Webhooks,我和Paymill一起工作,作为我的支付提供商,我被网络钩子卡住了 目前我通过电子邮件收到了webhook,如下所示,但我想在页面中找到它,并将其发布到我的数据库中。我知道如何做这一点,但我不确定我如何拿起拿起个别职位 { "event_type":"transaction.created", "event_resource":{ "id":"tran_9x2x8xex5x7xexex0x8x9xexexbx", "amount":"9980",

我和Paymill一起工作,作为我的支付提供商,我被网络钩子卡住了

目前我通过电子邮件收到了webhook,如下所示,但我想在页面中找到它,并将其发布到我的数据库中。我知道如何做这一点,但我不确定我如何拿起拿起个别职位

{
    "event_type":"transaction.created",
    "event_resource":{
        "id":"tran_9x2x8xex5x7xexex0x8x9xexexbx",
        "amount":"9980",
        "origin_amount":9980,
        "status":"open",
        "description":"9xax1x7x5x8x2xaxaxcx4x5xfx8x2x2x",
        "livemode":true,
        "refunds":null,
        "currency":"GBP",
        "created_at":1375307922,
        "updated_at":1375307922,
        "response_code":10001,
        "short_id":null,
        "is_fraud":false,
        "invoices":[

        ],
        "app_id":null,
        "fees":[

        ],
        "payment":{
            "id":"pay_7xdxex9xfxcx6x3x9x5x7xcx",
            "type":"creditcard",
            "client":"client_2x2xex0x2x4xx3bx3x6x",
            "card_type":"mastercard",
            "country":null,
            "expire_month":"10",
            "expire_year":"2015",
            "card_holder":"XXX XXXXXX",
            "last4":"8XX8",
            "created_at":1375307921,
            "updated_at":1375307922,
            "app_id":null
        },
        "client":{
            "id":"client_2x2xex0x2x4xfx3x3x6x",
            "email":null,
            "description":null,
            "created_at":1375307922,
            "updated_at":1375307922,
            "app_id":null,
            "payment":[

            ],
            "subscription":null
        },
        "preauthorization":null
    },
    "created_at":1375307922,
    "app_id":null
}
那么,如何使用php提取事件资源id呢


通常情况下,我只需要执行看起来像JSON对象的
,所以使用
JSON\u decode()
将其转换为一个漂亮的PHP对象

$reply = json_decode( $data_from_hook );
示例代码:

<?php


    $t = '{
    "event_type":"transaction.created",
    "event_resource":{
        "id":"tran_9x2x8xex5x7xexex0x8x9xexexbx",
        "amount":"9980",
        "origin_amount":9980,
        "status":"open",
        "description":"9xax1x7x5x8x2xaxaxcx4x5xfx8x2x2x",
        "livemode":true,
        "refunds":null,
        "currency":"GBP",
        "created_at":1375307922,
        "updated_at":1375307922,
        "response_code":10001,
        "short_id":null,
        "is_fraud":false,
        "invoices":[

        ],
        "app_id":null,
        "fees":[

        ],
        "payment":{
            "id":"pay_7xdxex9xfxcx6x3x9x5x7xcx",
            "type":"creditcard",
            "client":"client_2x2xex0x2x4xx3bx3x6x",
            "card_type":"mastercard",
            "country":null,
            "expire_month":"10",
            "expire_year":"2015",
            "card_holder":"XXX XXXXXX",
            "last4":"8XX8",
            "created_at":1375307921,
            "updated_at":1375307922,
            "app_id":null
        },
        "client":{
            "id":"client_2x2xex0x2x4xfx3x3x6x",
            "email":null,
            "description":null,
            "created_at":1375307922,
            "updated_at":1375307922,
            "app_id":null,
            "payment":[

            ],
            "subscription":null
        },
        "preauthorization":null
    },
    "created_at":1375307922,
    "app_id":null
}';





echo PHP_EOL;
$u = json_decode($t);
print_r( $u );

echo 'Event Rosource ID = ' . $u->event_resource->id;

这将为您提供json:

$body = @file_get_contents('php://input');
$json = json_decode($body, true);
$body = @file_get_contents('php://input');
$json = json_decode($body, true);