概述
我正在构建一个API,它需要允许我的服务器基本上将新信息"推送"给订阅者。 我无法找到任何教程或示例来说明这种能力是如何实际实现的(使用参数调用任意的每用户反抗回调)。
例
例如,PayPal有一个名为"IPN"(即时付款通知)的回调。 当您的帐户发生付款时,PayPal调用您选择的此用户定义的 URL 并向其传递一堆数据。
详
我用PHP编写,存储到MySQL,并使用Slim进行路由,如果这很重要的话。
问题
1 假设参数通过 POST 进入,回调参数应该如何格式化?
例如,这是我如何获得一个client_id
参数,该参数被传递给像mysite.com/api/v1/setClientId
这样的路由
global $app;
$json = json_decode($app->request()->getBody());
$client_id = $json->client_id;
我希望能够说"添加一个callback
参数作为 url 字符串"。 会像client_id
一样简单吗?
2 如何获取存储的回调字符串并调用它?
我确定这不是
header($callback_url);
3 如何将数据传递给此回调? 假设我有权对 API 的用户强制执行"标准"协议。
4 是否有任何像XSS预防这样的陷阱或任何需要注意的安全问题? 像传递或调用危险的 URL?
奇怪的是,这对我来说是非常基本的东西,考虑到我的一些PHP已经变得多么先进,我很惊讶我还没有学会如何做到这一点。 但是,奇怪的是,我找不到有关该主题的任何教程。 也许我用错了术语。
如何向 Web 服务添加"回调"函数(在 PHP 中)?
支付网关中的IPN和其他通知将通常的HTTP请求发送到用户的回调URL。在PHP中,你可以使用扩展cURL。数据示例:PHP + curl,HTTP POST示例代码?
通常,API 通过client_id从预定义的用户设置中获取回调 URL。