【问题标题】:Squareup Webhook - Send duplicate requestSquareup Webhook - 发送重复请求
【发布时间】:2017-06-24 02:32:13
【问题描述】:

我正在使用 squareup 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"}

有什么帮助吗?!

【问题讨论】:

    标签: php square-connect


    【解决方案1】:

    我刚刚在 2015 年 5 月 18 日下午 5:30 左右开始在生产应用中遇到此问题。

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2016-10-30
        • 1970-01-01
        • 2019-10-15
        • 2018-06-07
        • 2021-12-12
        • 1970-01-01
        • 2017-11-14
        • 2023-03-15
        • 1970-01-01
        相关资源
        最近更新 更多