我想实现一个 Shippo webhook 以了解我的货物的交付状态,他们的文档有点不清楚......我不知道什么信息会传递给我的脚本
我已经设置了一个测试 URL 和一个实时 URL,并将它们添加到我的帐户中,在 API -> Webhooks 中。
每当通过实时或测试 URL 请求我的脚本时,我都会得到空数组,没有数据。请帮我解决这个问题。有七宝的吗??
这是我到目前为止所拥有的:
<?php
namespace MW\PublicBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class ShippoController extends Controller
{
/**
* @Route("/shippo/", name="shippo_web_hook")
* @Method("GET|POST")
*/
public function webHookAction(Request $request)
{
if ($request->getMethod() == 'POST'){
$post = $request->request->all();
} elseif ($request->getMethod() == 'GET'){
$post = $request->query->all();
}
file_put_contents(__DIR__ . '/shippo.txt', print_r($post,true));
$mailer = $this->get('swiftmailer.mailer.transactional');
$messageObject = \Swift_Message::newInstance()
->setSubject('Shippo Webhook Posted DATA')
->setFrom('emai@example.com')
->setTo('email@example.com')
->setBody(print_r($post,true) . "\n" . print_r($_REQUEST,true) . "\n" . print_r($_POST,true));
try {
$mailer->send($messageObject);
} catch (\Exception $e){
}
return new Response('OK');
}
}
如您所见,我应该能够捕获一些传入的数据,但除了空数组之外什么也没有得到。