我正在使用正方形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"}
任何帮助?!
答案 0 :(得分:0)
我刚刚在5/18/15大约下午5:30开始使用制作应用程序遇到此问题。
我记录每个请求,并在每次webhook回调后执行一些数据操作。我的解决方案是根据收到的entity_id简单地在我的数据库中放置一个唯一约束。这不是一个很好的解决方案,而是一个暂时的解决方法,不能让所有内容都执行2次。
答案 1 :(得分:0)
您的重复webhook通知可能是由于工作流程中的某种直接处理效果造成的。例如,您授权然后捕获的卡交易将触发多个webhook。