如何向api添加回调参数

时间:2013-11-13 00:47:13

标签: php api soap slim

概述

我正在构建一个API,它需要允许我的服务器将新信息“推送”给订阅者。我还没有找到任何关于如何实际实现这种能力的教程或示例(使用参数调用任意的每用户反对回调)。

示例

例如,PayPal有一个名为“IPN”(即时付款通知)的回调。当您的帐户发生付款时,PayPal会调用您选择的用户定义的网址并将其传递给大量数据。

详情

我正在用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参数添加为网址字符串”。它会像client_id一样简单吗?

2 如何获取存储的回调字符串并调用它?

我确定这不是

header($callback_url);

3 如何将数据传递给此回调?假设我有权对API的用户强制执行“标准”协议。

4 是否有任何类似XSS预防或任何安全问题需要注意的问题?就像传递或调用的危险URL一样?

奇怪的是,这对我来说非常基本,考虑到我的PHP已经变得多么先进,我很惊讶我还没有学会如何做到这一点。但是,奇怪的是,我找不到关于这个主题的任何教程。也许我使用了错误的术语。

如何在Web服务中添加“回调”功能(在PHP中)?

1 个答案:

答案 0 :(得分:0)

支付网关中的IPN和其他通知会向用户的回调网址发送通常的HTTP请求。在PHP中,您可以使用extension cURL。 数据示例:PHP + curl, HTTP POST sample code?

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