Squareup Webhook - 发送重复请求

时间:2015-05-19 11:28:10

标签: php square-connect

我正在使用正方形API ..我正确地将通知URL设置到我的应用程序并为PAYMENT_UPDATED设置

// setup notifications
$data = array("PAYMENT_UPDATED");
$data_json = json_encode($data);
$curl = curl_init();

curl_setopt ($curl, CURLOPT_URL, "https://connect.squareup.com/v1/me/webhooks");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");

curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Content-Length: ' . strlen($data_json),
    'Authorization: Bearer XXXXXXXXXXXXXXXXXX')
);

curl_setopt($curl, CURLOPT_POSTFIELDS,$data_json);

echo $response  = curl_exec($curl);
curl_close($curl);
echo "<pre>";
print_r(json_decode($response,true));
echo "</pre>";

然后我从移动设备付款,然后我收到了与单一付款相同的重复请求,其中包含相同的数据:

     {"entity_id":"xxxxxxxxxxxx","event_type":"PAYMENT_UPDATED","merchant_id":"xxxxxxxxxxxx","subunit_id":"xxxxxxxx"}

任何帮助?!

2 个答案:

答案 0 :(得分:0)

我刚刚在5/18/15大约下午5:30开始使用制作应用程序遇到此问题。

我记录每个请求,并在每次webhook回调后执行一些数据操作。我的解决方案是根据收到的entity_id简单地在我的数据库中放置一个唯一约束。这不是一个很好的解决方案,而是一个暂时的解决方法,不能让所有内容都执行2次。

答案 1 :(得分:0)

您的重复webhook通知可能是由于工作流程中的某种直接处理效果造成的。例如,您授权然后捕获的卡交易将触发多个webhook。