处理Mandrill Webhook数据

时间:2014-01-23 13:56:12

标签: php mysql json

我正试图处理Mandrill的webhook数据,当我得到反弹时,我希望Mandrill告诉我的应用程序它是哪个电子邮件并将各种数据保存在MySql数据库中。

我在这里使用PHP,根据Mandrill他们发送一个URL,我给他们一个带有JSON数据的$ _POST请求。

通常我会json_decode()这个请求,但是当我这样做时,它似乎是空白的。对我来说,JSON看起来格格不入,但也许我需要先用它做一些其他事情?

这是我在剧本中收到的内容:

[mandrill_events] => 
[{\"event\":\"hard_bounce\",\"msg\":{\"ts\":1365109999,\"subject\":\"This an example webhook message\",\"email\":\"example.webhook@mandrillapp.com\",\"sender\":\"example.sender@mandrillapp.com\",\"tags\":[\"webhook-example\"],\"state\":\"bounced\",\"metadata\":{\"user_id\":111},\"_id\":\"exampleaaaaaaaaaaaaaaaaaaaaaaaaa\",\"_version\":\"exampleaaaaaaaaaaaaaaa\",\"bounce_description\":\"bad_mailbox\",\"bgtools_code\":10,\"diag\":\"smtp;550 5.1.1 The email account that you tried to reach does not exist. Please try double-checking the recipient\'s email address for typos or unnecessary spaces.\"},\"_id\":\"exampleaaaaaaaaaaaaaaaaaaaaaaaaa\",\"ts\":1390483382},{\"event\":\"soft_bounce\",\"msg\":{\"ts\":1365109999,\"subject\":\"This an example webhook message\",\"email\":\"example.webhook@mandrillapp.com\",\"sender\":\"example.sender@mandrillapp.com\",\"tags\":[\"webhook-example\"],\"state\":\"soft-bounced\",\"metadata\":{\"user_id\":111},\"_id\":\"exampleaaaaaaaaaaaaaaaaaaaaaaaaa1\",\"_version\":\"exampleaaaaaaaaaaaaaaa\",\"bounce_description\":\"mailbox_full\",\"bgtools_code\":22,\"diag\":\"smtp;552 5.2.2 Over Quota\"},\"_id\":\"exampleaaaaaaaaaaaaaaaaaaaaaaaaa1\",\"ts\":1390483382}]

1 个答案:

答案 0 :(得分:4)

您的服务器中设置了magic_quotes选项。

您可以禁用它,或者只是从响应中删除尾部斜杠,然后执行json_decode

$response = json_decode(stripslashes($_RESPONSE['mandrill_events']), true);

有关stripslashes的更多信息:http://php.net/manual/en/function.stripslashes.php