如何向 API 添加回调参数


How to add a callback argument to an api

概述

我正在构建一个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。