0

概述

我正在构建一个 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 中)添加“回调”函数?

4

1 回答 1

0

支付网关中的 IPN 和其他通知将通常的 HTTP 请求发送到用户的回调 url。在 PHP 中,您可以使用扩展 cURL。数据示例:PHP + curl、HTTP POST 示例代码?

通常,API 通过 client_id 从预定义的用户设置中获取回调 url。

于 2013-11-13T03:10:39.350 回答