概述
我正在构建一个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中)?
答案 0 :(得分:0)
支付网关中的IPN和其他通知会向用户的回调网址发送通常的HTTP请求。在PHP中,您可以使用extension cURL。 数据示例:PHP + curl, HTTP POST sample code?
通常,API会通过client_id从预定义用户的设置中获取回调网址。